Creating TexturesI tend to have zero artistic ability when it comes to creating art assets. I am thankful that I have the technical abilities that I have, but must accept that the artistic side of my brain (whichever side that is...) is apparently significantly smaller than the other side. Even though I realize this, I had to figure out how to create the textures for my demo. Of course I wanted the textures to look as good as possible, so I started to think about how to go about it.
I needed a gray scale height map, an RGB color map, and a normal map all for the same material. Since I don't own any photo editors (except for MS paint!) I started searching for open source or free ones. To my great surprise, I found the GNU Image Manipulation Program, otherwise referred to as The GIMP. In the past, I haven't really gotten into the open source scene very often, but this program is just phenomenal. It has more or less all the features that a small game startup company could want, is easy to write plugins for, and is easy to use. (Plus the way that they use totally separate floating windows for their tool bars is really cool, and has started some thoughts about how this could be used in my engine gui!)
So I went about using it to create the textures. They aren't perfect, but I think they turned out significantly better than if I was trying to use paint. If you haven't tried this program, go get it! With the color map and height map in hand, I wrote a small height map to normal map converter, and generated the normal map. Finally I tweaked several shading parameters, and then cleaned up the remaining parts of the user interface.
Overall, I was quite proud of the fact that I made the textures on my own. Having not done that before, it seemed a bit daunting - but it is a conquerable problem.
Hieroglyph 2Like I mentioned last time, I've been reviewing the functionality that I had in my old engine and designing the next version. While developing the first engine, it was basically a case of adding the needed functionality as I went - before you know or understand all the features that you want, its hard to design a priori. So this time around I have the opportunity to really think about the different relationships between the various classes in the engine.
Overall, the current engine consists of approximately 300 or so classes, covering rendering, audio, scripting, physics, and input. To begin with, I will be modifying the renderer design to cover some weaknesses that I have noticed over the last couple projects. I'll post about that once I have the basic design finished up.