Spanish version here.
Hi again! Long time no see! Sorry I was dieing months ago, but recovered well and online again. Old developers never die.
In this post I am going to talk about a recurring theme in the world of video game programming: choosing the color of the Ferrari when you upload your game to Steam and earn millions of dollars. Because that’s what it’s all about, isn’t it?
No. There are many dreams, and many dreamers, who see an indie game succeed, and believe that they can repeat that feat. It’s not that it’s impossible. But you only have to look at how many games are published on Steam each day, and how many earn to at least break even, to understand that this world is no wonder. Nor is it the nightmare that some claim. It is, like everything else, a matter of knowledge, work, and a bit of luck. And a godfather full of money if possible. But that rarely happens.
Note: I will focus mainly on programming, which is what I know, but let’s not forget that a game is much more than code.
Note 2: I have been a professional programmer for fifty years in banking and insurance companies, and I program video games as a hobby and with great enthusiasm since the 8-bit era in the eighties. However, I am also involved in some professional video game projects for the medical and education sector.
Gone are the days when programming video games was a very complex task and suitable only for very professional programmers. Tools like Unity or Unreal have democratized video game programming, and there are thousands of tutorials so that any fan can take their first steps and create their first prototype of a video game. Give it a slightly more elaborate look, a few finishing touches, and then, for just a hundred dollars, upload it to Steam, to start making a few million. What color did I buy the Ferrari?
The reality, as is so often the case, is much harsher and more complex. Democratizing video game programming, and facilitating development through very powerful tools, does not at all mean that better games will be created. The same thing happens with music; we have today great music composition applications, and impressive synthesizers and sequencers, that allow us to create all kinds of music with absolutely incredible quality. But that doesn’t mean we’re going to compose Beethoven’s ninth symphony, or the best piece by the best rock group. And with Amazon we can publish very easily, but that does not mean that we are going to become a new Shakespeare. I’m telling you, I’ve published forty novels, stories and essays, I’m not exaggerating, forty, and I only have enough for a coffee with milk and little else.
The human factor for success continues to be decisive. In this sense, there is a lot of talk about artificial intelligence and other technologies, but make no mistake: the creation is human. And, when a software creates something, there is a human being behind it, so ultimately what an AI creates is created by a human being as well.
I don’t know Unreal, I’ve only done some tests. But I know Unity very well, with which I have been working since 2014. And I can say that it is a great tool, which has transformed in an incredible way in these years. But it has always retained one fundamental characteristic: prototyping simple games is extremely easy. A few objects, a few lines of code, and you have something that begins to look like a video game. As I say, there are dozens of tutorials on the Internet that demonstrate it.
The problem is going from a prototype to a game. Many people believe that Unity will work its magic, as it has with the prototype, and they will be able to have an amazing game in no time. That is completely false. Creating a quality game requires a lot of work, and giving it the necessary features so that players do not abandon it after ten minutes.
I also see many people who, without having a clue about programming, want to launch into creating their first video game. Can anyone imagine a person wanting to build a bridge without engineering knowledge? Or someone else trying to develop a new physical theory with no knowledge of mathematics? Developing video games requires intermediate and advanced programming knowledge, and programming is a science, and also an art, that requires great effort and a lot of work. In the case of Unity, C# is used, but whatever the programming language, the important thing is to understand what a program is, understand how to program, and know the details of object-oriented programming.
Steam is very permissive in that regard, with many novice developers uploading games of very questionable quality, and Steam is flooded with mediocre games. However, high-level games are also uploaded, but those who develop them do not have the tools or the knowledge of marketing and advertising, nor the money, to publicize their work. Because that’s another topic: you can be a great programmer, but selling is not programming, and uploading a great game to Steam is no guarantee of anything. Yes, there are games that succeed with few resources, but compare those successes with the hundreds of games that are uploaded every month, and end up being forgotten after a few days or weeks.
And now, an observation: what studies are required to be a video game developer? If we look at the professionals, we will see that there is everything. Many have educated themselves, but had at least some basic knowledge of technology and science. Studying a computer science degree is logically a great idea, but a degree in engineering, physics or mathematics will also be very useful. Some have not studied any career, but have worked very hard and have been trained through years of hard work, which can amount to a personalized career.
In any case, the failure rate is enormous, and many are encouraged to create video games, but very few end up creating something beyond an advanced tutorial. Of course, success is exclusive to a few. There is nothing unusual about this; it is the same that happens with music or literature. Many will be called, but few will be chosen.
So, if you like this world of video game programming, go ahead. It is hard work, often frustrating, and almost always physically and mentally exhausting. But it also gives satisfaction, when you see that you have managed to overcome that bug that seemed to be eternal. Then five more bugs will appear, but that is part of this work. You have to accept it, or dedicate yourself to something else.
Finally, I do not want, with this text, to discourage anyone. I just want to be realistic, and explain that this world is harder than it may seem, and not everyone is going to be able to endure the entire process of developing a video game of a minimum acceptable quality.
But, if you don’t do it for money, if you do it to have fun, to entertain yourself, to learn, to develop your creativity, then, without a doubt, you have a path ahead of you. And maybe, one day, all this will allow you to have a salary, and dedicate yourself to it professionally.
So start little by little, without great expectations, and with great enthusiasm. Who knows what the future holds for you. It will not be a Ferrari, but maybe other things, many of them non-material. That, after all, they also end up being important in life. Happy lines of code.