Building Game Engines
Game Maker
Final Project Game Maker
Developer Qikun Xu, Yang Hu, Hang Zhou, Shang Lyu

Project details

This project is a simple 2D game that was built with SDL2, cJSON, kiss_sdl.

We developed a game engine which consists of a tilemap editor to design your own levels and a GUI-based editor to modify attributes of NPCs(e.g. enemies).

Instructions

This project was built on Windows 10.

You have to have SDL2, SDL_image, SDL_ttf, SDL_mixer loaded in your environment.

The GUI editor If you wanna compile the GUI editor, you have to install python3 in Mysys64, and then execute python buildEditor.py in the /lib folder.
Similarly, you can execute python3 build.py to compile the game engine.

How to make a game

When you enter the editor mode, you can edit the tilemap directly.
Also, you can choose to modify this map in the Editor page and save it in the local file.
Now, we offer your three different maps and you can switch them by pressing "N" on your keyboard.
Of course, the function of saving and loading will be based on the level your are currently in.

Besides, thanks to kiss_sdl, we implmented a GUI editor for you to change the attributes of an enemy.
You have to open enemy_editor.exe in the other terminal or by double clicking because it is separated from Platformer.exe.
The GUI will load your data automatically based on the level and the enemy you choose.
Note: Do not forget to click the save button.

How to play

Use up arrow or downarrow to enter the editor mode or play mode.
Your goal is to approach the destination and you can choose whether to kill enemies.
Please pay attention to your health bar, whenever the green color disappear you will die.

During the game, use "WASD" on your keyboard to control your player and use arrow keys to attack enemies.
Use Q on your keyboard to quit the game or back to the menu.

Special Feature

The enemy will try to find the player automatically, and when the player and the enemy are very close, the enemy will get angry and speed up to run towards the player.