Here’s a little taste of next week’s video blog episode, which is about combat! The little elephant can fight several monster creatures, such as these Robgoblins.
Boy, has it been a long time since my last update?!
In that time, I have moved to a different city and completely rearranged my job and financial situation, which is why updates for this project has been a bit slow. But now I should be back in action again, and begin posting stuff more regularly.
The picture above shows the Loremaster, one of the oldest Bonewights in the world. He is over 1000 years old (he’s undead and can’t die) and he spends his long un-life collecting all sorts of tales and historical accounts from all over the world. He is especially interested in the impact of Elephant on world history, and this character is a rich source for background information of the world and previous elephants.
When you first meet him his library is in a state of disarray, but throughout the game you help the Loremaster to rearrange his wealth of knowledge, and in exchange he will let you read any book you want from the vast collection.
At this point I have really just created the graphics for this special room and character, so the whole unlocking snippets of lore aspect still requires a lot of work before it’s up and running.
My general rule is to begin each new feature by creating all the graphical assets needed, both because it makes the feature itself easier to visualize while working on it, and because creating graphics is pretty hard and repetitive work, so it’s nice to get it out of the way!
Throughout the game, in chest and in pots and in various hiding places, you will find loads and loads of coins. Finding shinies is always satisfying, but what do you do with all your money? This is the answer: you purchase new colors and pattern for the little elephant!
There will be a barbershop like this in every town in the game, and each one will have a handful of unique outfits only available in that town.
This past week I have been working to get this whole system up and running, with the scrolling menu where you can select items and make purchases. I have constructed it in such a way that the whole menu is generated from an external list, which I keep as a text document within the project. This means that I can add new textures any time, and the computer will simply add them to the list automatically.
I think everything is working as it should now, so at this point it is only a matter of making a whole lot of different patterns and put them all in the game!
This last few days I’ve been working on the model for the City Guards, who will be standing around all over Knightingale City – the biggest city in the world. I thought I’d share some screenshots of my progress and the methods I use for creating 3D models for this game. This is a full out character, and not an environment prop like a rock or a door, which means it’s a little more complex than many other assets I make here. That said, though, I am keeping complexity to a minimum with the art production, because this project will have a lot of art assets, and I will be creating every single one of them by myself. This is why I have designed away things like normal maps, specularity, any kind of complex lighting and sharders, and so on.
Now, let’s take a look at this guard guy.
1 Concept Art
This is where pretty much every art asset starts its life, and it is literary just a quick doodle on a post-it note. Sometimes it’s cool to make more elaborate concept art, but since I am the one who both design and build this asset I can afford to be more laid back with the concept art. For this character I have been inspired by the roman soldiers from Asterix, as well as the guards from Ocarina of Time. Those two sources combined into this really slender, slightly goofy looking character. I needed him to wear a helmet, with a visor that completely covers his face, because there are actually going to be a lot of these guards, and they are all going to use the same model. That means they have can’t have a visible face, or it will be strange that all the guards in the whole world look like twins.
2 Highpoly sculpt
Because this is a character model, I have started out by making a highpoly sculpt in Zbrush. For most assets, the rocks and doors and so on, I skip this step and build the lowpoly game model directly, but humans and creatures have pretty complex bodies, and its easier to move stuff around in a program like Zbrush. I am going to bake a lot of the information in this highpoly model into textures, which will be used in the game, but I am not actually making a very detailed highpoly. If you haven’t looked at many Zbrush sculpts before a quick google image search will give you sense how ridiculously cool and detailed models you can make. Admittedly I’m not really that awesome even at my best, but I could spend a lot more time in this stage, and make the model much more detailed and well-crafted. I am however choosing not to, deliberately keeping things simple, in order to keep a minimalist art style and a feasible production time.
The highpoly sculpt from Zbrush has millions of polygons, which is way more than any game engine can handle in real time. In order to put this model into the game I have to create a lowpoly version of the model, using significantly fewer polygons. This is the primary reason why I make a highpoly sculpt, because it is the easy for me to build the lowpoly version “outside” it, using it as a reference. The other reason is to bake the highpoly information into textures, which I will talk about more in the next step.
4 Baking textures
Now that I have the final 3D model finished it is time to bake textures. I bake a whole lot of different ones, but the ones that are most important here are AO, Bent Normal and one I call Gradient Map. Normally, you would bake a Normal Map from the highpoly model. A huge reason you make a sculpt in the first place is to bake all that sweet, sweet detail into a normal map, so that you can use the lowpoly model in the game, and it will still look very similar to the high res version. That why big games you see on Steam and Xbox and whatnot look so good. For this project, however, I skip the normal maps altogether, using only a Diffuse Color texture, which is pretty much what you’d do for Nintentdo 64 and Playstation 1 (my textures have mush high resolution though, this is 2015 after all).
So yeah, Ambient Occlusion (or AO)… That basically mean I render the character with heavy duty advanced lightning, let the computer calculate where all the shadows end up, and paint those areas black. Once we have done all those calculations once, we can assume that the shadows will be pretty much the same place and not change much, and we can simply paint them right there on the model. Now, cast shadows will change a lot. If you are standing under a tree, you will be in the shade, whereas if you are standing in an open field you will be brightly lit. So those shadows we cannot bake into the textures. But no matter where you stand, you will pretty much always have darkness under your hat, inside your ears and so on. That’s ambient occlusion.
Bent Normals are something completely different. I honestly do not know what you are supposed to use the whole Bent Normal map for, but I do know that I am interested in the green channel (the computer saves images in three channels, one with all the blue information, one with all the red information and one with all the green). The information in the green channel of the Bent Normal map works like this: surfaces that faces straight up are white, and those that face down are black. Everything in-between are shades of grey according to their angle. The effect is something like you are standing directly underneath a bright light (such as the sun) where the top of your head and your shoulders are brightly lit.
The third map is the gradient map. I make this one basically by projecting a black and white gradient onto the model directly form the side. You can see what that looks like in the picture below. This has absolutely nothing to do with lightning. The ambient occlusion contains all the little shadows all over your body and the Bent Normals fakes a bright light just above you, but this gradient map is just for artistic reasons. When you paint a painting you often use light and darkness as a tool to create the composition, and I do a similar thing with this trick. Because of this map the feet and lower body will become darker, while the head and face becomes brighter, drawing attention. If I make a model of something other than a human, I play around a bit with this map, and make sure that the focus point is white and the rest is darker.
With all the maps baked, it’s time to head into Photoshop for some painting. Because I was lazy and cheap when making my highpoly sculpt, I have to do quite a lot of work at this stage. If you create a super detailed Zbrush sculpt, this step if fairly easy, because you mostly have to combine everything you have baked, add some color, and it will take care of itself. But, that’s not how I do it in this project. I paint quite a lot on these textures, by hand. I have added a belt and a belt buckle, patterns on the cloth, holes in the helm visor and so on. I have also manually polished all the edges and seams in the metal armor. It’s also important to think about color correction. Because you have baked all your maps in black and white, the final textures can often be rather dull, dark and grayish. I play around quite a lot with the vibrance and contrast. In this specific project all shadows and darkness is not black but practically purple. That looks a little clownish when you just look at the textures, but inside the game it get really warm and lively.
The whole guard 3D model is now complete. After this I created a rig of bones, which I can then animate. I also created a spear-like weapon for him to hold in his hands. Since this is not the first human character I add to the game I already have a lot of systems in place for handling dialogs, altering between animations and so on. This character can even use the system where NPC:s will turn their heads to look at you when you run past them.
Very early in the game Yono, the elephant, meets two young kids, and the three of them remain friends for the rest of the journey. Most NPCs will stand around in their specific place and never move much, but these two, Kai and Sundara, will actually move along with you for the whole game, and you’ll meet them now and again, in cities and forests, check in with them and talk about where to go next.
Both of them have their own backgrounds and stories. Kai is obviously a monk, and Sundara has a connection to the royal family of the kingdom, so in a way they each represent secular and spiritual power in the realm. But both of them are young children, and the do not hold any significant power themselves. Or, that’s the case in the beginning of the story…
My plan is actually to have these two character age over the course of the game, so that the final time you meet them, just before the end credits, they have both grown up and accepted the responsibilities of their adult lives.
Here’s a little puzzle room. It’s short and sweet and not very difficult.
I’m mostly showing it because I wanted to see if it works to upload a video instead of a .gif.