How we build our fast iterative design process


Problem 

A fast iteration process is the first requirement to develop a game meant to blend quick, old-school gameplay with a deep progression system. As far as game balancing goes, a single parameter can change the whole experience radically.

Meanwhile, game balance is in itself a tool to convey an in-game narrative and communicate to the Player the direction of the whole experience.

Hence, finding the correct settings to accurately convey the fundamental premise of the game (“evil overlord raising hordes of farm-threatening minions”), required a flexible yet powerful tool to swiftly cycle through testing and iterations until achieving the original vision, without the need to create new builds at every single experiment.

The use of a data-driven approach, through the power of the JSON-based dictionary, proved to be a reliable and efficient manner to tweak gameplay values and achieve (hopefully!) that “when the sun hits that ridge just right” moment every designer craves for.

Solution

Therefore, it was clear that prototyping using the Godot Engine was the right fit for us. The feature set provided by the integrated scripting language GDScript enabled us to implement our design vision. 

The Dictionary type and its JSON serialization support are the foundations upon which we have built the data-driven system powering all the gameplay logic.

 Every configuration parameter used by the grim lord, his minions, enemy structures, and enemy characters are dynamically loaded from an external JSON file and applied to every spawned gameplay entity. 

Moreover, GDScript comes with an effective property system. Using the _set and _get methods of the Object class is possible to update the parameters of spawned entities both during gameplay (through in-game upgrades) and by unlocking power-ups from the tech-tree system.

Conclusion

Among the many advantages of using such an approach, there is the possibility to have the designer working on balancing right from the get-go, allowing the programmer to work in parallel on new features, expand existing ones and enlarge the dictionary itself with new parameters. 

One small downside of this system may be the need for a designer to be familiar with editing JSON files and similar formats. On the other hand, this can be easily fixed by going the extra mile and creating a simple WYSIWYG editor based on the dictionary system (which can also be a good way to eventually open the game to modding and crowdsourced development).

Get Grim Horde (Alpha)

Leave a comment

Log in with itch.io to leave a comment.