Saturday, November 5, 2022

Essay - Programming and Game Engines

Programming and Game Engines 


    Creating a video game cannot be done without programming. We can program in two ways, do it in general software developing environment, however complicated, or recommended way, use a game engine, and focus just on game logic bypassing technical aspects.

    According do Adams (2014), the game programmer has to describe events during the game. For example, when on keyboard arrow key is pressed personification moves 2 units forward, or an artificial intelligence which means what the enemy tank will do when colliding with a wall, or a player's sword collides with a non-playable character. To fulfill that task, we have to use programming language. There are thousands of programming languages, nevertheless, the most popular in the game industry is C++.  It is a complex language, and programmers are able to write all kinds of software for almost every possible device. It is used in high-end engines like Unreal Engine or Unity and the bestselling AAA games. Of course, it is possible to create your own game engine. However, it is a complicated and time-consuming task. It may be a good idea when you already mastered the programming language, and it is known well in every aspect.

    The choice of the game engine and the programming language must be well-deliberated. Those factors must fit the gaming platform, technology, genre, and graphics style. Different rendering techniques may cause different results. Some game engines are more suitable for first-person shooters, another for isometric racing, and another for 2D turn-based strategy and point-and-click adventure games. Also, some technologies implemented into a game engine may be insufficient for project requirements, i.e., unsupported DX12 instructions, no native 3D rendering, or Ray Tracing support. Some engines may be legally modified, and programmers may add external libraries to extend their possibilities. According to GameMaker Manual (2022), programming languages also have limitations; for example, GML (Game Maker Language) by default works in sandbox mode, and the programmer has no access to other files on the hard drive, nevertheless, that solution slightly increases stability and security. The engine Game Maker has no native 3D support, still, it is possible to implement 3D objects using GML, unfortunately, it is not a comfortable solution to developing a three-dimensional game. Unreal Engine or Unity is a better choice to create that kind of game, however, these engines are more complex and usually too complicated for non-experienced programmers. Not every engine is multiplatform, which means compiling executable output files that may not be compatible with the current system.

    Developing in a small independent game studio differs from working in a corporate environment. Programmers in big companies have a narrow field of tasks to do. Indie game studios has usually few people, or sometimes just one, so programmers have general wide tasks to do. Nevertheless, the project, the game engine and system of work must be adjusted to the possibilities of the team.

    In conclusion, programming is the core and the most crucial element of game development. It is the first step to choosing the most suitable game engine and programming language to complete the project. Without programming, it is not possible to create a fully working video game, game logic, all events, and conditions. C++ is the best multiplatform solution for game development.


References:

Hill-Whittall, R. (2015), The Indie Game Developer Handbook, CRC Press LLC, London. Available from: ProQuest Ebook Central. [30 October 2022].

Adams, E. (2014). Fundamentals of game design (Third Edition). Berkeley, CA: New Riders.

YoYo Games LTD, (2022), GameMaker Manual. . Available at: https://manual.yoyogames.com/ (Accessed: November 1, 2022).

No comments:

Post a Comment

Journal article: Designing Game Feel

  Designing Game Feel      This journal article aims to describe how to achieve the subjective effect of players' satisfaction during ga...