Don’t be afraid to learn.
Learning is what you will spend the most of your professional life doing. If you want to be a game developer, you must embrace the knowledge that you simply need to have, in order to successfully make a good and successful game.
Then, technology is bound to change and new kids will come with shiny new toys. You will have to learn how to use those if you want to survive in this industry.
Even if you're on the right track, you'll get run over if you just sit there.
My story - The short version
I want to tell you a story of my journey up to this point with hope that you will see a pattern in it that enabled me to do stuff that I love doing.
I am currently 25 years old. I have been coding for the past 15 years. I have been doing it professionally for the last 5 years. My code earns me money. Because of my coding skills, I can put bread on my table.
I had a classical coder’s journey. I really wanted to make games since I was really young. I started out with Logo, then I switched to Pascal. After that, I did two games using Game Maker.
Then I had a short pause, but got back into coding and game development and started learning Flash. I did Flash for 4 years. I have successfully developed and published over 30 flash games with it, and later got a job as a Flash developer where I made some more games and cool apps, which got my portfolio boosted for another 10-ish projects. My games were played by 10’s of millions of players.
I did some multiplayer games using Player.IO, now called Yahoo Games, in the process. One of those was called Minimen Live - a free to play Worms style shooter for up to 8 players controlling up to 6 soldier armies. It took over a year of part time work to build and it failed miserably in terms of earnings and plays. But, while I was doing it, I learned C#, since the server side was coded in it.
Some of the flash games I have worked on.
I also learned that multiplayer is something not to be taken on lightly, and even with a turn based game it was a world of pain to code. But it worked out, even though it wasn’t as successful as we hoped it will be.
Around that time, Flash started wearing off, new tech was coming that was better and cross platform, like HTML5. Maybe not better, but started being what you would call mainstream and clients wanted it, because everyone wanted to do mobile. So I made a couple of games in HTML5.
Afterwards, I really didn’t want to do any more casual games, so I switched to Unity. My goal, from the start, which was - at that moment, 15 years ago, was to make a good hardcore game that people will play.
That’s when I founded Fearem Games, and started work on a project that I always wanted to do.
I also took on another multiplayer project, this time in Unity combined with Smartfox Server. I learned Java, because the project demanded that.
Two months ago, a job opportunity came up, and it involved Objective-C - it was an iOS Developer position. At this moment, I have an almost done app ready to be shipped to the client, and a good job with a steady salary which can finance my game development efforts.
I wasn’t afraid to learn new technologies, and broaden my skillset. You shouldn’t be either.
I learned about project management, business, team management, marketing and much more in the last five years. I learned about dealing with both success and failure. I learned to value my teammates, and that “do it yourself” approach is sometimes very wrong. I learned to invest time and money, and learned how it feels to lose both.
I learned. Don’t be afraid.
Couple of things you might need to learn about if you want to be a game developer.
Embrace the change
Change isn’t necessarily good, but it can be very fun if you don’t fear it. It forces you to work hard, adapt and learn. If you don’t, you will fail eventually.
Our industry is constantly changing and you need to keep moving forward and stay in the loop.
Unity, for example, is a really cool and useful tool now, but it might not last forever. 5 years from now there might be a new kid in town, and you need to be able to recognize if its the right one to hang out with.
In order to be able to do that, you need to have insight in things. You don’t have to be an expert in using some technology in order to see its advantages and disadvantages.
Take a weekend off next week and try a new technology. Try CryEngine. Try UE4. Try to make a mini game in HTML5.
5 years from now, you might not even be in charge of coding. You might be in charge of finding a technology to use for your new project, and hiring a programmer that can do it. You need to be able to do that, or at least be able to recognize someone who can do it.
When you need more, learn more
You become a good runner if you run a lot. You become a good mathematician if you do a lot of math. You become a good coder by writing lots and lots of lines of code.
Be good enough to achieve your goal. It might be finishing up a mini game, or doing an iOS app. You will be better in time if you just keep an open mind.
Don’t chew more than you can swallow at a time. After a couple of hundreds of thousands of lines of code written in a specific technology you will become an expert, and you still won’t know all of it.
It’s immense, the amount of things you can learn, and you must not allow yourself to get devoured by it.
Start small. Don’t do an MMO first. Do an avoider or a runner game in a technology that you choose. I did it so many times up until now that I am certain that I can probably recite the code needed for a mini game like that by heart.
Technology is the means to an end
Technology doesn’t really matter, but it still kind of does. It’s here to help you. What we have done in a month using Unity, working on Burden, would had taken us 2 or more years of work some time ago and by using some other technologies that were available back in the day.
Unity enabled us to make a good looking prototype for Burden in less than a month.
Each technology has its advantages and disadvantages and each one has at least one major tricky pain to deal with, and you will probably acquire a new mindset while doing it.
Depending on your starting point, you might find some of these more natural, or completely unnatural to your workflow and habits. But each change will be a lesson well learned eventually, so don’t be afraid and start learning.
Secure your future
Most of the hardcore indies will probably hate me for this paragraph, but - If you keep in the loop, and you know how to code, you will have an easy time finding a job while you develop your own games. Being indie is cool and everything, but sooner or later everybody has to get money somewhere in order to, well, live.
You owe it to yourself to take advantage of your talent and knowledge of coding and earn money through it, instead of working a crappy job and barely being able to pay the bills.
In most parts of the world, being a coder is a cool, well respected and well payed job. Making games as an indie might be what it’s all about for you and me, but waiting for your big break can be a long and, for some, everlasting process. You gotta live of something during that time.
It’s like being a great athlete. You can invest everything in your talent and passion, and never really get your big break. I guess there are many awesome athletes like that doing menial jobs and struggling for survival right now just because they didn’t have a plan B.
It doesn’t have to be like that for you and me. An athlete might not be able to do anything else for a living other than being a professional athlete with his skillset, but there are so many things that we can do.
We can create. We can build things. We can code.
Keep adapting, learn, broaden your skillset. Your big moment can come 20 years from now, and instead of being poor and unhappy during that time, you can simply use the skillset you have and have a great life and a great job. You just have to keep track of what is going on and invest the time you have in yourself and your knowledge.
Learners are the ones who will inherit the world
In the end, I would like to share one of the greatest quotes I know of. I stumbled upon it while I was watching Wilson Miner’s When We Build lecture:
At the times of change, the learners are the ones that will inherit the world, while the knowers will be beautifully prepared for a world which no longer exists.
Don’t be afraid.