Editor Progress

Planning and Development, World Editor

I’m making decent progress on the world editor rewrite.  I’m miles ahead of where I would be if I had started over from scratch, but it’s still fairly slow going.  Every time I start over on this project that I’ve been dreaming of finishing for the last roughly 15 years it gets a little better.  I don’t think I’m necessarily a better programmer now than I was 10 years or 5 years ago, maybe I just have better resources at my disposal (I’m looking at you, stackoverflow).  In any case, the world editor now loads a flat terrain with a grass texture on it by default.  You can open a single (for now) map that only contains a heightmap for the terrain and nothing else.  You can then pan and orbit the camera around to look at the bumpy monstrosity of a terrain, and even save it to a heightmap file.  Of course, you can’t actually edit the terrain  yet so you’re just saving the file back over the one already on the server, but you can do it.  Here’s what it looks like right now:

Pretty impressive, huh?  Ok, I know it’s not, but it’s a good start.

Speaking of heightmaps, the heightmaps I’m using allow an absolutely huge range of heights but with incredibly fine details.  The lowest possible height is -32,768 meters and the maximum height is 32,768 meters, but the height of each individual vertex can vary by as little as 4 millimeters.  I will never really need the extreme detail or extreme range possible with the heightmap system I created, but it’s nice to have and doesn’t really cost anything extra in terms of storage or computation over a standard grayscale heightmap.  I’ll have to do an entire post on how my system works one day.  I’m sure I’m not the first to do heightmaps this way, but I’ve never found any resources describing my system so it might make a good read for someone.

I’ll keep at it with the world editor and make a concerted effort to get a second asset spotlight posted this Friday.  Until then.

Leave a Reply

Your email address will not be published. Required fields are marked *