Star Trek: Online was, for five years of its development cycle, a triple A PC video game title. It was poised to become one of the great MMOs, along with World of Warcraft, and Lord of the Rings Online.
I worked at Perpetual Entertainment during the final two years of its life, as the Lead UI Designer and Engineer. It was an interesting job after working on websites during the decade prior. I learned a tremendous amount about working with dedicated graphics hardware, C++, and extremely complex application design requirements.
As an added bonus, I spent quite a bit of time working with the Art department on various 3D asset generation challenges as well, including procedural geology and nebula generation systems.






Procedural geometry and a few shader tests for Star Trek: Online. Making realtime cloud formations is really difficult, and pretty expensive if you try to use a point cloud with sprites. Geometry would be way cheaper but shading it convincingly is not so easy. These were rendered in Houdini, but I wrote a realtime version of the shader in HLSL.


These are just 2D and I made them in Apophysis, which is Scott Drave’s fractal flame (now called Electric Sheep) routines on serious steroids. This was another exploration of techniques of generating nebula imagery, although these would only have been useful for skybox compositing.


While not completely finished, this was the beginning of our final look target for the UI. The action bar is still very rough here. We hadn’t yet identified everything that would need to be down there. Nor had we had a chance to finalize our mini-map and health meters, so they are absent.


In addition to designing the UI, I worked with the tech and art teams to come up with a solution for creating procedural terrain. This is a capture from a very early test which shows algorithmically generated textures and relief features.


An early diagram to help visualize the pressure zones on the screen. I spent a lot of time thinking about where the center of interest is during gameplay, how it moves around the screen, and what information needs to be where at any given point in time.

This was a mockup for our initial login screen. We wanted it to feel like you were actually using a terminal on the bridge. After logging in, the camera would sweep back to reveal your character sitting at a physical LCARS terminal.
I figured I would try to come up with a nice algorithm for planets, so that when a person tries to fly their ship into it, you can’t, except I wanted it to feel natural and not like bumping up against a big beach ball. Anyway it took a weekend to put together all the stuff, including my mini-asteroids style interactive simulator. Use the arrow keys to move!
