The Old World: Building a House & New Map System Inc.

Introduction

Heyo everyone! Not to be alarmed, we are not dead, heck, we’re far from it!
We’re all currently working hard on developing a wonderful Alpha version of the game.

I’ve also brought a small treat in form of a short video update!

Building a House Video

Here is a short video where I take you through 3 simple steps for creating a basic house & also talk a little bit about the map system and two small funny and enjoyable spells. Enjoy!

New Map System Explained

As I briefly brushed over in the video above, I am not completely happy with the current Map System inside the game.

To quickly explain it, imagine the current map system to be a sheet of paper, now the paper can either be indented or raised up, but there is no way of breaking through that paper. So essentially there is no way in TOW to dig tunnels and caves etc.

But fear not! I have a pretty neat design for the new map system that is already being implemented which will allow for all of these wonderful features.

For the nerdy

Essentially the Map Data in the new map system will be stored in a 2D Array std::list, which’ll allow for quick insertion and removal of cells.

Side-Note: I put block inside quotation marks because it can whichever geometrical type possible, but just for sake of explanation I’ll use the term block.

How this data will be structured is as follows:

Every “block” will have 2 values, a Height value and a TileID value.
Air “blocks” will not exist which saves memory.
Every “block” with a TileID value of 0 or above is a valid Tile.
Every “block” with a TileID value of -1 is used for Generation.

The (-1) Value “block” is used for generating a new valid “block”. Upon this generation, if there is nothing below it will generate a new (-1) “block” under itself, However if there is already a “block” below, it will not.

By designing the map system in such a way that I’ve explained, you save A LOT of memory which would have otherwise been completely wasted if everything was pre-generated because most areas underground for example, will for the most part probably never be explored, therefore using memory which could be used for something else, or simply not be wasted.

Rough Calculations:
Rough worst-case scenario of memory usage:
3-4MB/Layer if all possible blocks in a layer is generated.
(((1024/3)^2)*8Tiles*4Bytes)/1024 ~= 3633KB
Rough Dig hole straight down for 500 layers:
(8Tiles*4Bytes*500Layers)/1024 ~= 15KB

Conclusion

Hope you lot enjoyed the video and my explanation of the map system!
I’m going to try to update more frequently with content in the upcoming weeks.

Cheers for all of the support so far!
Laters.