Grid System: About
By: Jason Dekema & Zach Hanneman
CSS452 Winter 2021
Our grid system module within a game engine provides an important feature for game developers in terms of simplifying the movement, placement, and collision of objects in their games in a way that is both more manageable and makes the most sense for their game. Our system allows developers to place their game objects in a grid coordinate system where they define the overall size of the grid in tiles, as well as the individual width and height of each tile in world coordinates already supported by the engine. Tiles can be set to be collidable, contain specific textures, and contain game objects. Also, each tile is able to have walls on any edges, so they can be moved into but not out of in certain directions. Our system also gives developers a pathfinding function for objects given to the grid to control. Overall, our module aims to provide a "backbone" to the game developer's world without restricting them to using the grid in any particular way in order to allow for our module to be as flexible as possible with their development vision.
If we had more time to add on to our Grid system, we would have liked to have implemented an isometric view option the grid could manage as well. Grid systems like this can be seen in games like Roller Coaster Tycoon. We managed to come up with a linear transformation function which could properly transform our coordinate system, but to get this to work with adding textures to tiles would have required edits to how textures can be manipulated in the engine in order to allow them to follow our transformation function as well, as they would have needed to be properly sheared.