Thursday, April 18, 2013

Reactor Rush: The Benefit of Crude Text-Based Level Editor

Reactor Rush is one of the thesis games being developed at George Brown College. The idea was inspired by Minecraft: Industrycraft mod experience during an explosion of a nuclear core. Reactor Rush contains components in a grid based pattern that interacts mutually and creates a chaotic situation for the player to balance, tweak and manage. The ‘oh sh!t’ moment dealing with crisis situation and being rewarded for sustaining its functionality is a fundamentally very rewarding experience, so Reactor Rush is intended to take this experience to another level with more depth and interesting gameplay.
During the development of Reactor Rush’s beta build, it became very apparently early on that being able to rapidly develop levels and prototype was extremely important to streamline polishing the game, and creating the sets of levels. We produced a very rudimentary text reader that phrases a text file and builds a level on loading of the game.

We restructure the game’s programming architectures into a two scene structure;
Menu --> LevelLoader                     

Early Prototype of Reactor Rush 
Thanks to this simple solution, we were able to create rapid prototypes of the game, allowing us to spot both technical and gameplay issues early on in the process.

One example of a fairly complicated technical problem we discovered thanks to this script was inconsistency issues within Unity. We noticed this issue during testing – when the game is played identically, the play results are not consistent. We had to solve the problem of creating a very modular code structure within Unity, while maintaining the rigid code executioner order. This may sound stupid, but we simply created a ‘core director’ script that drives the method calls within the game. This method controls the way the mathematics are done. On top of this, we created some mathematical magic that simplifies the interactions between each individual components and how the heat mechanics is applied, making the order of method calls even more irrelevant. 

One benefit was the ability to rapidly create test cases for all our game objects, within 15 seconds, we can easily create a new level and playtest it. The script loader lets allowed us to test the game pacing and flow super early in the process. This allowed us to find edge gameplay issues and in the end benefited the project nicely and made a fairly fun game.

Although making a level tool right off the bat become a heavy front load of work, but the long term benefit for polishing your design and getting the best game balance greatly outweighs the upfront work.

-          Aaron Li

No comments:

Post a Comment