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.
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.