Interview with Sean Barrett

May 8, 2009 at 2:21 am

I thought it was appropriate, given that this month will mark the ten (!) year anniversary of the public release of Dromed to the community, that we talk with someone who helped create it. That said, it’s my honor to bring you a Q&A session with Sean Barrett, formerly of Looking Glass Studios. Read on for all the details…

You played a significant role in the creation & development of the Dark Engine and Dromed, right? How did it all come about, and who else was involved?

I’m dredging up old memories here, so I apologize to anyone I leave out or slight in this description…The games Looking Glass had done up to then, System Shock and Terra Nova and earlier games, used a world divided up into a grid. We all wanted to break free from that. I came up with a strategy using a technology known as “portals” to us to have more flexible world layout and be fully 3D. I put this in a tech demo named “Portal”, probably soon after Terra Nova shipped (but I don’t know for sure). That system was the first part of what eventually became the Dark Engine. (Portal technology was used earlier for Descent, and was presumably the technology underlying early versions of Prey, but it’s unrelated to the gameplay portals you see in Valve’s game Portal and the released version of Prey.) The tech demo let us render non-grid-based worlds, that is, draw them on the screen.

It was still an open question how to let designers *build* those worlds with as little pain as possible. I heard that John Carmack was using CSG to tackle the same problem for the Quake engine, which was being developed around the same time. At first this seemed really problematic to me–there were a lot of things that seemed they’d be hard to do properly, but after some email clarifications from him, I went ahead and gave it a try. I implemented a basic “CSG brush” system and a “compiler” that turned the CSG brushes into a “portal” level.I also created a brush editor, which eventually turned into Dromed. (I don’t remember if anyone changed the brush editor; if the one in Dromed has you use shift/ctrl/alt with the mouse to move/rotate/scale brushes, well, if you don’t like that UI, blame me.)

 

Doug Church and I then created a test “level” to validate that the CSG brush idea would be viable — would let designers create interesting and functional levels. Once we saw that it worked, the project rolled forward.

Up to that point I think the “engine” was largely mine (I don’t remember precisely, but I think Doug was also writing editor code at that point), but it was just a renderer. From then on, I stayed focused on the graphics technology, and the rest of the Dark Engine and Dromed were created without any influence from me.

I can’t remember exactly who did what at that point, but I believe Marc LeBlanc was pretty much solely responsible for the “object system”, and I beleive he implemented Ken Levine’s high concept for “Act/React”.

The project went through two (three?) AI programmers, so I don’t know who was responsible for what there… not to mention three project leaders. And I should mention that I wasn’t solely responsible for the graphics technology; Kevin Wasserman ported my software rendering technology to use D3D and hardware, and I believe Kate Jenkins was primarily responsible for the skinned characters/animation system. Not to mention the fact that I myself actually quit midway through the project, although I continued to work on it as a contractor. (This is mentioned in Tom Leonard’s Thief postmortem available on Gamasutra, along with some other interesting tidbits that are worth checking out.)

With all those people working on the engine, in the grand scheme of things my contribution was small.

What made the engine different and unique in regards to graphics, lighting, AI, sound, etc? I’m guessing you had to program things extremely different from your typical first-person game because of the unique type of gameplay in Thief.

One of the fundamentals of Looking Glass is that the game design ruled the roost. The engine was a tool to be used by the designers to create the game. A lot of the flashiest games in that era were very simple games with neat graphics engines; it often seemed like the game was designed to work off the limitations of the engine and to show it the graphics off in the best light. That never happened at Looking Glass; designers did what they were going to do, and it was the job of the engine to make it possible.

In practice, the graphics technology was very similar to Quake in most ways. For example, the original engine didn’t have lightmapping, and after the Quake demo came out we quickly agreed I had to copy it for The Dark Project.

The most unique elements of the Thief engine are things I don’t know that much about:

– AI: The AIs used “real” senses (with limited sight distances) to spot the player, and a lot of effort went into making sure they didn’t cheat if they lost sight of you and tried to find you again. This has become somewhat commonplace in games these days, I think.

– Sound propogation: A significant effort went into making sound propogate through the hallways and rooms, instead of you hearing sounds “through walls”. This was really important for a stealth game where you rely so heavily on hearing. Surprisingly, few games seem to try do this at all, much less as well as Thief did.

– The object system: about which far too much can be said, but fortunately it’s all pretty visible there in Dromed.

What was it like working for LGS back in it’s heyday? Do you still keep in contact with anyone you worked with there?

I started working at LGS at the end of System Shock 1, and as a big fan of Ultima Underworld I always felt like I had missed the heyday. But I guess Thief was its own highwater mark.

As to what it was like, what can I say? It was a lot of really smart people, people with strong opinions who disagreed about things, people who worked hard, people who slaved away on a “game” that never resembled the shipping product until the last few weeks before it shipped. (We never knew if what we were doing would work.) But none of that is unique to the industry, as far as I can tell.

I see many of the people I worked with at Looking Glass at the Game Developers Conference every year, although because I left Boston I only see a few outside of that. I used to regularly meet up with Marc LeBlanc (primary developer of Oasis) and other friends to play german board games. I’m in regular contact with Dan Schmidt (now at Harmonix), who was my project leader on Terra Nova and was one of The Dark Project project leaders. And I hang out with Doug Church every so often. (Of course, all three of them are also former housemates from when we shared a house with 7 other LGS developers and/or MIT graduates.)

There’s been a lot of interest in the Dark Engine source code in the Thief community for obvious reasons. Do yo have any idea what happened to it, or who might still have a copy?

Nope. The only thing LGS source code I sneakily kept was “mfdgames.c”, which had the source code to “Wing 0″, a minigame I wrote for System Shock. I don’t think there’s much demand for an up-to-date port of that, sadly.

Are you amazed the game engine you created over 10 years is still extremely popular, and that the fan community behind Thief is still so strong?

I guess so, since I was surprised by this interview request. I haven’t actually looked at TTLG and such in the last 4 or 5 years…

Based on past agreements and contracts you’ve signed, are you even able (or willing) to work on community projects such as Open Dark engine (http://sourceforge.net/projects/opde) or The Dark Mod (http://www.thedarkmod.com)?

I don’t think I have any contractual barriers, but I’ve definitely moved on. (But if there’s ever a community project to reimplement X-Com properly, sign me up.)

What can you tell us about the development of Thief 2 Gold or Thief 3 before LGS closed it’s doors?

I don’t know anything about Thief 2 Gold. My view of Thief 3 was very narrow, since I was just one of 5 or so people on the Thief 3 Engine team (which also included Tom Leonard, Marc LeBlanc, Chris Carollo, and Kevin Wasserman, IIRC and am not forgetting anyone.) The next few questions probably cover my knowledge.

How was the LGS vision of Thief3 different from what eventually was released at Ion Storm?

I don’t know. I don’t think LGS had really developed a coherent picture of Thief 3 by the time of the shutdown. Since Randy Smith was the primary mover on the game design at LGS (with Terri Barous), and since both of them worked on the Ion Storm Austin version, I imagine that any changes that happened during the switchover probably were still fairly organic. But you’d have to ask Randy.

Was there anything revolutionary or unique about the new engine being developed for Thief3, or was it just more of an upgrade/enhancement to Thief2?

The Thief 3 engine was essentially a rewrite from scratch, but it didn’t have anything revolutionary that I recall. However, I was even more isolated from the rest of the engine than I had been before, focussed solely on the rendering technology. The renderer was radically different from the previous system; “portal” had never been designed with hardware rendering in mind, and it scaled very poorly to larger polygon counts (it was a horrible choice to make a hardware-only title like System Shock 2 or
Thief 2, but it was the option LGS had). But the new system was just correcting that error; it wasn’t doing anything particularly exciting.

I don’t remember what was planned for the AI, or the object system or the rest. It’s possible we were going to keep the object system.

The editor was being rewritten from scratch, I think. The main innovation that I seem to remember was a rewrite of the CSG brush system, I think by Chris Carollo, that avoided needing a separate compile step; you could just immediately see the results of placing and moving brushes.

Were you at all involved in the last Dark Engine game, Deep Cover?

No.

What are you currently working on?  Are you still involved and connected to the indie game scene?

After Looking Glass shutdown, I unintentionally found myself becoming an indie game developer. I funded it by doing various contracts (my most recent was doing many of the subtle programmatic graphics effects in Braid). Unfortunately, I never got any large games done, or, more specifically, never got any games done that offered a path towards making indie game development a career. I did release a few small free games that some people seemed to enjoy, but that doesn’t pay the bills, so last year I
took a job at RAD Game Tools, a game middleware developer. I do hope to continue to make small indie games that I’ll release for free, but so far I’ve found it hard to find the energy to do much game development.

My *very* rarely updated tech-oriented development blog is http://silverspaceship.livejournal.com/

Huge thanks to Sean for taking the time, it is most appreciated.   And we would love it if you’d stop by the TTLG forums on occasion, if for nothing else but to give the Thief community some more interesting insights on the inner workings of LGS.

To everyone else reading out there – long live Dromed & The Dark Engine…!


author: brethren

Leave a Reply