Description

For the second semester of the first year in DAE we were assigned to recreate a basic game using their (limited) SDL framework. At the time, it didn’t matter how you made the game, you just had to make it work.
I chose to go for a very basic version of Realm of the Mad God, a top-down roguelike RPG.
Because I felt like this game was maybe a little bit too simple for the assignment, I decided to add some extras such as procedural generation & a basic inventory system, combined with loot drops.

If you would like to look at the code from this project, have a look at the Github repository.

Engine: Custom SDL Framework (By DAE)

Gameplay Video

Features

Procedural Generation

To create the 2D world I chose to implement procedural generation. In order to achieve this, I create several Perlin noise maps and assign them to a specific variable. For example, I would have a height map, moisture map, etc.
On top of this, I wanted to have an island-like shape, to do this I manually create a gradient noise map, based on the distance to the center of the map.
After the creation of the maps, they communicate with my biome presets, to determine which biome should be selected for that tile.
Please have a look at the GitHub for further details.

Inventory System

For the inventory system, I stuck with a very basic implementation. If the item is released while hovering on top of the inventory, it’ll get added to the list of items, and it’ll be automatically assigned to the back of the list.
The player can drag items from the item pickups to the inventory, from the inventory back to the ground, or the player could add the items to his current gearset to improve his strength.

Item Pickups

There is a slight chance that the enemies you’ve killed spawned a loot bag. This bag might contain items that improve your character’s stats. Using the inventory system mentioned above you can equip/move/drop your items.
The loot bags have a specific lifetime, when this time has passed, the loot bag will disappear.

Most Interesting CodeSnippets

Previous
Previous

MysticCore

Next
Next

AI Programming