Child of Dracula
Sven Thole
Idea:
I love old school platformers and the awesome music from that gaming era. What makes Child of Dracula special from the old classics is that it incorporates the background music into the gameplay. By following the rhythm of the music the player can hack 'n' slash his way through the enemies.
I love old school platformers and the awesome music from that gaming era. What makes Child of Dracula special from the old classics is that it incorporates the background music into the gameplay. By following the rhythm of the music the player can hack 'n' slash his way through the enemies.
Motivation:
Many of the old school classics like Castlevania, Super Mario, Mega Man etc. all had really awesome and catchy music in them. The reason why I choose to make Child of Dracula was to explore any possiblity to futher enhance that music experience. My method was to incorporate the music into the gameplay.
Many of the old school classics like Castlevania, Super Mario, Mega Man etc. all had really awesome and catchy music in them. The reason why I choose to make Child of Dracula was to explore any possiblity to futher enhance that music experience. My method was to incorporate the music into the gameplay.
Result:
The game consist of two levels. The first level takes place in a town where guards try to attack you. The second level can be reached by jumping down the city well. Here you find a treasure horde guarded by a undead giant.
Each enemy in the game spawns shrinking circles around them. When a circle reaches its center then you should press the corresponding button to perform an attack. You instantly hit all enemies on screen and leave a trail behind you.
However, after some play testing it was quite obvious that the game was too difficult. Their was simply too many things to keep track of at the same time. You must attack to the rhythm of the music as the same time as you move around and try to dodge enemy attacks. On top of this if your combo stacks high enough the game speeds up, which proved nearly impossible. What made old school games beautiful is that they were often easy to learn, but hard to master.
Software architecture:
Oh boy! I will try my best to put this into words, even though I have a total of 33 c# classes. But there are two different areas of software architecture in my project I could talk about. The first would be the moveable characters. In the top of the hierarchy is a damageable class. This class handles event where the owner takes damage or dies. The class calls hurt and death functions which can be override by child classes. These child classes are Player and Enemy, which handles input, movement etc. Each Player and Enemy has a Animation Listener class which checks for events placed in the animations. They also have a shaker class, which can shake the sprite and a flasher class which can flash a color on the sprite. These are useful when a character takes damage. Each character also has a groundSensor class that checks when a character is grounded and a hitBox class that damages everything inside it when the character attacks. Another type of software architecture are managers. These are static classes that can be accessed from every class in the game. Examples of managers are: comboManager, textManager, soundManager and poolManager. The most interesting one would be the poolManager would loads a big chunk of memory of selected objects which can be accessed during run time. This is more efficient and clean than creating new objects on memory during run time. So whenever I need to spawn a new attack trail after the player I can access the poolManager instead of instantiating a new object.
The game consist of two levels. The first level takes place in a town where guards try to attack you. The second level can be reached by jumping down the city well. Here you find a treasure horde guarded by a undead giant.
Each enemy in the game spawns shrinking circles around them. When a circle reaches its center then you should press the corresponding button to perform an attack. You instantly hit all enemies on screen and leave a trail behind you.
However, after some play testing it was quite obvious that the game was too difficult. Their was simply too many things to keep track of at the same time. You must attack to the rhythm of the music as the same time as you move around and try to dodge enemy attacks. On top of this if your combo stacks high enough the game speeds up, which proved nearly impossible. What made old school games beautiful is that they were often easy to learn, but hard to master.
Software architecture:
Oh boy! I will try my best to put this into words, even though I have a total of 33 c# classes. But there are two different areas of software architecture in my project I could talk about. The first would be the moveable characters. In the top of the hierarchy is a damageable class. This class handles event where the owner takes damage or dies. The class calls hurt and death functions which can be override by child classes. These child classes are Player and Enemy, which handles input, movement etc. Each Player and Enemy has a Animation Listener class which checks for events placed in the animations. They also have a shaker class, which can shake the sprite and a flasher class which can flash a color on the sprite. These are useful when a character takes damage. Each character also has a groundSensor class that checks when a character is grounded and a hitBox class that damages everything inside it when the character attacks. Another type of software architecture are managers. These are static classes that can be accessed from every class in the game. Examples of managers are: comboManager, textManager, soundManager and poolManager. The most interesting one would be the poolManager would loads a big chunk of memory of selected objects which can be accessed during run time. This is more efficient and clean than creating new objects on memory during run time. So whenever I need to spawn a new attack trail after the player I can access the poolManager instead of instantiating a new object.
My metric of success:
Ultimately when designing games it all boils down to: Is this fun? The level of fun is a metric of success all games have, whether they like it or not. As I said before, old school classics were often easy to learn, but hard to master. This is a metric of success all games should incorporate. Another metric of success I implemented in my game was: Does the gameplay feel nostalgic? This is obviously a measurement which is very hard to grasp since, like the level of fun, is subjective. But the reason why game development is so fun and rewarding is because it requires hard work and understanding the human mind.
Ultimately when designing games it all boils down to: Is this fun? The level of fun is a metric of success all games have, whether they like it or not. As I said before, old school classics were often easy to learn, but hard to master. This is a metric of success all games should incorporate. Another metric of success I implemented in my game was: Does the gameplay feel nostalgic? This is obviously a measurement which is very hard to grasp since, like the level of fun, is subjective. But the reason why game development is so fun and rewarding is because it requires hard work and understanding the human mind.
How to play:
The game was designed to be played with a xbox controller, but can be played just as well with mouse and keyboard.
Movement: WASD
Jump: Space
X attack: Left mouse button
Y attack: Right mouse button
Dodge: Left Shift
Try to time your attacks with the beat of the music. When a circle around an enemy reaches its center then you should press the corresponding button to perform an attack. Dodge when an enemy's circle turns red. Good Luck!
The game was designed to be played with a xbox controller, but can be played just as well with mouse and keyboard.
Movement: WASD
Jump: Space
X attack: Left mouse button
Y attack: Right mouse button
Dodge: Left Shift
Try to time your attacks with the beat of the music. When a circle around an enemy reaches its center then you should press the corresponding button to perform an attack. Dodge when an enemy's circle turns red. Good Luck!
- Sven Thole