What should future game developers consider? Which language should I start with? Why strive? On whom to equal? And what needs to be done first?
Most fans of rock music sooner or later take up the guitar. Fans of sports passionately dream of reaching a football field, a basketball court or a tennis court. Well, those who committed hundreds of hijackings in the GTA, spent dozens of hours in computer clubs for Counter-Strike or achieved considerable success in the MMORPG, for sure think about the career of the game developer.
The problem is that this direction is taught in a few schools. Therefore, most game developers are self-taught, who once compiled the curriculum themselves. But what nuances did they take into account? Where did you start and what did you aim for? What language was taught in the first place? We tried to answer these and other urgent questions.
Why strive?
Before going to the store you make a shopping list (at least in your head). Before the trip to the other end of the city - lay the route. Well, before learning how to develop games, it is advisable to ask: what exactly do you want to do? Create mobile applications or browser games? Work in a large company or a small one? Professionally engage in the development of games or devote this free time from work? And if the first, what interests you more: creating an interface, grinding gameplay or writing scripts?
Properly setting goals can save you a lot of time and energy. In addition, it will make it possible to reach the final destination in the shortest possible way. Without the risk to get off the road or get into the swamp.
What language to teach?
In addition, the answer to the burning question depends on the goal: from what programming language is it worth starting?
So, future game developers like Minecraft and mobile applications for Android should pay close attention to Java. Those who look in the direction of iOS - on Objective-C. For browser-based games, Ruby-On-Rails knowledge is sometimes enough. For very small and simple at times, enough HTML. In the production of Flash-games, ActionScript is used, and for writing scripts of any complexity you will need JavaScript or, perhaps, not so common Lua. To create the same small console games you need knowledge of C #.
As for the largest budget games (the so-called AAA class), most of them are equipped with their own or borrowed from their colleagues "engine". Quite often, however, the whole "engine" or most of it is written in C ++. It was this language that was used to create many famous "toys" - from Doom 3 and Call Of Duty to FIFA and The Sims. While a classic like Quake was written in C.
However, in the development of C ++ there is also a snag - excessive complexity. No wonder they say that taking on C ++ without knowing other languages is like starting a study of mathematics with linear equations.
Is there enough one language?
One of the delights of programming is the possibility of constant self-development. In the development of games (especially large ones), self-improvement, including the study of as many languages as possible, is not a whim, but a vital necessity. So, experienced developers, working for the giants of the gaming industry, often face the need to alternately write in 7-8 languages. Moreover, in addition to the above languages, they have to study, for example, Python or even SQL (as you understand, to create databases).
Therefore, if you decide to link fate with the production of major games, be ready to become a "polyglot". In addition, the more languages you master, the more interesting and diverse tasks will be put before you. And, of course, the chances of getting a dream job will increase significantly.
WHERE TO BEGIN?
Before you make a round-the-world trip, you need to learn how to walk. Well, before a serious game project you need to try the forces in something less significant.
Almost all experienced developers, regardless of their regalia and talent, began with small applications: table games, variations of known "toys", simple "flash drives". Then they did not think about major exhibitions like E3, but accumulated invaluable experience. Why not follow their example? It is not necessary to write the code. For debut, it's enough to use special programs to create games (for example, Game Maker). After all, even with a simple toolkit you will greatly facilitate your life. First, in miniature, you will understand the logic and structure of almost any gaming application. Secondly, you will fill the cones that will heal during the transition to serious projects. Finally, thirdly, enrich the portfolio. After all, even a simple "toy" requires a lot of time, patience and creativity for inventing the concept, writing code and eliminating bugs. In addition, it shows that with the production of games you are familiar not only in dry theory.
What should I take as a landmark?
Anyone who dreams of becoming a writer will read hundreds of books before writing at least one word. Masters of playing the piano to the teeth know the best works of Strauss, Chopin and Beethoven. Well-known artists before major exhibitions memorized the history of art by heart.
In the development of games the same principle applies. You can not develop in a vacuum. Therefore, play, be inspired by masters and, like a sponge, absorb the best. At the same time, try to look at applications not with the eyes of "gamers", but with the eyes of the developer. In other words: transpose the game. Think about why at this point in time the "bot" ran to the left, and not backwards? Because of what factors is the strength and accuracy of the impact in the sports simulator changing? How to create a "fatigue effect" with a long running character? How to make sure that during the rain the player heard the sound of drops, and not a squeal of squeals? In general, get to the core. Try to recreate in your head the algorithms that you encounter during the game. Believe me, such a constructive approach will help you in the future hard, but devilishly exciting career of game developers.