During the development of my custom engine, I was making actual playable game demos to test engine functions. The games I made are listed below, and all are developed for Windows platforms. Some of the games are for Ludum Dare game jams. And some games require a XBox Controller to play.
A single-player rhythm game, press buttons and joysticks according to rhythm and refresh your record!
Use XBOX Controller ONLY, LB/RB for little monsters flying above, left and right joysticks moving up and down to defend the flame from large monsters flying below.
The whole game was designed, implemented on my own, including sprint planning, features adding and cutting, and even music note marking up. Art and music assets are all from online free resources. Two inspirations of this game are TRRT and Rhythm Master.
Key Features
Base UI system
Marker-based monster generation
Song manager system
Assets manager
Customized score and time system
Engine Techniques
Base 2D particle system
Audio system based on FMOD
Postmortem
Content creation is exhausting
Class inheritance is a mixed blessing
Incursion is a single-player 2D tank battle, with the enemy faction of tanks and turrets scattered in three levels with increasing difficulty.
Shot down an enemy would drop a loot (either health or faction bomb); use faction bomb to turn enemy faction into your friend faction. But be careful! Any friend or yourself shot down by an enemy would also drop loot that is beneficial to enemies while useless to you!
There are three levels in total. You always start from the bottom left corner of the map, use the Xbox controller ONLY to control the player. Left joystick for turning and moving. Right joystick for turning the gun. Button RB to shoot a bullet. Button LB to shoot faction bomb. Press the start button would pause the game. Eliminate all enemies of the opposite faction to win a level!
Key Features
Tank/turret movement and recoil
Player bullets reflect off wall/boulder
Basic map generation
Basic tiles and entity disc collision
Rudimentary enemy AI
Step and Sample Raycast
Faction switch bomb
Engine Techniques
Sound support based on FMOD
Animated sprites
Postmortem
Flexible time schedule for unfamiliar features
Playtest is important
Abstract common features to base class/functions
A single-player 2D space shooter - shoot and dodge wandering asteroids, survive in space!
Use arrow keys / WASD / left joystick for movement, space / A button to shoot.
This game was the first game I developed when the engine had very few functions. So actually all the drawings of starship or asteroids were simply based on repetitive triangle drawing calls. (Triangles are the base of the world!)
Key Features
Acceleration based movement for starship
Juice
screen shake
controller rumble
dust of explosion/trail
Engine Techiques
OpenGL 1 renderer
Xbox controller support
Disc collision
Postmortem
Always start with debug draw
Think of extensibility from start
A single-player 2D minigame that developed in two days on Ludum Dare 45.
Supports both keyboard and Xbox controller. Use arrow keys / left joystick to move around, space / A button to change circle color.
The theme was Start With Nothing. So I derived from the classic Feeding Fenzy, and let the player become a purple planet and devour every smaller normal planet. And when the player grows large enough, this giant mature purple planet would split into multiple small ones, shooting towards unknown darkness separately. The control was the major different variation, where you could only control this red/blue circle at the screen center. Red makes you bouncy and faster after each bounce with the circle; blue makes you slower and easier to control, but would gradually diminish your life...
A 2D physics simulation game. You could only adjust the birth rate and death rate, and try to develop a polygon of 30 edges.
This game was developed in less than 2 days for Ludum Dare 46, and the 2D physics system of the custom engine was already near completion at that time, which helped formulate this game.
The theme was Keep It Alive. So I came up with this polygon life simulator, where the player is watching through a microscope, and try to control the birth rate and death rate to evolve the polygon lives. The higher the death rate, the more possible the polygons would evolve into more-rounded polygons. And your goal is to either obtain a circle or grow enough population.
Key Features
2D physics simulation
Polygon generated by self or by overlapping with others
Virus (flashing red circle) destroy polygons when overlapping
Engine Techniques
Complete 2D physics system
2D Disc & Polygon collider
Detection by GJK
Revolved by sequential impulse
2D rigidbody
Delegate events for collision/overlap/trigger
Debug render system
Postmortems
Debug render & breakpoints
Test with actual examples