last updated 4/23/2003
Real-Time Strategy Engine
(older links to larger versions removed due to website space limitations)
4/23/03. Basic font functionality.
4/21/03. Preliminary object code in place.
4/5/03. Terrain tile transitions (blending between tiles). Thank God!
I lay down 3x3 verts with alpha values at each vert as follows:
0 0 0
0 1 0
0 0 0
This gives the results above. Linear transitions between tiles. Each point in my map array is assigned a single texture. I render each 3x3 "chunk" with that texture with the corresponding alpha values from the above table. I then step over 2 verts and render the next 3x3 chunk, so each successive chunk overlaps the previous. If you have any questions about this process, email me at firstname.lastname@example.org or contact me via ICQ at 4868195.
3/7/02. My Developer's Desktop. Oh yeah.
2/10/02. Switched to perspective to see if it looks better. You tell me. Also got some alpha/depth issues resolved.
2/4/02. Nothing new externally, really. This shot uses just one tile texture for the entire map. Main change is the shadows. I'm simplifying things a bit. :) I messed with the terrain height interpolation on heightmap load, thus the black area at bottom left. Same water texture, just with lots more blue.
Latest as of 1/24/02. Back to conventional tiles. This terrain has randomly distributed ones, since I've only still got the 4 base to work with. Eventually I'll have a full tileset, Lord willing. Meanwhile....
As of 1/15/02 (0500 -6 GMT). Mu hah hah. :) Thanks be to the God of Abraham, Isaac, and Jacob I finally got it working. I calculate height of each pixel now for blending purposes, so blending is smooth across the tile. I've still got some seam issues, but this to me represents much progress.
This is the texture that is used to cover the heightmap. At run-time my program breaks it up into 256x256 chunks. I use a separate program to generate it based on the heightmap and 4 base textures.
Latest iteration as of 1/13/02 (0410 -6 GMT). Shot on left is where each pixel in a tile (16x16 pixels) gets the same height for blending purposes. Shot on right is where each pixel is weighted towards the surrounding tile's heights based on location within tile (e.g., pixels near the top of a given tile get weighted more towards the tile above). Also shown are the heightmap (in case you want to try it yourself) and where we are on the heightmap:.
Latest iteration as of 1/12/02 ...
Older shots of the first few iterations of the engine: