📜 ⬆️ ⬇️

A couple of tips for beginners gamedeveloper from novice gamedeveloper

Good afternoon, habrovchane. This article is dedicated to people who are just trying to connect themselves with the development of games or just think about it.

Being annoyed by the complete (almost) lack of any resources with gaming themes, whether youtube channels or blogs in the social. networks, I wanted to share a couple of thoughts that I acquired for such a short pastime in the field of gamedev. Do not misunderstand me, information on the gaming field as such in the Russian-speaking segment of the Internet is full, but rather mediocre quality. With great difficulty, it is possible to find those nuggets that push absolute beginners on any path; everything has to be acquired in the process, which is rather difficult. This article is intended, albeit a bit, but still to highlight the path of gamedev for absolute beginners.

Perhaps, for someone, these thoughts will not be a revelation, my respect. You could also add your thoughts to the comments, I read with interest (after all, I am also a beginner).
I think for those who just thought about getting bogged down in this wonderful industry, game development is something mysterious, especially for those who have never intersected programming. Let's start by considering the question: what is the creation of the game? In short: 10-20% of the time is the development of mechanics (writing code), the rest is content creation. By creating content we mean the visual and musical aspects of the game, as well as creating levels, thinking through the plot (this is, of course, individually), etc. That is, a game is not so much writing code as the idea itself, which you put into your brainchild. From here comes one of the key thoughts: the code is secondary. Without a doubt, it is an integral part of the development of the game, but no matter how good it is, an unprincipled game is nothing more than a dummy.

A bit of auxiliary theory (only for those who, in principle, "not in the subject"):
How to make the square move on the screen? Your screen is the coordinate plane (remember the school), the horizontal is the axis Ox, the vertical is the axis Oy. The square has its coordinates corresponding to its position on the screen, say (4, 2) (x = 4, y = 2). Formally, moving a square is simply changing its coordinates. To move it up (down), we need to add (subtract) a certain number when pressing the corresponding key, which we call the vertical speed of movement, to its second coordinate, that is, y. In this way we will raise and lower the square. With horizontal movement, everything is the same, adding (weaning) a number when pressing the corresponding key, which we call horizontal speed, to the first coordinate, that is, x. Congratulations, you move the box on the screen! It's pretty simple. But when creating more complex things, you will, accordingly, need more advanced knowledge of mathematics.
')
I will try to answer a rather popular question: which game engine should I choose? And at the same time I will connect it with the first council:


I put quite a wide sense in this sentence. But first you should decide on the technological component of your game: 2D or 3D? By answering this rather simple question, you will dramatically simplify your life by choosing the vector of game development. Personally, I am developing a pixel art style 2D game, so I chose Game Maker Studio 2 as the engine. In my opinion, this is the best representative for 2D game development. As an engine for 3D projects, I can advise everyone already known Unity. I think this pair is ideal for novice developers, since they are easy to learn about their other counterparts and at the same time have the most powerful tools for developing the corresponding games.

Why did I give such attention to this, and not, for example, to the genre? Here I smoothly lead to the second tip:


At this stage, you are like a junior pupil who seeks to find the roots of some quadratic equation, but at the same time you do not even know how to reduce the fraction to a common denominator. Aspiration is worthy of praise, but at the moment you need to deal with vital foundations. Copy simple toys, experiment, trite "fill your hand." Any game you have collected, whatever it may be, is a valuable experience for you. Making the square move on the screen is already good. Try to constantly sculpt something on your own, in parallel acquiring new skills. Do not try to absorb the theory maximum from the very beginning, and then get down to business - start right now. Having absorbed a ton of information, you most likely will not know what to do with it and where to start (I have already experienced this). Naked information, not fixed practice, does not represent anything. A bit of everything, and after a short period of time, you will feel like a fish in water. At some point, with an understanding of the game development process, you will understand what kind of game you would like to create. This moment will be the starting point, since your activity will be conscious, and not a simple step in total darkness.

A small remark about the code - learn to write code (unexpectedly, isn't it?). Do not be afraid and imagine that writing code like magic requires special skills and the like - no. Here is an example of Game Maker Language code:

///@param direction var _direction = argument0; //   direction_facing_ = round(_direction/90); //  90      round() //: round(4.5)  5, round(4.45)  4. if(direction_facing_ == 4) { //     direction_facing_ = 0; } 

Something like the code of one of the scripts in my project. Let's try to figure out what's going on here. This script determines the direction of the "look" of the object in the game (equivalent to how you look right or left). As an argument, it takes a degree measure of the "direction of sight" and writes it into the local variable _direction. After we divide - so we fragment an imaginary trigonometric circle into four pieces - four directions - the recorded value by 90 (degrees), round off (the round () function) and write to the direction_facing_ variable. Each direction has its own number: 0 - right, 1 - top, 2 - left, 3 - bottom. It may be such a situation that the angle will be more than 215 degrees, which is why the number 4 is written in direction_facing_, but this situation does not suit us, because 4 in our case is equivalent to 0.



We solve this problem with the help of the if operator: if direction_facing_ is 4, then we write 0. It is done! A drop of math and a small amount of code, no magic. What is this for? This code is useful for understanding what kind of animation to draw during movement (running to the right, running upwards, etc.).



Primitive, but useful. For absolute beginners, writing code will be quite difficult at first, but only at first. Practice is your best friend. After a short period of time, you can easily write your own code, the main thing is to just start.

“Smoothly” we proceed to the following recommendation - a drop of cap:


This is indeed a simple truth, but many still neglect it. The word “regular” does not mean “every day,” but the time frame is still worth setting. Develop at least a few hours a week. Creating a game alone, you have to keep a huge amount of things in your head. Returning to your project after a long period of time, it is extremely difficult to recall all the details, which will greatly harm the process. In any case, you need to keep yourself in good shape in order to make some progress. But do not forget about the rest. If you devote all your time to game development, you will most likely just burn out and are unlikely to do it with the same enthusiasm as before. I, for example, in order to distract myself, draw pictures in pixel art style, quite an exciting activity and at the same time useful (below is one of the examples of my work).



Many will have a reasonable question: where to get the necessary material for this business? How to start learning? The simplest answer is guides on youtube, of which there are countless. And it's all? In general, yes, but in part. After some time, when you minimally master the development environment you have chosen, the need for direct instructions will disappear, since you will already be able to correctly formulate the question you are interested in (here google and forums will become your siblings). Naturally, bare technical information will not be enough to fully understand the process and to easily navigate in the field of game dev. Therefore, the following recommendation:


Read the development history, follow the novice developers, read blogs, articles on the game theme, etc. Now I will make one extremely useful remark - use English-language resources. Information from English-speaking sources is much better than Russian analogues. In any case, it can be easily found, in contrast to the Russian-speaking segment of the Internet. I personally use a ton of game development channels on youtube. The guys tell us how to create this or that thing, share their experiences, in general, Pandora’s box for us. Perhaps you will disagree with me about the quality and quantity of game (specifically, development) content on the “Russian Internet” - I ask you in the comments with links to relevant topics, it will be extremely useful for everyone. At the end of the article I will leave a small list of resources that I use at the moment.

And finally, the last:


I say this to the same dreamers (in a good way), just like me. People who want to connect their lives in the future with the field of game development. From the very beginning it will be quite difficult, not clear, but this is more than normal. Just do it, and the result will not take long.

I hope this article was helpful to you. Perhaps you also have something to add, waiting for you in the comments.

Useful links for my colleagues:


I also advise you to follow some of the guys on Twitter, there are a lot of interesting and useful things there.

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


All Articles