I joined Project Rushdown after it had already been in production for a few months to implement an editor and provide technical support to ensure the project could live up to the lead's expectations. Their goal was to be able to demonstrate the design of a Devil May Cry- inspired fighting game system, and they were in the process of a refactor.

While I had originally expected to not take on any major tasks other than the editor, it proved to be more effective to have me implement a lot of the major attack systems as well. This was because the previous implementation, which was being refactored, wasn't extremely flexible or easily upgraded. My job, then, was to build the full underpinnings of an effective system.

That is what led to the current implementation: attacks stored as structs on each character, edited through use of a data table. Since each attack is a set of data in a table rather than unique code, it's quite easy to make rapid iterations on individual attack sets. Additionally, it allows for easy implementation of multiple movesets, as each one is simply a new data table.

However, this implementation isn't without it's problems. Since this was done entirely in Blueprints, some code can be hard to organize in a clean way - for example, saving data tables. Data tables in Unreal can only be loaded from CSV or JSON using code, so I had to write a custom converter that turned attack structs into individual lines of CSV to be able to save information from the editor. That said, I think I have found a nice balance of quickly implemented, but efficient and reliable code for my teammate to use!