Toolkit indie game developer
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 certain 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 series of questions, namely:
- which engine to use;
- in which program to write code;
- which program to simulate;
- which program to draw;
- what program to write music;
- cost of products;
In this article, I do not want to breed holivar about which product is better and which is worse, each decides for himself what to use. Go!
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.
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.
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 the comparison of 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: yes, undoubtedly, writing code by arranging rectangles and connecting them is convenient, BUT learning a programming language such as C ++ and C # is easy and most often reduces to just learning keywords, syntax and the concept of OOP.
When you start writing any program or game you need to learn the API.of a product, for example, when we are writing a program for Windows, we need functions to load and save the file to disk, the Network API and much more, the game engines all the same, we need to learn the API. So, with a blueprint, you also cannot escape from exploring the Unreal Engine API. Before I started developing games, I wrote programs in C / C ++ and C #, so in unity I was easier, 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.
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 the controls or draw original sprites, then we need a powerful graphics editor.
I think that everyone will agree with me that Photoshop is the market leader for the raster program and until recently it had no alternatives. 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.
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? Perhaps 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 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 there is a free license for you, 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 here:
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 the fingers press the buttons when modeling the next stone or toilet for your project. The choice is yours.
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 a 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 it 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 Raster images 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 harvested 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 some “golden concrete” material, simply transfer it to Unity and hang it on the object. Also for Unity there is a plug-in 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 opportunity to purchase an indie package at a low price on Steam, which includes three programs with support for a year: 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 is time to create sounds and write a cool track for which they will buy your game and turn a blind eye to dull gameplay :)
Now if everything sounds more or less simple, creative enough to snap something into the microphone, then correct the sound of shooting from an alien in Free Audacity mega blaster is ready, then everything is a bit 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.
- Game engine: Unity, Unreal Engine;
- Scripts: Visual Studio, Visual Studio Code, Embedded Tools;
- Raster images: Photoshop, Affinity Designer, Affinity Photo, GIMP;
- 3D modeling: Blender, 3DS Max, MODO, Cinema4D;
- Textures: Quixel, Substance Painter, Substance Designer, Substance B2M;
- Music and sounds: Audacity, FL Studio;
Thank you all, who mastered reading!