Tile Engine
The first step in constructing our game will be to focus on the foundation of the game world: the tile engine. The tile engine is responsible for loading the tiles that represent the level and drawing them to the screen. If the level is larger than the viewable area of the screen, we will keep track of a “camera offset” that will be used to draw the portion of the level we are interested in, as well as to draw the rest of the objects on top of the level with the same offset.
Unique Tiles
To begin, we will start with an image that represents our level (see Figure 4-1). This image was constructed out of tiles that are 32×32 pixels wide and high. The level is 15 tiles wide by 25 tiles high, or 375 tiles total. However, because it was created from a small set of tiles, we need to load only the unique tiles into memory; we need only 32 tiles (see Figure 4-2).
That’s more than 90% less memory! However, we’re also going to need to store some data that tells us which unique tile image to use when rendering the level. So, in addition to the unique tile image, we will also need an index array, such as:
1,0,0,0,0,0,0,0,0,0,0,0,0,0,2 1,0,0,0,0,11,12,13,14,15,0,0,0,0,2 1,0,10,0,0,16,17,18,19,20,0,0,0,0,2 1,0,0,0,0,21,22,23,24,25,0,0,4,0,2 1,0,0,0,0,0,0,0,0,0,0,0,0,0,2 1,0,0,0,0,0,0,0,0,0,0,0,0,0,2 1,0,0,0,0,0,0,0,0,0,0,0,0,0,2 1,0,0,0,0,10,0,0,0,4,0,0,0,0,2 1,0,4,5,0,0,0,0,0,0,0,0,0,0,2 1,0,0,10,0,0,0,0,0,0,0,0,7,0,2 1,0,0,0,0,0,0,0,0,0,0,0,0,0,2 1,0,0,0,0,0,0,0,0,0,0,0,0,0,2 1,0,0,0,0,0,0,0,0,0,0,0,0,0,2 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access