Submitted by , posted on 23 October 2001
Image Description, by
This is an up-to-date screenshot of my leveleditor called "Philmap". I work with
a little group of 8 people (Rarebyte) on a game called ParadiGm. It took me 8
months to create this program, though I actually learned OpenGL and MFC while
programming it (I got a lot of help from GA, another team member and lead
Recursive-Window-System: You can split every view into halfes and change them
to any kind of view you want (XY, ZX, ZY, Perspective)
Faces: Philmap Faces aren't limited to Triangles. They can contain any number
of vertices as long as they're convex and coplanar... Faces are automatically
split up if the translation of a vertex creates an invalid polygon
CSG: Subtract and Add. Optimized results. We used the BSP approached since
CSG is not so time critical in a leveleditor. (No, it doesn't take hours ;p)
Entities: Entities are placed in an external .dll and get are rendered
through the .dll (Event system (OnDraw, OnMouseMove, and so on.)). It's an MFC
.dll so the entity coders can use MFC Dialogs.
Lightmaps: Lights are Entities, but have internal Philmap support.. Lights
can be moved and are recomputed on-the-fly á la Serious Editor
Brush Morphing: Brushes are morphed from a bounding to diffrent objects.
Currently supported are: Cube, Sphere, Cylinder, ASE, 3ds, and a few others..
Terrain: Heightmaps are supported by Philmap. Sizes up to 2048 x 2048 ( not
recommended, a little slow ;p). Vertex Arrays are used to speed up rendering
Frustum Culling: Philmap uses Object Sphere based Frustum Culling to speed up
rendering... Overdraw is my main concern at the moment though...
Shortcuts for Visibilty of Dialogs: This was a great idea from one of my
team, Charlie. To maximize the working space you can show/hide different
toolbars. (that's why you only see the main toolbar in this screenshot =)
Textures: Philmap used the FreeImage library for it's textures, so there are
_a lot_ of formats supported (Jpeg, Bmp, Png, Gif,...)
Texture Shader: Our engine features a simple shader language for mirrors,
texture animation and so on... Philmap supports this.
Selection over the OpenGL backbuffer. (very accurate ;o)
all the other features a leveleditor should have: Translate Free, Locking to
different Axis, Rotating around different axis, Snap to Grid,
Workflow: I still have to optimize the workflow of the program. It takes
quite some time to create a decent map.
Morph plugins: I want to implement a .dll system for morphing, so others can
write morph plugins without having to dig through the whole Philmap Code.. (for
stairs, trees and so on)
Sprites: Although you can therotically use sprites, I still want to give this
so common feature in engines some extra support
Optimize drawing of heightmaps: Currently we're able to draw about 2
millionen triangles / second... this could be quite some more.. (U2 has, what, 8
million / second? we'll top that =)
Occlusion culling: I mentioned above that we've got quite some fillrate
problems. It's not such a big problem at the moment, but later on I'll implement
something like that. (occluders)
In-Leveleditor game test: Like Serious Editor we'd like to be able to test
the game on-the-fly... Our engine is designed to fit this so it won't be too
hard, we'll see...
More entities: There are only 3 entities at the moment since I'm working more
on the core side of the program right now. I want to make a little SDK so you
can develop your own entity dlls.. You'll have to send them to me and I'll
approve them, then they might get into the official entity.dll.
Morph Plugin SDK... I'm still trying to figure out a good design so that a
morph can create multiple brushes not only one.. I think I found a way just this
Ok, thx for reading it all :). ok guys, start posting.. If you've got any
questions, e-mail me (firstname.lastname@example.org).. Also, plz take a look at our website,
www.rarebyte.com, thx alot!