My hobby is programming. I'm working on a general-purpose brush-based world editor, and plan to emit HL² content as its first application. I am experimenting with an all-3D editing approach and find the math behind all that interesting. There is a binary format for temporary storage, and an XML format that can be exported to and imported from, both for the editor and game-specific converters. The main motivation driving this is being able to do a lot of brush work faster than in Hammer. There are supposed to be point and brush entities too, and for all of those, and for each brush face, there shall be properties (of various data types) -- that should be enough to map all information from a VMF 1:1 (and in effect not lose anything when converting to MB2 and then back later, after adding something). Only recently, I have been able to colorize things, as a first example for an attribute associated with brush faces. Because converting textures from another game is quite some work, I intend to encode texture information in a combination of very basic representative textures displayed, and a color to go along with it (e.g. generic sand texture and gray color => asphalt). This mapping would be available in XML or the like for the VMF converter, which should also be capable of emitting a gallery map of some sort. Higher-level entities could be thought of, e.g. func_explodingdoor, which is emitted as several entities to the VMF file. The way back would be analyzing what entities are there, and synthesizing the complex source entities, but that is another story. Hammer follows an approach which treats brushes as composed of vertices and edges, allowing for dragging vertices around. I have Radiant-style facedrag and brush merging instead, and 3D clipping has proven to be good enough for all kinds of vertex operations in the predecessor project. I don't know yet when I'll have implemented all the features that I planned, but no matter what Source-Engine game is topical then, I'll probably be able to map for it too. The conversion stuff shall all be open source, allowing for custom additions. The interface is already configurable very much (shortcuts, colors, etc.), and the specifications of the binary and XML formats will be shipped too. In a test, I have worked with more than 260,000 boxes displayed at once, and could still modify them. Once I made up my mind about culling and stuff, greater numbers might become feasible in level editing. This project is not to replace Hammer, just to explore new ways of editing, and be properly compatible. The predecessor is available on my website, but it is really outdated now.
video of an older version




This topic was brought to you by
Procrastination From Homework.