Welcome back to our third weekly Developer Blog. This week we decided to give you some general content updates as to what we have been working on for the past week. Please note that this is by no means everything, as we always have large amounts of work in the background which does not necessarily make for an interesting read!
We are currently working on a uniform. Note that these screenshots are all WIP, so they might look substandard at the moment. However this is exactly how our games are made, we make a basic model, then add more detail to it until we are satisfied. We have finished the basic model and are currently “rigging” our uniform to fit to the so called skeleton. “rigging” means attaching the uniform model’s vertices to the bones of the skeleton. The skeleton for this uniform is made specifically for humans and human animations, but we will also have to create other skeletons for animals such as horses.
After the rigging is done, the Uniform will “stick” to the skeleton we have created. We can then animate the bones of our skeleton, giving our characters life. Due to the rigging, the uniform now moves with the skeleton. This means that no matter what animations we create, the uniform will always work with them, and it is not difficult to assign other models such as pieces of equipment, to the uniform at a later stage.
Here you can see a technique called “baking”. As you can see, we are using low poly Models, but we are creating high poly ones out of them (poly being a shorthand for the number of polygons used). This high poly model then gets “baked” i.e. rendered onto the low poly mesh to make it look high poly. Simplified: We are making our models look really good and detailed, while still keeping the performance high.
We have also been working on our first real battle scene for testing, we chose the smaller and less important battle of Philippi. Creating scenes is a huge pile of work. This is because we want our maps to be as historically accurate as possible.
First of all, we have to download real 3d satellite elevation data from resources located on the internet. luckily, the US government provides highly accurate satellite data, so we didn’t need to send our mapper off with a ruler and some pencils!
Once we have downloaded this data, we have to convert it into a heightmap (a height map is a type of data that we use to base our terrain on for our game engine). For this we use the probably quite well known tool “Terragen”. Terragen can import our satellite data and convert it to a height map which we can then use.
Theoretically we could now import this heightmap into the game engine and have a proper game environment. However, we decided to take it one step further. Before we can import it into the game engine, we first have to put it into the programme “World Machine” (no this isn’t our plan to create our own version of the matrix used to take control of the world). In World Machine we slightly modify the terrain, without changing it too much, to make it look better (basically we add slight changes in height, making the ground look more bumpy and realistic). We also generate a splatmap. A splatmap is an image containing texture data. When importing a splatmap into our game engine, it will tell the engine where to place a particular texture, for instance a grass texture, or where to place a rock texture etc.
World Machine is very useful for this, and does a great job at it. After we are done with that, we export our newly generated height and splatmap from World Machine and import it into our game engine.
This is how it looks like when its been imported:
After all that is done, we have to place our objects in the map. This is the most time consuming part. We usually start with placing rocks and buildings first, then placing trees and after that fences and other small objects like crates, carts etc. Placing all these objects usually takes about a week, depending on the scale of the map. So keep checking for a picture of the finished map!
You might have noticed that the yearly MODDB and INDIEDB Mod/Game of the year awards have started. Check out our Napoleonic Wars INDIEDB page here.
Tune in next week for another update to satisfy your cravings!