The game ‚Chaos God‘ was born during my first Global Game Jam. The goal of the game was to bring as much harm as possible to the world. The player got control over the god of chaos. This god could perform various rituals in order to spread chaos in the world. Our team choosed a 2.5D look which was strongly inspired by the open world survival game ‚Don’t Starve‘. The project was realised in the Unity3D engine.
Beside game design my tasks included to implement the logical representation and execution of the available rituals as well as their presentation in an user interface. I did not have any experiences in the area of user interfaces and therefore selected these tasks on purpose.
The rituals where could be performed by combining three different items out of the players inventory. I decided to use an XML document to represent the rituals. Using a XML document should make it easier to add rituals to the game while providing a good overview over their structure.
After the game was started all rituals were loaded from the XML document, saved and processed in order for the player to use them while playing.
Another task of mine was to make sure that objects reacted to casted rituals. I created scripts which could be applied easily to an object to do this easily. Within these scripts the needed behaviour had to be implemented via code. Our team decided to use sprite swapping in most cases.
The next task of mine was to create a user interface where the player could easily access and cast the different rituals. I decided to display the individual objects in a grid, as this was a typical representation of inventories in rollplaying games.
When selecting an item, its image and description were displayed in an additional information window. Using an item made it appear in the ritual circle on front of the player character.
In retrospect, I would implement my duties differently. The usage of an XML document and the associated effort to read this document could easily be circumvented by implementing it as a class or struct. My argument was that rituals could be added and be displayed in a simple way. In such a small game an approach like that was not necessary and a waste of time.
In addition, I would implement the user interface in different way. I would no longer manually create and place each item in the inventory but create them at runtime and then position them using vertical and horizontal layout groups. And finally, I would no longer work with string comparisons. These are costly and can have a negative impact on the performance of the game when used heavily.
Ultimately, I can say that this weekend was a lot of fun. Everyone shared my enthusiasm for games and their development. We helped each other and talked shop together. I hope to later work in an company with the same kind of atmosphere.