The Wetness

The first programming course week at the ENJMIN consisted in an update about C++. We were asked to create a little game in C++ using the Windows console as graphical interface in pair working. I wanted to benefit from this project by learning more about procedural content generation (PCG), machine learning (ML) and dynamic difficulty adjustment (DDA). Vincent, who worked with me on this project was more interested in graphical programming and in the optimization of the path-finding algorithm, which will be called many times. That is how we shared the amount of work to do and how The Wetness project was born.

The Wetness was inspired by the game The Witness designed by Jonathan Blow. The game consists in a series of mazes where the player has to go through a set of different points before arriving at the exit. Mazes are procedurally generated with a genetic algorithm. A lot of optimization has been made on path-finding algorithm to allow real time generation of possible and interesting mazes. An ML algorithm, based on linear regression, study how many time takes a player to complete a maze for a given difficulty. This one is then used by the DDA algorithm, which will increase or decrease the difficulty of next mazes relative to the player’s performance.

Of course, we had to work on other school projects at the same time, so I  couldn’t work on it as much as I would have liked. For example,   features like the algorithm that measures a maze difficulty could be a lot better. But it works and I’ve achieved my goals.

To learn about genetic algorithm I used this tutorial. For the PCG I used this book. I used Andrew Ng courses available for free on Coursera to learn about ML.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

Up ↑

%d bloggers like this: