Image Description, by Curt J Sovak
This is a collection of images taken over the span of a month of a
project I'm currently working on during my free time from University
entitled "Conquest of the Middle Ages". Actually, these are just
captures from my map editor. This editor was designed from the ground up
to be a WYSIWYG editor, and it actually shares a lot of code with the
core game engine, so you can:
Move freely about the terrain, inspecting it from any angle and
height
Deform the terrain (raise, lower, or smooth) using various
effect areas (brush sizes)
Add brushes (static entities), dynamic entities, or triggers
(control points), move/rotate them, and edit their parameters
Paint the terrain using any combination of base and detail
textures, using different brush sizes
Calculate lightmaps based on a modifiable sun position
Load/save game maps, and import height maps
Regarding the terrain, its size can be any multiple of 32, but I find it
easiest to restrict it to be 64, 128, 256, 384, 512, or 1024. Terrain
resolution is modifiable when a height map is imported or a new terrain
is created. Y scale is also freely changeable when importing a height
map. Each patch is 32x32 (33x33 vertices), and contains its own light
map. The light map resolution varies with object density if the user so
chooses, so a higher fidelity light map is possible as the object
density increases. Each patch also contains one alpha map (fixed at
64x64) per painted texture. This is how I presently allow a possible
infinite number of textures to be painted onto the terrain. This also
requires one additional pass per patch for each painted texture that
exists in that patch. I am looking into the possibility of combining all
of those paint textures and the alpha maps into one RGBA texture for
actual game maps. If a patch does not contain any painting with a
certain paint texture, or the patch cannot be seen, then that pass/patch
is not rendered. Water has not yet been split up per patch, and is
currently the entire terrain size at a height of -1.0.
Onto the picture: The top image is a cap of the map editor environment.
The toolbar on the right consists of: select object, rotate object, view
wire frame, deform terrain area upwards, deform downwards, smooth area,
change terrain area effect size, add brush, add entity, add trigger,
select brush/entity/trigger list, brush/entity/trigger parameters (w/
apply button!), paint terrain, erase paint, change paint brush size,
paints list, add paint type, remove paint type, and a small status area.
The middle left is an old image of the first light mapping I did with
the terrain. It's polygon intersection based rather than volume, so it
can at least look reasonable realistic.
The middle right is another old image of light mapping in water, with
the darkness of the light map depending on depth of the water.
And the bottom two images are just the latest money shots.
All this work has taken since July (I'm a slow programmer), and the
final result (the game) may not even be realized as I don't have any
modelers in my outfit. But, as it stands, it is to be a 3D RTS set in
medieval times, based off a game I made many years back in high school
comp sci in qbasic. It's not a huge project, even though it is my first
big legitimate stab at a large project. However, as I see that I've gone
this far with good results, I am hopeful for the future if I can secure
non-programming content.
Thanks for your time,
Curtis Sovak
|