Below are a few of the software projects I have worked on. While this is only a small portion of the software I have created, I’ve selected these projects because they are either of special note or because I can freely share information about them because there was never an NDA regarding the project.

Boltstorm

A tactical brawler with rogue-light elements and procedural levels.

  • C++
  • UE Blueprints
  • Unreal Engine 4
  • Game Programmer
  • Student

Bolt Storm is a medieval action dungeon crawler with army combat and rogue like elements. The 2017 Dutch Game Awards, award for Best Student Technical Achievement was awarded to the development team I was part of while creating this game. In 2018 it was green lit on Steam, back when their greenlight program still existed. The target platforms are PC and Xbox, playable equally well with keyboard and mouse and controller.

perfect block gif

perfect block mechanic

Tasks and used Skills
My part of the project was that of a gameplay programmer. I created many of the different types of enemies and allies that can be encountered in the game as well as the weapons and attacks available to the player. Programming, refining and iterating until the “feel” of Boltstorm’s combat was just right.

kinetic movement gif

dynamically modifying animation with lean

During this project I ran the gambit of gameplay programming. I worked on the mechanics for movement, combat, controls, animations, progression, interface and AI behaviors. Improving, fixing and creating new systems and mechanics for the game. Working closely with other programmers to fit in puzzle pieces that made their work easier, and cooperating with the designers to realize their vision of what the game could be.


Casino Management Interface

Updating a complex legacy web application to modern standards

  • Java
  • Javascript
  • HTML5
  • Java Servlet
  • MySQL Database
  • Developer
Rendered Page

In the first half of 2019 I worked for Payment House B.V. to modernize their legacy management web applications. As the company was expanding to provide technical support and development for new clients, there was a demand for changing how to access the data that we collected about the online casinos belonging to those clients. It was also necessary to increase the ease of use for the web applications the new clients would need to train their personnel to work with. A casino management application is similar to complex fiscal software. There are a lot of security and input verification concerns to address.

Tasks and used Skills
A lot of my projects are about making websites or apps that are mostly concerned with how the website looks and if it manages to entice users to sign up or subscribe. But occasionally there is a project like this, which is far more technically focused. At its core the casino management tool takes the contents of a database and displays it on a web page in the form of a table. But that is just the start, the data that is displayed is filtered to the permissions of the user. Because the data represents a log of all games played in the online casino, large sets of data are analyzed and matched against patterns to discover the type of players that need to be highlighted for the current user. Working with these large datasets requires extensive optimizations at each level off the application (Database side, Java server and HTML/Javascript page) to keep things running smoothly. It also requires users can easily navigate and investigate any aspect of a payment, game, player, winning or losing streak that they deem is of interest or suspicion. This is done through a system that predicts and dynamically generates queries to place in a menu to give the user options for what they want to look at whenever they click on the row of a table being displayed.


Online Casino Games

Modernizing a library of games for Mobile Devices

  • Javascript
  • Java
  • HTML5
  • Developer

For the company behind GamingAndGambling.com, one of the projects I worked on was converting their library of games in legacy Actionscript/Flash to modern Javascript/HTML5 equivalents. This was a sizable project as there were over a 1000 games, fortunately casino games are often variations of one another. Games with cards on a table have a lot of reusable code that can be shared between them, different variations of roulette and slot machines have similar challenges that can be solved by applying technical design and smart software architecture to build casino games using replaceable modules as puzzle pieces.

Pirate Bay Background

previous interface style

Tasks and used Skills
Both the frontend interface functionality and design and the Java backend were important for this project. Because this involves actual money being won or lost by players, security and reliability are very important. There are 3 layers of security separation and I worked on 2 of them. The “middle”-server is a Java application running on a Linux host that models the game. It ensures the rules are being followed, calculating and double checking card draws or reel spins as it handles the player’s bets. It communicates with the Javascript client using JSON over HTTPS encryption, carefully checking anything received to ensure the Javascript client has not been modified to send manipulated responses.
The demo in the slider above does not connect to any server, it is in local debug mode.

Blackjack For Mobile

mobile interface

The clients I worked on are all prototypes for genres or types of online casino games. Converting the entire library of games on my own would take years, I instead created 1 client for each category of game in the library and carefully documented how it could be modified. I then supervised contracted web designers and artists to take the old Flash clients, and recreate each unique game in the library by modifying the prototype game I had supplied them according to the instructions.