Adventures in Zone Editing

Udeni

Dalayan Elder
Preface: I have no idea what I'm doing. I don't really know how to code, nor do I have much experience with 3D modelling. I especially don't know what the staff knows about any of these things, nor the extent of how much they care about any of this.

That being said, I have found some really cool (and pretty much abandoned, it seems) tools on the eqemulator forums for creating, editing, and generally changing zones. The sub-forum on the eqemulator forums is somewhat hidden, being all the way at the bottom of the page. But in that sub-forum is a very interesting list of downloads, where you can find programs such as OpenZone, Dungeon Builder, DZoneConverter, among others, mostly from before eqemulator was the go-to place. Now, that was just the start, because I remembered that eqemulator has an excellent wiki for all things development related. On that wiki is a page for modeling custom zones, which has links to Zaela's zone import tool, weapon model import tool, and particle editor tool. Pretty neat, right?

From those resources, I found a few methods for creating and editing zones.
  • Dungeon Builder can be used to create a nice indoor zone, and can even be used to assign textures to walls. From that, you can export to a 3DS Studio MAX file, where specific mesh edits can be done.
  • Zaela's zone importer tool can export to a .obj, where mesh edits can be done in blender or 3DS studio max. This tool is probably the most effective way of editing existing zones, by exporting to a .obj and tearing into the mesh.
  • OpenZone can be used to create a zone from scratch. It's also the least documented, and completely abandoned as far as I can tell. Even then, it is still able to create brand new zones. The program ZoneProxy is supposed to be used with this, to allow the client to load more than the client limitation of zones (I think, i only glanced at the readme file in the download) through a tricky work-around. However, it requires that there be corresponding code be built into the server code, and I have no idea if that code still exists.
  • Import a zone from the .s3d or .wld using DZoneConverter, then export to any of the supported formats. The .obj format works alright, but the method used to export the zone to the .obj is very, very crude, and leads to way more vertices being created than there needs to be, which leads to a lot of issues (editing being harder, file size being larger than needed, etc.)
Now that I've got the dense stuff out of the way, let's see some pictures of these programs.

Dungeon Builder is a nice, simple way of making indoor zones. It has the ability to place corridors, create rooms with various numbers of walls, and even add textures to walls.
Here's a test dungeon it came with, the small window is the overview of the dungeon, and the big window lets you edit the structures.
Dungeon Builder.jpg
Textures can be set using an OpenGL rendering of the zone, as seen here. This allows each individual wall, floor, or ceiling to be set to a specific texture.

Dungeon Builder Texture Setting.jpg
Or all textures can be set all at once, as shown here. Textures need to be .bmp files of 256x256 in size (512x512 *might* work, I think EQ Live moved to that size at some point, who knows if this program can handle it. I don't think OpenZone can.)
Dungeon Builder Overall Texture.jpg
Unfortunately, Blender can't open the .3ds file it outputs, so I have to load it in OpenZone. Importing the dungeon to OpenZone works flawlessly, as seen here.

OpenZone Test Dungeon.jpg
The corridors and rooms are actually regarded as placed objects, as seen in the top left corner. From here, various objects can be placed, like barrels, apples, mushrooms, doors, etc. I don't know anything about Sql, but it appears it's used for parameters for objects and doors.
But OpenZone isn't just for loading zones created in Dungeon Builder, it can be used to create the zones itself.
OpenZone Zone Creation.jpg
The Above-water texture is the ground texture, where underwater texture is the texture used when swimming underwater (I think). The building steps of it are kind of boring, and I also don't know how to place objects properly yet. So instead, I'll show one of the example zones found on the download thread of openzone.
OpenZone Example Zone.jpg
As you can see, the zone is reasonably detailed, having a few camps, a bunch of trees, canyons, and a pond.

The tool that I find the coolest (because it let me look at the mesh of burning woods, aka tears of elael) is Zaela's EQG Zone Importer. Since it's pretty well documented on its eqemulator thread, I won't go into too much detail here. One cool feature, though, is that you can preview zones through it. So I decided to take a look at burningwoods, and see why I was lagging so much in tears of elael. Some people were saying it was due to how many trees are in the zone, but when i looked at the zone file from the .s3d...
EQG Zone Importer Burningwoods.jpg
THERE WEREN'T ANY TREES! That's right folks, Tears of Elael, as a zone mesh, by itself, *has no trees*. Another interesting thing about Tears of Elael, is that it's not just the ground that has a mesh. The sky and underneath the ground are meshes as well, which means the sky is just a texture file in the .s3d file for burningwoods, unlike other zones that let the client render anything without a mesh as sky texture. (I saw this in blender, but didn't take screenshots, oops)
Interestingly enough, that's true for all objects not in the main .wld mesh, as can be seen in gfaydark
Greater Faydark.jpg
The wizard spires are missing, oh no! But Kelethin itself is part of the mesh, so the trees it's on are perfectly sound.

Also, OpenZone and Dungeon Builder actually have the source code in the downloaded folder. Which, now that I look at it, has the documentation for how to use OpenZone.

Anyways, that's the fun i've been having with looking at the zones. Who knows how useful this is to the devs, or if it's just fluff. Maybe these tools could be used to make zones to the devs liking, rather than having to work with regular old everquest zones. It doesn't seem too hard to change zones using these tools, but I have no idea how compatible modified zones will be with the server code. It was a fun adventure looking at this stuff, hopefully its more than just neat!
 
Back
Top Bottom