Hypeman is a Megaman 2 gameplay clone. This project was developed in a custom
C++ game engine. All the sprites were taken from the original Megaman 2 game.
This project was designed to present basic programming proficiency.
There are three modes that were developed in this project. The game mode allows
the user to play through the first section of Heatman’s level. The Creative Mode allows
the user to use the mouse to change and place tiles. The last mode is a Multiplayer Mode
which allows two players to each take control of a Megaman in a small battle arena.
In the game and creative modes, the user can open the debug menu and change values
as well spawn in enemies and pickups.
This project uses a file driven tile map. The sprite data is loaded in to determine which
sprite is used when placing a block. A second file then determines what kind of blocks
they are (Solid platforms, Damaging blocks). A third file is then read to determine the
placement of all blocks, which creates a level.
Hypeman uses a state machine to determine what sprite needs to be displayed. The state
machine also helps determine what attributes are set. An example for this is when the
player is jumping, the player is set in a jumping state. In this state we can load the correct
jumping sprites.
There are 5 different enemy types displayed in this demo. All of these enemies are
derrived classes that inherit from an abstract enemy class.
The first enemy I worked on was “Telly”
This enemy was quite simple to code as it’s movement pattern was to just seek towards
the player at a set speed.
The second enemy created was “Fly Boy”
This enemy was a little more complex as it tracked the player’s position but only until
the apex of its flight. Then it translates it’s position downward towards the last tracked
position in an arc.
The next enemy created was “Springer”
This enemy’s movement pattern is to walk back and forth on a platform until the
player gets into range. Once in range it springs up and tried to hit the player. The
springer also speeds up its move speed if the player is on the same level of X axis as
it. The player cannot damage this enemy with regular projectiles. If a regular projectile
hits the springer, the projectile will be deflected.
The fourth enemy created was “Sniper Joe”
This enemy does not move but rather waits for the player to get into range before
attacking. While his shield is up projectiles that hit will be deflected. When sniper joe
attacks he drops his shield and is vulnerable to attacks. There is about a second delay
from when he drops his shield before he shoots out projectiles, so players can defeat
him before he shoots.
The last enemy created was “Neo Metall”
This enemy lies dormant under a indestructible helmet and waits for the player to
walk within its radius. Once the player is in the radius it walks towards the player
and also shoots 3 diverging bullets. If the player tries to shoot at this enemy while it
is hiding underneath it’s helmet, the projectiles will simply be deflected. This enemy
is only vulnerable when it is walking towards the player.