Over the past 30 years, platform games have evolved into art. Game developers’ salaries compete with those of enterprise developers. But the barrier to entry into the profession is higher for the former. If you have been thinking about developing your own game, desire alone is not enough. Or enough if you use the game development services at Fondlygames.
We explain the technical aspects that game creators should understand.
What to learn besides the language
A game developer is first and foremost an engineer. In addition to programming, he must know mathematics and physics. All games to varying degrees reflect the objects of the real world, and their interaction is subject to laws. For example, in order to program simple ball bounce physics, you need to understand what a recovery factor is. The development language is less important – you can write a game in any language.
Also, the developer must pay attention to optimization and performance. Keep in mind that the game can run on a system with requirements that are far from recommended. A good understanding of algorithms and accounting for system resources is a priority. For example, when working in the free game engine Unreal Engine, you need to take into account that when the module starts, all its dependencies are loaded and eat up resources. The game must maintain a stable framerate.
The development of mobile games is complicated by the variety of OS versions. You also need to understand how users interact with devices. For example, on smartphones, there are areas that are inconvenient to touch with your thumb. At the same time, the development of casual games is easier because the player’s requirements for the product are lower.
Code or visual programming
There are many more tools available to game developers today than they were 20-30 years ago. While John Carmack himself wrote his own game engine for Wolfenstein, the commercially successful Super Hot was developed on the free Unity Engine.
Free game engines allow you to play the game, not develop its tools. They simplify a lot – for example, they make it possible to immediately track the result of work.
The restriction on the choice of engine is imposed by the programming language – each engine has its own main language. At the same time, the engines have tools for scripting (visual) programming: Bolt for Unity and Blueprint for Unreal. Using only visual tools, you will run into limitations. For example, when working with the physics of objects, realistic physics is always written by hand.
But visual scripts implement the logic of casual games without problems. Most likely, you will have to combine “clean” coding with visual. The latter is good if you need to quickly check the performance of new mechanics.
The market also influences development tools. According to App Annie, consumer spending on mobile gaming is 50% higher than on console or PC. Therefore, the creators of free engines began to simplify the development of mobile projects. There are many free engines, but most of them (Construct, Cocos2D, RPG Maker) are preferred for developing arcades, quests, hidden objects genres. You also need to take into account that some of the functions of free engines can only be available in the paid version. For example, it is possible to limit the number of programmable actions for objects, and this encourages code refactoring.
A masterpiece can also be created on a simple engine – for example, Hotline Miami was made on Game Maker. Any development in small studios comes down to confrontation between Unity Engine and Unreal Engine. In contrast, companies that develop AAA titles are trying to create their own engines.
Unity Engine or Unreal Engine
These are the largest products for game development (from casual to shooters). The engines are similar in terms of approach, tools, and interface, but Unity uses C# and Unreal uses C++. With the help of unofficial plugins, you can connect support for other languages (for example, Python).
Each engine has its own model for commercial development. For example, if you chose Unreal Engine, you will need to pay 5% royalties after you release $1 million in game revenue.
Unreal is better suited for developing games with photorealistic graphics and wins in terms of performance, but Unity has more additional resources (assets) and supports more platforms. Assets allow you to develop games without hiring artists and 3D modelers. You just find and use the pack of models. Unreal has a Marketplace for them, and Unity has an Assetstore. They contain free products, but these are more for promotional purposes of more advanced packages. For example, a pack with free flower models demonstrates the quality of a paid pack with a set of trees from the same modeler. For serious development, you will have to spend money on third-party assets.
Both engines are competitive. Which one to use is up to the developer.