With the TF2 SteamPipe conversion predictably breaking the SDK (though admittedly Valve did do a good job of putting a beta out quickly), I began thinking about what it would be like to create an editor from scratch. As lovely as Hammer is, it is incredibly old in places and is lacking some of the more basic functions of a 3D editor - namely things like rotating around arbitrary points, aligning to arbitrary points, nice displacement editing controls and the like. I thought it might also be useful to have the editor open-source - I know that developing an editor from scratch on my own would take inordinate amounts of time and effort and so a collaboration with like-minded people would make sense, but this would also allow anyone who felt like the editor was missing a feature to either request that it be added or go and implement it themselves.
The editor I am calling Crowbar (previously Carve, but a scan through the first three pages of this thread will reveal reasons behind the name change). A list of things I am hoping to implement in and above basic Hammer-style tools is as follows:
If anyone has other reasonable suggestions to add to this list then I will gladly consider them.
I currently have the workbench branch of the editor on GitHub; it's written using the Qt5 framework in C++ and will utilise OpenGL. I'm not 100% sure how GitHub works (I'm assuming requests can be made to submit revisions etc.) but if you fancy taking a look it's all there. At the moment I'm at the stage of having created an MDI window which can display a (future) FPS, show you an "About" dialogue courtesy of Qt and can close itself. This I'm intending to be the basic application which is then extended by both static and dynamic plugins (static ones being the document system, rendering system, etc. which can be relied upon as core components).
The editor I am calling Crowbar (previously Carve, but a scan through the first three pages of this thread will reveal reasons behind the name change). A list of things I am hoping to implement in and above basic Hammer-style tools is as follows:
- Allowing rotation around an arbitrary point.
- Aligning to an arbitrary point.
- Allowing rotation and translation in both global and local axes.
- Click-and-drag on faces to select or paint textures.
- Clipping along an arbitrary plane (even picking a face of a brush to use as a clipping plane) and being able to translate/rotate this plane accurately before performing the clip.
- Manipulating displacements using brushes similar to those found in terrain editors such as Far Cry.
- Allowing selection and transformation of arbitrary groups of vertices on displacement surfaces.
- Allowing the option to select multiple brushes and tie them either to one whole brush entity or many individual brush entities.
- In-built support to export arbitrary groups of brushes with Propper.
- Extend Arch tool to add Hole tool - takes a bounding box and creates the convex structure around a hole with 4 or more vertices. (Equivalent but neater way of carving a cylindrical hole in a wall)
- Vertex rounding. (Idolon)
- Previews when in the process of creating complex generated primitives such as arches. (Idolon)
- Measuring tool (Deodorant)
If anyone has other reasonable suggestions to add to this list then I will gladly consider them.
I currently have the workbench branch of the editor on GitHub; it's written using the Qt5 framework in C++ and will utilise OpenGL. I'm not 100% sure how GitHub works (I'm assuming requests can be made to submit revisions etc.) but if you fancy taking a look it's all there. At the moment I'm at the stage of having created an MDI window which can display a (future) FPS, show you an "About" dialogue courtesy of Qt and can close itself. This I'm intending to be the basic application which is then extended by both static and dynamic plugins (static ones being the document system, rendering system, etc. which can be relied upon as core components).
Last edited: