I remember using the graphical web for the first time and
thinking, "Can people watch me doing this?" I could watch my users
type out stuff on a BBS, so I thought that maybe someone could watch me
navigate in my browser real-time.
TS:
After that realization about the web, I felt really idiotic. It forced me to be
in the mindset of "Everything I do from now on needs to be thought through
carefully." With every major technical problem, I didn't just look at
"What is the problem I'm trying to solve?", but I took a much bigger
perspective: "How can we really change the game and win this?"
When
it came to developing Unreal -- I think we started that in 1994 -- James
Schmalz was writing a solo assembly language 3D game with a dragon flying over
a terrain, kind of a Magic Carpet knock-off. And I was tasked with
writing the editor for it.
But I really thought that through in a huge amount
of depth in advance -- you know, looking at what Quake did and Doom did:
they had this little crappy editor with a very advanced game engine behind it.
Completely separate programs.
I thought it through in a whole lot of detail,
and I thought that content development was really the essential ingredient in
all of that. It was important to spend even more effort on the editor and tools
than the actual game itself, just to empower the artists to make a great game.
So we
came up with this editor-centric approach to game development, where you had
this integrated editor that used the game engine for real-time display of everything.
Real-time editing of everything, and all of that. And that came from really
methodically thinking through the problem of "What do you really do, and
how do I not miss the point in this revolution?"
ZZT was like that too, right? It was an editor and
an engine. Users could create their own content, which was my favorite part
about the whole thing.
TS: I
really stumbled on that idea, rather than having it in advance. It just evolved
from creating this editor that turned into a game editor that turned into a
game.
And throughout the whole thing, I did recognize the importance of
development tools, but I really never had a conception of what the game was
going to be until it approached completion, whereas with Unreal --
really, ZZT was the road map of what the thing would look like.
It's
a structure that we've been copying and pasting into ever-more-advanced game
engines ever since: you have this editor, you have this game runtime, they use
the same display environment, same programming language.
You have a scripting
language for defining game events. There's really a huge amount of similarity
between ZZT and Unreal, if you look at it. Unreal is a hundred or
two-hundred times more complicated with more code, but it's still very similar
in structure.
So
you definitely credit ZZT as the base of your Unreal Engine ideas. If
you hadn't done ZZT, you probably wouldn't have thought of Unreal that
way, right?
TS:
Yeah. Otherwise, we could have focused on making just a game, and the editor
would have sucked. We would have built everything in 3D Studio Max. We would
have missed out on many of the most interesting ideas behind it. And that would
have seriously been detrimental with the mod community.
Beyond ZZT
Tell
me about Super ZZT. Were there any improvements in the engine that were
substantial over ZZT?
TS: Super
ZZT was the same basic engine, but I extended it to scroll, so now you had
these boards that were -- I don't remember the size -- several thousand by
several thousand, so you could go for several boards at a time just scrolling
smoothly through the environment.
I thought that was a big improvement. It was kind of
the ideal I was heading for. I really love the Ultima style of game
where you had this expansive, seemingly-limitless landscape that you can go
through.
But I never really got to that point with Super ZZT. I had this
idea from the very beginning that it was going to be a streaming game world,
where you could have unlimited board sizes -- you know, millions by millions if
wanted -- and it would just load parts of it on demand as you go through. But I
was constrained for time. I wanted to ship something, and be able to release a
lot of games, so I didn't put the effort into it.
The
other thing I would have really loved to do but just didn't have the time for
was make it a BBS-based game, so ideally, you could have a bunch of users
dialing in and playing together, each user moving independently.
I
always wished for a multi-user ZZT -- like a MUD where you could build
stuff in ASCII graphics and just have other people interact through that.
TS: Yeah, even better: keep it live, right? You'd be
able to build things in the MMO environment while people are playing through
it.
While they're playing, yeah, just like on MUSHes. I don't
know if you've ever been on MUDs or variants of them where you can program in a
"softcode" -- a language
written within the language.
TS: I
saw a MUD in the late 1980s at one point, and it was astonishing to me. I'd
never had any idea that you could create a multiplayer game like that with lots
of players playing together -- and this one probably had 10 or 20 playing
together at a time. It was just astonishingly cool.
From
that point on, I could kind of envision the whole massively-multiplayer game
idea -- it was obvious that you could take those techniques and extend them to
graphical games and, wherever gameplay and graphics went, you could bring that
whole concept forward. So I always wanted to do that -- to create a large-scale
multiplayer game. That's another thing that I've always wanted to do but
haven't ever actually gotten to.
Unreal has
multiplayer you can get 20 players into a server and you can get some
interesting interaction, but it's never been a large-scale MMO.