I was thinking about it, and since it’s going to be a while before I get back to Natur, I decided to upload the source. Visit Natur on Codeplex to check it out.
It’s not exactly the best version; I was working on the game engine side of it for a while, changing how the physics and animations worked, but none of that has been carried over yet. A lot of the new implementations are still lingering in Devious Knights. This is why I was so hesitant on releasing it early, but never-the-less have fun with it.
You can do some interesting things besides the obvious. For example, I had made a quick map one day using the Spawn system. Rather than using the spawns for spawning, I just used them as data holders for exporting and importing. You can also use the same type of data for different things by using the sectors. You can say Spawns in Sector 0 represent this, but Spawns in Sector 1 represent that, and so forth.
One of nice things about height maps is just how easy they are to create versus the effect they produce. You can create a height map from just about anything. All you need to do is desaturate your starting image; you may want to blur some of the harder edges to create more gradual terrain, but that’s all you really need to do.
If you take a look at the video in my recent post: Dynamic Water on the GPU, you can see how I created a height map by drawing text onto a gray scaled image.
Now that I’ve gotten somewhat comfortable with height maps, I’ve been working on a new game that will incorporate its use. This particular project is going to have pre-defined terrain so I’m going to need my height maps up front. To create the height maps, I’m using Paint.NET.
One of the nice features in Paint.NET is Render Clouds, located in Effects -> Render -> Clouds. Selecting this will render some clouds in the colors of your choosing; also, you can modify the clouds scale and roughness as well as reseed your current rendering until your satisfied.
The following is a basic height map created using Render Clouds:
This one could pass as a decent height map; however, if you take a look at how the terrain renders, it turns out to be a bit of a mess. The problem is that it’s got too much stuff going on. Bumpy hills are cool and all, but so are flat plains. Not everywhere needs to appear rugged.
You can try tweaking some of the different areas; smooth out some plains, sharpen up some mountain ranges, etc, but when I was trying to create a nice map, I thought back on some reading I had done regarding lighting. I had read an article about the 3-Light Setup; the idea is that you set three lights at particular angles create a range of shadow manipulation. For my height map, I wanted a range of terrain types from soft plains to hard mountain ranges; but I also wanted them blended together in order to maintain a natural look.
To apply the concept of the 3-Light Setup, I used Paint.NET’s layering ability to break my map up in such a way that each layer would offer the terrain I wanted. In a sense, I started off with my Fill Light; a layer that provided some subtle terrain differences from flat to small hills. I created this layer using the Render Cloud with a large scale but small amount of roughness. Then I smoothed it out by adjusting the brightness/contrast.
Next, I wanted some mountains. So I created another layer, and rendered a different set of clouds. I lessened the scale a bit in order to create more defined terrain (clouds), and slightly increased the roughness. I didn’t increase the roughness too much though; the mountains should appear more rugged, but since this will likely be walkable terrain, I don’t want the player bouncing all over the place.
I started off the last layer as a duplicate of the second. Similar to the back light, this layer helps define the mountains. After duplicating the layer, I increased its contrast and then balanced it by slightly increasing the brightness. Some of the areas are so subtle that I had to give it a pink background; the pink is technically black and represents zero height.
And to compare to how the basic map rendered, here’s how the layered map looks:
I have finally gotten my dynamic water running. The water is volumetric and processed entirely on the GPU. Now I can hopeful move forward with getting this little project a little more “gamey.”
Enjoy the video, and take a swim into XBLIG!
After deciding to put Devious Knights on hold for bit—long story—I’ve been working on recreating some of my older ideas; this time however, I’ve been trying them out using some of the new techniques I’ve learned along the way.
The video shows a new dynamic terrain system that I’ve been working on. I create grass by taking some water from the pool and dropping it around the map. I also deform the terrain—create divots—by jumping up and slamming into it.
Check it out!
I finally got around to getting a new capture device so I can record directly from the Xbox. So here’s the latest with Devious Knights. It’s coming together, but I still have a ways to go. I doubt I’ll be looking at Xbox LIVE to be included with the Dream Build Play version, but hopefully I’ll have it going before release.
Enjoy the video, and please offer some feedback.
I’ve been working on my AI lately, and somewhere between having writers block and getting my AI functional yet again, I wrote up some thoughts on an older Sonar based method that I tried out.
I’m using Rally Points systems now, but it was still pretty interesting trying to go about the other method.
You can check it out here.