A proof-of-concept version of the game "Mortal Kombat" coded in C++ using the Allegro graphics library.
Developed as the main project of the undergraduate course "Development of intelligent interfaces and games" (Department of Computer Science, University of Crete), by Emmanouil Giortamis, Anastasios Livanidis and Georgios Lydakis.
The project showcases a custom-built engine with features such as collision handling, state machines for character actions, and parallax scrolling. The current version includes two characters (Subzero and Scorpion) and two fighting arenas (Courtyard and Throne Room) from the original game.
The game utilizes the Allegro graphics library, so the first step is setting it up for your system.
With the current directory being the repo's root, build the game by running:
g++ --std=c++11 Source/Engine/*.cpp Source/GameLogic/*.cpp Source/Utility/*.cpp Source/main.cpp -I Source/Utility/json-develop/include -o mortal_kombat -lallegro -lallegro_image -lallegro_audio -lallegro_acodec
Launch the game by executing ./mortal_kombat.
Player 1:
- Jump: W
- Left: A
- Right: S
- Crouch: D
- High kick: H
- Mid kick: J
- High punch: U
- Mid punch: I
- Block: K
Player 2:
- Jump: Up arrow
- Left: Left arrow
- Right: Right arrow
- Crouch: Down arrow
- High kick: Numpad 2
- Mid kick: Numpad 3
- High punch: Numpad 5
- Mid punch: Numpad 6
- Block: Numpad 0
- Throw ice: Down + Forward + Mid punch
- Slide: Backward + Mid kick + High kick
- Perform fatality: Backward + Down + High punch
- Throw spear: While moving backwards, Mid Punch
- Teleport punch: Down + Backward + Mid Punch
- Perform fatality: Up + Down + Block