See what's going on with flipcode!


Submitted by Curt J Sovak, posted on 19 November 2003

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

    Image of the Day Gallery



    Copyright 1999-2008 (C) FLIPCODE.COM and/or the original content author(s). All rights reserved.
    Please read our Terms, Conditions, and Privacy information.