📜 ⬆️ ⬇️

Game Designers Learn to Program



When I was 11 years old, our family bought the first computer: AST “Advantage!” With a 486 (66 MHz) processor, 4 MB of RAM and a 32 MB hard drive. It was not the most powerful computer, even in those days, but it was QBasic. I always wanted to make games, so I immediately immersed myself in programming.

I got stuck on QBasic for the next ten years or so, just because I was comfortable with it. I wrote a bunch of shooters, platformers and a lot of weird games. One was called “Kill the Innocent” (you can download it here , but you need DosBox to make it work). The people drawn from the lines walk across the bridge on the screen, the player aims at them with a shotgun and kills. I remember how I encoded a detailed system for smoothly lowering a cylinder hat from a person’s head to the ground, and a very simple physical system that allowed one to juggle a person’s head in the air by shooting at it with a shotgun. (I think it was my unconscious reaction to the cruelty of the video games of that time. I definitely didn’t realize it, just Doom was often launched on my AST Advantage).

image
Kill the Innocent
')
The bottom line is that then I actually did not learn programming. I just used the same ten keywords over and over again. Everything was coded hard, no modularity was even thought of. In other words, I did not learn to program. I had no idea how to “import atlas sprites” or create a Windows application, let alone an iPhone. I just was not a programmer.

My difficulties in learning to write code


At a young age and before the age of thirty I tried again, and again, and again to grow and learn to write on something more modern. I bought the books " Learn [here is the name of the language] ", read the first three chapters in them and gave up.

Why did I give up? In general, it seemed to me too difficult. More specifically, it was especially hard for me to make an effort. Now I understand that programming requires a special type of perseverance, and almost religious belief that "I can find and I will find the answer."

Perhaps partly due to the fact that I am a “humanist”. I didn’t really understand math and science at school, but I had success in music, visual arts, and writing. I think I considered myself a “creative person”, so when a compilation error appeared and I could not fix it one, two, three, four, five times, it was easy for me to think “well, after all, I am not a programmer, and I need programmer to solve the problem. "

In the end, as with everything else, you must first believe that you can do it and you will do it. But to believe is not so easy.

Designer, not a programmer


In the first ten years of my career as a professional game developer, I held significant or leading positions in graphics, writing music, creating sounds, graphic design, web design, writing scripts, game design, and other specialties. In the literal sense, I was engaged in almost all the tasks necessary to create a high-quality game, EXCEPT * for programming .

I thought that if I do everything else, then it is logical if someone else will be engaged in programming. That was my opinion. I sometimes even resented the idea that I not only have to do a dozen other works to create a game, but also program. I need to find someone who fills this gap.

But in fact, I can say that this is logical and quite doable. Let me explain: you can work as a designer and not knowing how to program. I found teams that needed game designers, artists, composers, and held these positions.

I think that if you can do all this, but consider yourself a game designer, then you can’t stop there.

Game designers - real game designers are people who experiment with systems and try to do something within the framework of a set of rules. Technically, the one who creates an ordinary platformer with puzzles or tower defense is of course a game designer, but I’m not talking about such people. If you are doing the “design” of the Flappy Bird clone, then it’s probably good that you don’t program it.

For people like me who are experimenting with new interaction systems, the plan to “find a programmer” is simply impractical, because unlike the Flappy Bird clone, the design of a serious game is difficult to create the first time. Or from the tenth. Or from the hundredth. You need flexibility in implementing an idea that strikes you like lightning at two in the morning. Writing a letter or a task for someone who does not receive a message for a day or two is too long.

You need to personally be in the game testing cycle, constantly improving the system. Adjusting variables, changing the layout - you need to participate in this. Otherwise, you will have the problem of "games by e-mail", when even small changes take a long time.

Do not forget that you have a finite amount of time that you spend on the game, so you need to use it to the maximum. As a designer involved in project programming, it is possible to significantly increase the number of “iteration cycles” that fit into the development timeframe (regardless of the timing of these dates!).

And finally, I realized that when working with a programmer, you need to find a balance between "making the right design decisions" and "making a person think that I do not respect his time." Most often, when I ask the programmer to write something, it later turns out that his work will be thrown into the garbage. It’s one thing to warn people that this could happen, and quite another to tell them “by the way, about the part I asked you to write last week, you had to give it up.” I do not want to be in such a position that I may have even the slightest hesitation in making the right design decision, because it can upset someone.

What about board games?


Board games are a good platform for learning game design, and some designers, if such are their philosophy and goals, can be engaged in the creation of board games all their lives. However, there is an interesting point: despite the fact that there are much more board games with a good design than video games with a good design, board games, like the environment, have certain problems. Many people think that the desktops are bad for obvious reasons , for example, someone does not like step-by-step, others don’t want to learn the rules, or maybe they don’t have enough DLC with cool computer graphics . But these are not real reasons. This is what the board game problems really are:


In general, I consider board games to be an excellent training ground for designers to learn their craft, and I believe that you can make very good games about almost anything. I just think that it’s much harder to make a great desktop than a great video game, and it’s almost impossible to create a great video game.

Become a programmer


Developing Auro: A Monster-Bumping Adventure took us six years . The main reason was that this is an original strategy game, and I wanted to make it right. We could have released the usual and boring Rogue-like back in 2011 if I didn’t want to create something special. Therefore, we tried, and tried, and tried.

But at some point, our programmer had to do another job, so we took a new one. And then another, and another. As a result, by the end of 2013, we were almost “out of programming”, and sometimes it seemed that Auro was at a dead end. Once in such a situation, I did not see any other options - I had to learn to program, or all of our work would have been dust.

This situation, as well as the fact that I became older and more patient, allowed me to get comfortable and learn the code base. As a result, I independently wrote a huge part of the final Auro !

Later, I took an online course on Unity at Udemy , and also read several books on programming templates and similar topics. Obviously, I still have a long way to go, but I have already reached a level where I can at least create prototypes and process them on my own, and this gives me incredible freedom as a game designer.

I still believe that in an ideal world, a designer should have a “lead programmer”, who is really professionally involved in writing code, creating a good structure and maintaining the appearance of order in the code base, especially for a large and complex game.

But now I know that designers like me, aspiring to create new, interesting, deep interaction systems, are simply obliged to learn how to code . You can not rely on others, and you can not rely on paper and cardboard. Do what you need to - pay the teacher, sign up for courses, or just lock yourself in a room with a book. Of course, I'm not saying that you need to become John Carmack and learn to create new engines in assembly language or something like that. You just need to learn how to use tools like Game Maker or Unity to translate the ideas of games into prototypes.

If you are a “creative person,” video games are waiting for you!

Source: https://habr.com/ru/post/323542/


All Articles