Inspiration
Josh approached us with the idea of a simple fighting game for this Hackathon. Since all of us have played at least one fighting game before, we knew the mechanics and figured implementing them would be fairly straightforward. We wanted to make a simple fighting game similar to Mortal Kombat or Street Fighter.
What it does
It is a simple 2D fighting game meant to be played locally with 2 players.
The objective of the game is to reduce your opponents life to 0 using your attacks, or to have more health than them before the timer runs out.
The game allows for 2 players to be controlled at the same time using the same keyboard.
Several movement mechanics are implemented in the game, being walking, running, and having the players bump into each other.
The players can walk and run in either direction using a different combination of keys (shown in the README file), and when the players collide with each other, the players bounce off each other.
Collision detection with the wall is also implemented to prevent the players from moving out of bounds.
There are 3 combat mechanics implemented in the game, being a basic attack, blocking, and a guard break.
A basic attack is a move that damages the opponent when they are not blocking. It is faster, and has a longer reach than the guard break attack.
Blocking is a state the player enters when they press the designated button. This prevents them from taking damage from basic attacks while they are in the state, and when a block is completed, they are able to attack an opponent before the opponent can attack them.
A guard break is a slower attack with shorter reach (so it is vulnerable to basic attacks), but can bypass the enemy's blocking and still damage them.
How we built it
We used Visual Studio 2019 (community edition) and the glm and glfw libraries to handle vector calculations. Again, all the libraries mentioned are open source.
We also used some open source assets from the internet, which includes character sprites and the background(s).
Libraries
GLFW
OpenGL
FreeType
GLM
stb_image
Glad
khr
Assets
Background
Sprites and Animations
Font
Challenges we ran into
Learning C++ was challenging for those who were not familiar with it, but getting all the combat mechanics and animations to work as intended was the hardest challenge.
Accomplishments that we're proud of
Our team didn't use a premade game engine for this - we essentially did everything from scratch. Also, we implemented dynamic hitboxes (areas where the player hits the opponent) and hurtboxes (areas where the opponent can hurt the player with their own hitboxes) so that the hitboxes and hurtboxes are active on different frames as to prevent spamming, and add a layer of strategy to the game.
What we learned
Our team learned some basics of game development, including how the gpu displays images to the screen, dealing with different types of collisions, and physics engines.
What's next for Wacky Fighting Game
We might add in additional stages, sound, and more advanced mechanics down the road.

Log in or sign up for Devpost to join the conversation.