Pull to refresh
VDS/VPS-хостинг. Скидка 15% по коду HABR15

Make it easier to get finished: Interview with John Romero, developer of Doom

Reading time12 min
At the last Tech Train IT festival, we met the legendary John Romero, who designed and developed the iconic Wolfenstein 3D, Doom, and Quake. We talked about whether game developers need soft skills, which working tools to pay attention to, and which co-founder of Id Software's favorite toys are. Questions were asked by Nikita Tsaplin, the founder of RUVDS.

→ Text and video in Russian

Nikita Tsaplin, RUVDS founder

From one of your interviews that you said in 2001 when you had taken a look at your code made in 1991 you find it very hard to use. And then after some period when you return to your code made in 2001 you find it «not bad». How do you eliminate code quality?

Jonh Romero — game and level designer, programmer, game creator at «Romero Games», co-founder «Id Software»

The code was written like half in an assembly language back in 1991. and I just started programming in C, so I was brand-new programming in C. So coming back to that after spending 10 years more programming in C… Aah. It’s horrible. 

And which elimination parameters change over time and which are not?

Well, like the entire environment that the code ran in was completely different. So the code in 1991 ran in DOS, and the code in 2001 was running in Windows.

So it was a time on a new platform, I think?

Brand new platform, yeah.

Can you divide the main criteria that you should take into your column when you review your own code?

Is it easy to understand? That’s really important. Does it have some comments? You shouldn’t be too commenting ‘cause that get’s boring. But does it have enough comments for the tricky sections, and is the structure, uh, you know, does the structure makes sense and is it easy to add to.

Uh… What skills should a developer have to make it in game industry?

You have to really want to make games. ‘Cause it’s hard to finish a game. And this is…

It’s easy to start and impossible to finish.

… Is hard to finish. And it’s a lot of hours too. No matter what part of games you’re making – it’s gonna be way more hours than you have ever thought. So you have to be prepared to be focused for a long time.

I’ve heard that developers should have more soft skills  than before. Is it true?

Well, yeah, because now there’s a lot of people on teams. And so when you’re on teams you have to be like nice to other people



You have some professional weight?

You gotta get used to communicating. And programmers don’t want to communicate. They just wanna code. So it’s important to, you know, limit  your… Limit the time that you’re taking people away from code to, you know, short amounts of time for communication, but, like, nowadays why not you Slack? You know? Communicate through Slack. It’s quick. It’s faster than taking off your headphones and getting up and talking to someone and coming back and all that stuff. So we do it all the time.

Yeah. People want room, and communicate just via messangers. 

Yeah. If they have headphones.

And which soft skills do you think are more important now?

I think communications are more important than anything. It always has been. If other people don’t know what you’re doing, or you don’t know what other people doing, you can just spend… Waste a ton of time and money, because you just did the wrong thing. So communications are more important than anything else you can possibly do. Everyone needs to know what they’re supposed to do, and how they are supposed to do it. So even when you’re gonna program something the way that you’re going to write it is good to communicate. Not just «Yeah I’ll do that.» You know? Should be like…

See you by the week!

Yeah. Nothing like that. It should be «I’m gonna do that and I’m gonna do it like this. Does that sound okay?»

So communication on every stage of development is the main.


A few months ago I spoke with Richard Gray in Moscow. And he says that one of the best strategies for developers to get in game development is to show something made by your own. But in other hand you said that even making doom-like levels in Sigil is a real technical challenge today. Don’t you think today’s instruments are too complicated to make something just for portfolio. Where’s a perfect balance here?

Well, in today’s engines it does take a ton of time to make a level.


So it’s not as easy as it used to be. It’s now… It now just take a lot of time. There’s just like so many people involved in just making a level nowadays. You have people that… You have artist that just light levels. And you have game designers blocking them out. You have artists doing art. You have them doing set dressing to make them really good. Gotta make sure that shaders are right.

I think now it’s impossible to make level for just a portfolio, if that’s what you have to do.

Well, you can, but it takes a really long time. Like there’s a… There’s a great example on YouTube. If you’re using Unreal (Примред UnrealEngine) and you want to learn what the pipeline is to create just a level and you want to do it by yourself – there’s a tutorial… A guy (Price?)… I think it’s a 30 minute tutorial and he shows how he made a hallway in 10 hours. And he did it…

Ten hours… it’s nothing?

And it’s recorded in 30 minutes, it’s recorded at super high speed so you can see all stuff he’s doing in just a hallway. Ten hours. Now… Games takes a long time.

And what do you think is the best strategy for developer to get into gamedev.

The best strategy is to learn as much stuff as you can at home. You know, like, you can go to school and learn stuff, which is great, it will give you creds, you’ll get diploma and all that. But you’re gonna learn a lot more doing your stuff at home. You go faster, you learn exactly what you want to learn.

You know, some people say that programmers who uses frameworks don’t have even a clue to understand what, how… How does it works inside? Does it really matter today?  To understand what’s inside? Or frameworks is okay?

Yes, it does. It’s helpful. Let’s say the junior programmer will know frameworks. Expert programmers will know how to build frameworks. Which means they know… They know how to build frameworks, they know everything all the way down to the bottom, right? And that’s super helpful because you can use a framework in a very inefficient way, not knowing how it actually runs underneath and makes run something very slow.

Matter of flexibility. You can combine frameworks, if you understand…

You need to glue things together to make stuff work but that doesn’t mean that it’s gonna perform it. That doesn’t mean that you understand what’s going on under the hood. Especially if you’re talking about databases, you can write data… You can write code for databases that’s horrible. And you think it’s okay because you know «These are the commands» but like if you don’t know how InnoDB runs and how it works under the hood…

It could be…

– forget it.  You need to hire. Yea, you need a consultant…

To solve it

… to come in and straighten out everything. 

Another thing in Agile… In books and articles gamedev is full of romantic and unpredictibility. This is exactly what we need for Agile. Agile and maybe some other approaches. 
Only Agile.

Only Agile?

Yeah. But not strict Agile, not scrum Agile. We do have milestones on specific times and, you know, we get stuff ready. It’s a nice long period of time. It’s like three time of what Agile is, like six week instead of two. So it’s a nice period of time, that we get a lot done in. And it’s kind of Kanban style aswell maybe? ‘Cause it doesn’t all have to get done in six weeks, ‘cause there’s stuff that’s in process still. So that just won’t get done, but we’ll just turn in something that have a lot of stuff done. And the stuff that’s half way done we’ll get… We’ll get finished in the next milestone. It’s more about coming up with a feature list, and then trying to deliver that feature list to the end of those six weeks. And if you make it, you know, you make it, if you don’t – then those things going to the next one. You know? And when it just turns into just a rescoping exercise that get’s too long you take something out, doing it differently, you know. You redesign it to make it easier to get finished. And when you drop it all together if something takes too long. 

So not from Agile… You need to understand how it works and combine with other approaches maybe.


Can you compare how the work processes are organized in game studios, now and back in 1990-s or 2000-s?

There… I guess it… It depends on how many people. Like it’s always depends on how many people are in a team. Even today if you had a really small four-person team, you would probably be developing the way that we would back in 1990-s with a four-person team. Because it’s so small and everybody understands what they have to do. They’ll all communicate very tightly,

Yeah-yeah. So

‘Cause they’re in the same room probably. 

So in RUVDS, in my company, we have a small team, so we don’t need to use agile.

Exactly. So it’s not worth it. It’s the same thing back in 1990. Like you just… What you writing changes because of platform, but how you discuss it and develop it is the same. You know? The design that you put into it is different nowadays, ‘cause design language is evolved since 1980-s. So what you’re designing is different, but the way that you build things is pretty much similar. 

Is there are things in game development that becoming easier or harder over time? And why?

There are a lot of tools that out there that make… That make making games easier for people. What’s harder is coming up to good game design. It’s hard to come up with a really good game idea. You know? You can have the best programmer in the world write a garbage game and no one will want to play that game. And doesn’t matter how good that programmer is. 

So game design now is first. In the main front.

It’s the first thing. If you have someone who has an amazing game design that is proficient at least in programming. You have a brand-new genre probably. You get an amazing game. So it’s the design that matters more than anything.

Getting back to TechTrain. Where does the train drive game industry?

Well, um… I’d say, you know, in augmented reality gaming (AR) is really exciting new segment. It’s a cool new area, you know. There’s money there… Not as much money as there was in VR, when everybody was throwing their money in VR…

But VR doesn’t last out.

Nope. VR is not going to. You know, VR… It’s better at non-gaming applications, right? There are some cool VR things, but it’s really what it comes down to VR in games is the fatigue. Fatigue is too high when people play games. It’s just like people are not jumping on their Wii pads anymore. They just tired out. They don’t want to do it anymore. And VR is just hard to use. 

It’s just a one day toy.


Do you have an experience in augmented reality or VR games?

I haven’t done any AR stuff. But I’d really like the possibilities. I mean if you pay attention to the LEGO games and the Minecraft Earth stuff… There’s a lot of really cool stuff in AR, and everybody is experimenting and it’s something that people have taken to. Pokemon Go proved to everybody that there’s tons of money in AR. It’s definitely a segment. It’s not replacing consoles, it’s not replacing mobiles, it’s not replacing anything, it’s just another thing.

It seems like everyone has, everyone understand the possibilities, but don’t know how to use them.

Well, there’s APIs for using it. So Apple has created AR kit, you know? Which is amazing. Like, they didn’t make VR kit for reason. They made an AR kit, because they know it’s gonna work. And that’s helpful, right? So an AR kit coupled with Swift 5… Umm… You can make some really cool stuff.

What do you think about mobile gaming?

Well Sigil is on smartphones. We already got Sigil running on… So many things. I guess so many… You know, in Instagram and Twitter there are so many devices that Sigil is running on. People send screenshots of it.

But they built it like by themselves? There’s no products for smartphones?

There’s… Well, for Android there is. So just like you can get Doom that runs mods. Just like, umh… You can play Sigil on an Xbox. You can use automechs which is like an opensource Doom that will run mods and you can put Sigil on your Xbox, and you can run Sigil on it.

Yeah. But do you ever imagined about doing a battle royale game in Doom universe? Maybe something like Fortnite?

I think it would be cool, you know? I wouldn’t do it. But I think it would be really… I would… I would play it if somebody else did it.

Good idea!

Yeah! I mean Battle Royale is just a framework ruleset kind of thing on top of any game. You know… I mean, look at Fortnite. That was not a battle royale game. It turned into one, when they saw PUBG. You know, taking all the money. So you can put it on top of anything. But games that made for it, made specifically for battle royale are the ones that, you know, do better. There’s more battle royale games coming out, that are experimenting with other kinds of gameplay. While you’re playing to get recourses and to do stuff, like, mining. You’re mining for stuff while the circle is closing, and, you know. And people are shooting at you while you’re mining. I need to mine! To get the stuff!

Yeah! Good comparison! What do you think which gaming genres are will prevail in the future?

So far I think all of them. I mean, the only genre that kinda went away was that text based adventures. But there’s still adventure games. There still like… If you look at it, adventures turned into like mystery adventure games, and nothing games are huge. If you pay attention to everywhere that games are being sold, especially mobile, you’ll see that the diversity of games is massive. And like one people thought that adventure whatever was dead forever, you know, dead in the 1990-s or 2000-s – they just need to go on the other side of the… Other side that software rack to see all the adventures and stuff that are being sold to women in their 40-s, that like playing that stuff, you know? So the gaming market is not just 18 to 25 or 35… It’s everywhere.

But now it seems like strategies… Strategy games are not so popular as before. So some genres will disappear I think.

Oh it’s not gonna disappear.


No… There’s a lot of strategy games. I mean, we’re making strategy game because it’s like hot. And, uhm… It is a… There are companies like Paradox Interactive that have their own niche that have extremely hardcore players that love their games for… Because of the way they are made. The information that’s in them, and how hard they are. And they will survive. People love playing Age of Empires Definitive Edition, which was released a few days ago. 

Yeah, I had that idea…

And that’s a game from 199…8? I think?


You know. And that’s a strategy game.

That’s one of my favorite strategies. Yeah.

Yea. That’s not going away. Small RTS I mean. Still Civ (Civilization), you know. All like… There’s all that stuff is still around if they keep on making them.

What is your key to make a successful game? Is using top technology matters here?

Well, it helps. Really good technology helps. But a really amazing game design is why people are playing that.

Game design, yes…

They’re not playing it because of engine. Do you go play a game because it’s made in Unreal? No, you don’t. You play a game because of the design and the idea, and what it looks like, and what it’s about, what you can do in it. That’s all design stuff. 

What are your favorite game development instruments? For now and all career? Best tools to make games.

For just workflow and productivity stuff – Slack is awesome. We use Assembla for doing tickening and stuff. But Jira is really  great. We use Perforce for source control, cause it’s really-really fast. Those are the main things we use in the… For everybody and then on the art side – Photoshop, Maya, you know SyncScetch is a cool tool that they use… The artists use. Shotgun is really great for artwork flow. And on the code side we basically use Unity and we’re using VSCode both Mac and PC to edit code. That’s pretty much it, you know. For design and spreadsheets so we use Google Sheets a lot… We have our tools read from Google Sheets  on the internet and pull data back into the game. 

So that’s basically Google stuff, Google Presentations for all of our design docs and Google Sheets for all of our data, you know? For game… Game… It doesn’t matter if that’s loot drop systems or whatever…

I think everyone wants to know. What is most top to play game according to John Romero?

Hitman 2.

Hitman? Is it…

Hitman 2.

It’s one of my favorite games.


And when have you said about some people who want games harder I thought about Hitman.


Because it’s got it’s small niche of maniacs who wants…

Yepp! All those challenges.

…To make difficulty level to the top.

The mastery and the challenges, and all that stuff.

I love it.

It’s very good!

Yeah-yeah. I passed all Hitmans.



Yeah. I’ve beaten all of the previous ones, but they re-invented it in 2016 they completely… Just created the best design ever.


So I’m looking forward for Ghost Recon: Breakpoint. A lot. And it’s like… I can’t wait. This is going to be amazing. I love Ghost Recon. I love the original one. I wasn’t a fan of GRAW (Примред. Ghost Recon Advanced Warfighter) but I know that this… I played it a little bit in this new one and I just can’t wait. 

You know what, some games today they were a good games, but too complicated to play them just after work.


You’re too bored to understand…

Yeah, you wanna play…

… All the difficult mechanics 

Yeah-yeah. You’re like «Do I have to really get back into it?» But I mean… World of Warcraft is like that too.


There’s a lot of gear, there’s a lot of quests, there’s a lot of personal motivation, like, what do you wanna do in a game. And like, if something – (happens) you have to just really focus on, and if you don’t wanna focus on things like that you play different games that don’t require that. And Indie games are perfect for that, because Indie games are now just a few hours long. Like Firewatch and other sensual stuff. You know, those are like very short term games. And…

And Hitman is also short term.

Yeah! Oh yeah! Especially if you know Hitman and you’re like «I just wanna try that one challenge». No?


You don’t need to beat the whole mission

You can adjust in a few hours. So your top games are Hitman, Ghost Recon and… The third one maybe?

An indie games basically. There are tons of indie games.

Okay, then we’re gonna have a bunch of professional developers as an audience of ours into you.


Please look at the camera and share your inspiration.

Oh, Geez…Well… My inspiration uhm… Pacman was the reason why I got into the games. Because the design of Pacman when it came out in 1980 was just… Unlike everything that was out on the time. Everything in 1980 was «Shoot the Alien», black and white, sound was not exciting. And when Pacman came out it just changed everything. It was just non-violent, runaway, completest design that was just unbelievable, that really showed me that game design is just bottomless. There’s just so much there. So that got me wanting to make games. 

Good advice will also be fine for those who wants to entry game development.

Come up with games that are small and scoped. Don’t try to make anything big at the beginning. Do a small game design and then just try to make the whole thing and finish it. You’ll learn how hard it is to finish, and you’ll keep your scope down after that. 

In russian Wikipedia your name is John Romero. But I’ve read that your first name is Alfonso.

Alfonso, yeah.

So why do you follow the name John?

Because in my house my dad’s name was Alfonso aswell, and so if you said «Al!» we were both be answering, so we decided… My mom decided to call me John, because my dad was already Al. So I known by John.

Okay, so it’s from childhood.

It is, yeah, from childhood. So my mom called me Johnny.

Thank you for the interview! I will be glad to see you again in Russia

Cool! I’ll see you again at TechTrains.

On TechTrain and in our office of Ruvds Team also.


Thank you very much.

Yeah, thanks!

Thank you.

P.S. Last advice from Romero.

The way to keep your bugs really really low in your programming is just to write a few lines of code that functional and then test it. Test it really really well. See if it works. Then write a few more lines of code that do something. And be super-super hyper iterative like that. Just incrementally building your code. Don’t work for half an hour and then test your code. You’ll… Full of bugs. Just write a few lines, and see if it works. That’s how you make super solid code.



11–30 employees