Week 5 – The Castlevania Prototype
This week we finished our Castlevania prototype. Looking back at our decision making process, there are several things about our package that we were able to get validation of.
The support for 2D games. We simply did not know if our package supports 2D because all the work we had done until this point was in 3D.
Demonstration of flexibility. We chose Castlevania in the first place mainly for this reason: there are specific design choices made in Castlevania that results in requiring a highly flexible locomotion and action system. Most of the other toolkits are not able to make Castlevania for this very reason. Examples:




With this hammer weapon, you cannot move and attack at the same time. Your attack always cancels movement, and there is a short recovery window after each of your attacks. The cool-looking Crissaegrim weapon in the middle does not have this problem: you can always freely move and attack. The third GIF is where you turn into a bat and switches model, gaining flying ability. We were able to accomplish all these things in our prototype:



There are more: when the player character attacks an enemy, they don’t get knocked back; however, the player will be knocked back if attacked by an enemy.


The keyword here is modularity. There is a basic template on both locomotion and combat, and you can make different designs depend on what you need. This how we passed the Castlevania test.

What Changed
Through using our own toolkit, we acknowledged that there were still room for improvement. Two main changes we made when making the prototype and intend to keep are:
-Improved readability: it used to be that we had a lot of modifiers for the same action, and it was hard to navigate through all of them. So we wrote a composite modifier that allows users to inherit from it and pick the modifiers they need for an action. It also tidied up the inspector and promoted reusability over similar action states.
-We switched our damage system from hard-coded to factory generated effects (effects are used to control attributes, and HP is one of a character’s attributes).