Wall Keepers
Architecting Efficiency With Data-Centric Programming
Eduardo Martinelli
The game Wall Keeper is the result of merging the strategic depth of tower defense with the creative freedom of city-building within a hexagon-based world. The game leverages a data-oriented architecture, which proves indispensable for dynamically updating expansive maps and in-game changes with remarkable efficiency.
Data-Oriented Architecture: Handling the complexity of extensive maps reacting to player actions can significantly impact performance, especially when integrating complex systems like height maps, tree maps, and building maps. To avoid performance losses the game employs a data-oriented architecture, ensuring that this data updates dynamically and efficiently. Hash sets, memory locality and temporality are key to enable such complexity.
Procedural Generation and Dynamic Terrain: The terrain of the game world is not static; it is unique through each playthrough thanks to procedural generation techniques. I developed algorithms that dynamically generate meshes to form the game's terrain, ensuring that the landscape is both aesthetically pleasing and strategically viable for gameplay. This also opens the doors to fun gameplay elements, like deforming terrain in runtime.
Procedural Generation of Buildings and Vegetation: To prevent the game world from appearing too rigid or grid-like the procedural logic extends to the placement of buildings. This ensures that when walls are placed, connecting seamlessly with adjacent walls and confirming to the terrain's contours. Houses are distributed in a manne. In the environment, trees in denser forests grow larger and more lush, creating the impression of a living world. These meticulously designed details are pivotal so that your cityscape feels organic and spontaneously developed.
Intelligent and Adaptable AI: Traditional tower defense games often rely on predictable enemy patterns, but I aimed to introduce variability and adaptiveness to enemy behavior. As enemies draw closer, their interactions become more varied, providing a layer of complexity to the defense strategies players must employ.
In this game I tried to create a compelling game experience but also to demonstrate the potential of data-oriented design and procedural generation. Which has been pivotal in achieving the game's visual splendor and immersive feel. Through the synergy of these technologies, the game not only ensures that each session unfolds on a dynamically updated map but also crafts a world rich in detail and variety. Height maps shape the contours of the landscape, tree maps embroider it with lush vegetation, and building maps layout the framework of civilization—all drawn with the precision that only a data-oriented system can provide. This foundation, rooted in memory efficiency and algorithmic performance, guarantees that the game's complexity never compromises its smooth execution.






