WeAreDevelopers: The Ultimate Conference Recap!

The WeAreDevelopers conference is a developer-focused event that took place in Vienna, from May 16th to May 18th, 2018. It was a tremendous gathering that made me think about something quite peculiar: the event isn’t really about programming.

Have you ever heard the expression “traveling is the only thing you buy that makes you richer”?

Well, I guess that’s not the only thing! Attending a programming conference is another thing you can buy that makes you richer. And if you attend one in another country? It’s even better.

When I hopped on the plane to Austria, I was thrilled. This was going to be an exciting conference. I remember thinking about how much I would learn about programming. However, when I returned to Lisbon, I brought back the same level of programming expertise I had left with.

Why? Because WeAreDevelopers wasn’t really about programming: it was about ideas. The interesting thing? We can learn how to write code and – if we don’t practice – we’ll eventually forget it. But an idea? If strong enough, an idea can stay with us throughout our whole lives. Ideas build civilizations, and WeAreDevelopers was all about sharing ideas.  

There were several speakers who were able to talk about remarkable new methods and promising developments. Nonetheless, I will focus on the talk of John Romero: “DOOM’s Development: A Year of Madness.”

My first interaction with John Romero started way before I had ever heard his name. Indeed, I was 12 years old. I had just finished installing a game called DOOM. DOOM was one of the games – if not THE game – that created a groundbreaking revolution in the world of gaming and computers. DOOM gave rise to 3D gaming, client/server online play, the most prolific mod scene in history, multiplayer clans, the first LAN meeting, server browsers, eSports, mouse-look as a PC control standard, Valve, and dozens of other companies.

You get the point. Basically, it’s safe to say that the current impact games have on the creation of new and improved hardware might have originated with the DOOM phenomenon.

And that’s what this talk was about, or was it? As I’ve mentioned before, my first interaction with John Romero happened when I was 12. Even so, when I later found out about who he was, I started doing some research. I watched his talks and tried to understand his ideas. At WeAreDevelopers, he talked about the year of the development of DOOM and the early days of id software, a company John founded with his friends.

John talked about how – in 1993 – he and his colleagues moved their company to another city and started working on the DOOM game, after having recently finished making Wolfenstein 3D. Carmack, one of the company’s founders, bought the new NEXT computer – built by Steve Jobs – to help develop the game. The computer allowed for objective-c language. In addition, programming was way easier than it had been with DOS programming.

They wanted to develop a game and use only one computer to perform tests. Moreover, according to John Romero, on the first day of development, they launched a press release that explained that they would create the game using the most advanced technology available.

What? Let’s stop for a while and think about the meaning of all this. Four friends in their early twenties wanted to develop the best game ever made taking advantage of the most advanced technology available at the time, using only one good computer? Yes, indeed. And they did it.

This is one of those things we just don’t get to see anymore. Despite being totally reckless, this shows how committed these people were to their project. In my opinion, being focused and motivated are the two most important things you need when starting a new project.

John Romero talked about the most difficult obstacles the team had to deal with during this project and also gave the audience a few tips that can help us all overcome some challenges of our own. For example, when starting a new game, you should never reuse code you’ve previously written. Why? Because today you are smarter than you were when you wrote that code. That means you’ll probably do a better job now than when you wrote that old code.

Another piece of advice given by John Romero? When you find a new bug, you should stop everything you’re doing until you fix it. What happens if you don’t? You’ll be writing code on top of bad code, which probably leads to more problems in the future.

Another interesting fact about DOOM? When the team made a new structure to store all the DOOM files, they called it .wad files (Where All Data is). Even nowadays, these types of files are still regularly used by several top companies. Impressive, right?

There was a tremendous obstacle to overcome in the development of DOOM: creating the map layout. No matter what they tried, they always ended up with the same old 90º degrees walled maze structure, which was how every single 3D game had been done before.

Today, it seems like an easy problem to solve. Even so – in 1993 – these guys had limited technology, which means they had to think outside the box and reinvent the wheel. How? They learned about how military bunkers were designed and started from there.

After some time, they came up with 3D buildings with halls and stairs. This new map design led to several problems in the game engine. Even so, the new map design was so good that they decided to fix the problems and remake part of the game engine.

John said they had to drop a lot of work and ideas in the process of developing the game. Tom Hall, one of the members, had to drop a whole month of development, just because an idea had changed.

This is one of the most common issues faced by developers, even today. Engineering is an iterative process: we do it one way, drop it, and try doing it another way. Over and over again, countless times. The main thing we must bear in mind is that – when all is said and done – the ultimate solution can only be created because of all the other solutions dropped along the way. This process can be quite frustrating. Tom Hall even decided to leave the group, 8 months after the beginning of the whole process.

Before DOOM, John’s team had made Wolfenstein 3D. It was supposed to be ported to Nintendo. That’s why the team decided to give it to another company before starting the development on DOOM.

Nine months later, the other company wasn’t able to perform the port. The team had to put DOOM on hold, and perform the port themselves. The problem? They had no experience whatsoever with Nintendo. This means they had to learn about the hardware, the architecture, and they also had to reprogram the entire game, including the graphics. It took them 3 weeks, a surprisingly short amount of time! This shows just how committed they were to their projects, and how much they wanted to go back to the development of the promising DOOM.

After a year of development, they finally released the game. They had to upload the game to the FTP server three times. Why? The server crashed two times since gamers were dying to upload the game.

At the end of his talk, John Romero talked about the best way to start developing a project: “You just go home and start right now. There is no reason why you can’t do that”.

The truth is that there is plenty of information available. Most solutions to problems are available online which means that starting a new project is just a matter of motivation.

This is it. This truly was the most valuable lesson learned at the WeAreDevelopers conference. I will use the motivation I’ve gained and the new concepts/ideas I learned to improve my work on different projects because it’s not about programming: it’s about coding a better future.

Author: Francisco Filipe