📜 ⬆️ ⬇️

Toolkit indie game developer

Good day, novice igrodely!

An indie game developer, this is a universal soldier who has to do everything: write code, draw pictures, sculpt 3D models, then make textures for them and much more. For each task you need a specific tool, and even free if possible, since the beginner igrodel has a modest budget. About what programs helped me to speed up the workflow, I will tell under the cat.


Warning: this post is not advertising, this is just a list of programs that help me in my projects.

When I thought about the development of the game, I faced a number of questions, namely:


In this article, I do not want to breed holivar about which product is better and which is worse; everyone decides for himself what to use. Go!
')

Game engine




For any game you need a game engine. The game engine is the heart of our game, in it we concentrate all our ideas, work through the logic of the game and the interaction of game objects, therefore, the speed of development depends on the convenience of the game engine.

The game engine market is filled with a variety of options. There are engines that are designed only for 2D games, and there are which are only for 3D, but in my opinion Unity and Unreal Engine are considered more versatile options. They have all the tools to perform the workflow, they also have their advantages and disadvantages. I tried both products, but for the current project I chose Unity. Maybe in the future I will try to do something on the Unreal Engine. What engine you need, the choice is yours.

Scripts





For each game, it is necessary to write the logic of interaction between objects such as controlling a player’s character, talking to an NPC, shooting a weapon, opening a chest, etc. Each game engine has built-in tools for describing the logic of objects (writing scripts).
In the Unreal Engine, two tools can be used to describe logic, such as blueprint and C ++. The blueprint editor is built into the Unreal Engine, just open it and start arranging and connecting the nodes. I don’t know about the built-in editor for C ++, didn’t look, write in the comments how the Unreal Engine does with the built-in C ++ editor.

In Unity, all logic is described by a C # script (up to 2017.2.x mine version, JavaScript could be used, but now it was cut out and only C # was left), the built-in editor MonoDevelop is used for this purpose, but even in recent versions of Unity, this editor has a number of inconveniences and glitches , but for writing small scripts, it is suitable.

You can also use an external editor such as Visual Studio to write scripts. VS Community is free, has powerful IntelliSense and is very well compatible with both Unreal Engine and Unity. Microsoft recently released a lightweight version of Visual Studio called Visual Studio Code. VSCode also integrates well with Unity, but having tried to write code in it, I had to constantly configure it for myself, this is a plus and a minus, therefore, since I have been using the older version of VS, I have been used to it for about 10 years. The choice is yours.

In addition, I will allow myself to retreat from the topic and talk a little about comparing Unity and the Unreal Engine. When I read posts and watch videos that compare Unity and UE, many people put bold plus UE for the opportunity to write a visual code using Blueprint without knowledge of a programming language. My thoughts on this are: yes, undoubtedly, writing code by arranging rectangles and connecting them is convenient, BUT learning a programming language such as C ++ and C # is not difficult and often reduces to just learning keywords, syntax, and the concept of OOP.

When you start writing any program or game, you need to study the API of a particular product, for example, when we write a program for Windows, we need functions to load and save the file to disk, the Network API and much more, with the game engines everything is the same , need to learn API. So with a blueprint, you also can’t escape from exploring the Unreal Engine API. Before I started developing games, I wrote programs in C / C ++ and C #, so it was easier for me in unity, but when I decided to try the blueprint for me it was a real search quest in the documentation for the right nodes. And the names of keywords are different from the standard programming language, for example: in C / C ++ / C #, branching is performed using “if () else” and in the blueprint the node is called “Branch”, it is logical but not usual. Realizing that it would take me some time to study the UE API, I postponed this venture and returned to Unity. Perhaps newcomers will most likely find it easier to learn UE.

Raster images




Well, it's time to arrange the user interface, expand the buttons and input fields, you also need a good picture to the background of the boot screen, and if it's a 2D game, then you also need a set of sprites for characters and levels. Of course, for prototyping the user interface, a standard set of controls built into the engine is suitable, and paint.net is suitable for drawing the simplest sprites, but if we want to customize controls or draw original sprites, then we need a powerful graphics editor.

I think everyone will agree with me that Photoshop is the market leader for the raster program and until recently there were no alternatives for it. Having rummaged in a world wide web I have come across Affinity Photo and Affinity Designer. Affinity Photo is an analogue of Photoshop but with a well-developed interface, I haven’t really figured out with it yet, so I can’t talk about its strengths, but Affinity Designer is quite a powerful and intuitive vector editor. After watching a couple of official videos, I was able to draw a logo for my program, buttons and sprites for the game.

One more important advantage of Affinity programs over Adobe is the low price and one-time payment without a monthly subscription, bought and used.
There is also a free analogue of Photoshop, GIMP, but it did not come to me, it was too much a messy interface, but for some it is the best option. The choice is yours.

By the way! All pictures for this post are made by me in Affinity Designer.

3D modeling




No 3D game can do without 3D models. We need: characters, NPCs, weapons for them, houses, closed corridors, trees, objects of the environment and even trash. But how to do it all? Maybe many will immediately think, download 3DS Max and lepi as much as you like, and perhaps they will be right. 3DS Max and Maya are powerful 3D modeling tools. With the help of them made a lot of beautiful games and movies. But we are indie developers and we don’t have so much money, and if you look at the subscription page, when you see the price, you will immediately look for alternatives to them. Of course, if you are a student, then you have a free license, but what to do if you are an ordinary person who works for an “uncle” and decided to try himself in game development with a view to getting cashback for it in the future? There are cheaper options: MODO and Cinema4D they also have everything for the workflow, but they also bite the price tag, but more elevating than Autodesk.

In my opinion, the best choice for an indie developer is Blender! I use Blender on an ongoing basis and it has everything to create game models: polygonal modeling, modeling of high-poly models ala zBrush, retopology, UV scanning, drawing on a model, rigging, animation, baking textures on a model, and many useful buns. However, when I first opened Blender, I didn’t understand how to use it, I had to watch training videos and read books, since the community is huge and you can find a tutorial for every little thing, after that fingers themselves press buttons when modeling another stone or toilet for your project. The choice is yours.

Textures




So! You dazzled the cool models, made the UV scan, animated, but the model turned out to be all gray, and I want the character to have eyes and mouth, and buttons on the shirt. Of course, Blender has a built-in drawing editor for the model, but it is only suitable for simple models that do not require good detail. Usually they do this in LowPoly style, fill the edges with the desired color and that's it, the model is ready.

But what if you need to make a high-quality texture, and even with a normal map, a shading map, a reflection map, etc. Again, this can be done in a blender, but it is not very convenient. I had to google the necessary programs for a long time and found two options namely Quixel and Substance Painter. Quixel is a powerful tool for creating textures, but it comes as a plug-in for Photoshop and if you, in the Bitmaps section of this article, chose Photoshop as the main tool for creating sprites for your game, then this option is for you, but I personally chose the Substance package.

Substance Painter comes as a separate program in which you can craft high-quality texture maps for your character by drawing materials directly on the model. In the package with the program comes a huge amount of procured materials such as stone, wood, metal, leather, plastic. Any material can be changed and customized according to your desire, as well as to make a combination of materials for example: paint the barrel with paint, make scuffs and rust protrusions. But if there are not enough materials or you need to create your original material, then the second Substance Designer program will come to the rescue in which you can create a masterpiece with the help of a node system. A very good bun of these programs is that these programs are perfectly integrated into Unity and the Unreal Engine. Having created the material of some “golden concrete”, simply transfer it to Unity and hang it on the object. Also for Unity there is a plugin with which you can see all the changes on the model in the game engine with customized lighting when drawing on a model in Substance Painter.

And yet, the most important benefit of Substance is the ability to purchase an indie package at a low price that includes three programs with support for a year at once: BitmapToMaterial, Substance Painter, Substance Designer. BitmapToMaterial allows you to create multiple texture maps from a regular raster texture.

However, the choice is yours!

Music and sounds





Well, you did everything, painted the sprites, made 3D models, painted them, wrote the logic for the game, clicked to play and .... silence! Everything works, but not a single sound, shooting from a machine gun in vacuum, can not hear anything. It's time to create sounds and write a cool track for which they will buy your game and turn a blind eye to the dull gameplay :)

Now, if with sounds it’s still more or less simple, creative enough to click something into the microphone, then you can fix it in free Audacity and the sound of shooting from an alien mega blaster is ready, then everything is a little more complicated with music. If there is a rumor and a desire to write your own track, FL Studio will be a good choice. The price of FL Studio is certainly not small, but real. You can of course use free music which is completely full on the net. And as always, the choice is yours!

A short list of programs used in this article.



Thank you all, who mastered reading!

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


All Articles