Sunday, March 1, 2020

How we make our Game Boards

After sharing a glimpse of our first game board we got asked a pretty straight forward question.  "How did we make it?".

Full disclosure we're still working on the process as we'd like to improve the results, but this is how we go about things right now.

We've recently been doing a lot more play testing (more to come on that in our next post). To do this we decided we create a board that would be simple but appealing to perform numerous tests upon.  This is how we built it....

Step 1 - Create a heightmap that represents all the hexagonal tiles of our board.  

A heightmap is simply a 2-D image that uses different grey scale values to represent height in 3-D space.  So black is the lowest height in 3-D space whilst white would be the highest, and all the various shades of gray would represent all the different heights in between.

Our board has precise hexagon tiles all set at various heights.  To make a heightmap to represent this we first built an application that makes it easy for us to set the height of each hexagon tile.  You can see this below:

The image above is a screenshot of our application for generating a heightmap.  Hopefully you can make out some different grays at the center darkening to black as we venture outward.  We take this heightmap and import it into Unity3D (the game engine we're using for development).  The result is a 3-D representation of this heightmap.....

Step 2 - Import heightmap into Unity3D

Above we can see the result of importing the heightmap into Unity3D as a terrain.  What comes next is the various "arty" parts of the process.

Step 3 - Deform the 3D terrain model

Using the terrain deforming tools within Unity3D we make adjustments to the 3D terrain model, giving parts of it a more organic appearance.  Unity3D has excellent tools for manipulating terrains.  Above we've used terrain height alteration and erosion tools to give the board a natural edge.

Step 4 - Paint the 3D terrain with textures

Above you can see the terrain with a tiny bit of texture applied.  We continue painting the terrain until we end of with what you see below...

Step 5 - Add some more 3D models to the board as cover.  In this case we went with a stonehenge vibe..

Step 6 - Finally we break out the terrain application we created again and mark the hexagonal cells that are occupied, in this case with the various stones.

From this we then export a bespoke data file that our game reads to understand where models can and cannot stand.

And that's it!  We now have a usable game board ready for use.  In this example the whole process took a little under 2 hours.  When we come to creating the actual boards that we'll use in the final game we'll spend more time improving the look and level of detail; but at this stage we're able to create a board that is great for play testing.