In the previous installment we analyzed the different roles that exist in the field of design and now there would be from the point of view of functional proximity and in a certain mathematical and logical way the programming group due to its translation capacity between the language of design and the needs of the game that are mapped to the capabilities or limitations of the platforms on which the game is intended to run.

Programmers are a rare and hard-to-find group in the video game world, especially those who have the ability to understand more than one programming language and go to a level low enough to enable the vision of the idealized video game to become a reality becomes.

The programming is like the chassis of a racing car, integrating the different elements that make up a racing car capable of accelerating from 0 to 100 km/h in 1 second and consuming a liter of petrol per 100 km without any failure , because if so, the whole system collapses.

There are different roles in the world of programming, although often only the one is talked about, best known for implementing gameplay and game mechanics, but for a video game everything and even more all parts of the incredible world of programming count.

As in the previous installment, the existence of one role or another within a video game studio depends heavily on the size of the studio and its financial capacity to be able to support different professionals in different job positions. In small studios chances are the only programmer out there is fully equipped as a true one man band.

Gameplay Programmer

It’s the first idea that comes to everyone’s mind when programming and video games are mixed, it’s automatically associated with programming what the video game itself is, its mechanics, capabilities and gameplay. The gameplay programmer is responsible for integrating the different elements created by other teams: programming, design, art, animation, to gradually build up the different elements that make up the video game.

It’s an iterative, meticulous work with many dead ends where it’s easy to get lost in the meanders of many elements or systems that, if not connected in a logical, precise and efficient way, mean that the video game it’s not perfect and whose minimal implementation error causes discomfort in the player, sometimes consciously and many unconsciously (often the player does not perceive an error, but his subconscious is always alert and with more processing capacity notices it) downloading the game downloading a frame, or the character jumps in pixels less.

Video game programming

technology programmer

A few years ago, amid the tendency of every video game development studio to start off on the basis of its own engine (given the high prices of engines), this was the most coveted position for any programmer, and it was often the dream of legions of new creators who build their own engine. The importance and sensitivity of this position meant that many were at the heart of the company and projects, practically deciding what went in and out of the design or the game itself.

Over the years, the democratization of technology, and the advent of scripting or visual scripting languages, technology programmers have faded from this first tier of visible positions within the industry, but they continue to be an important component. Since most of the commercial engines don’t perfectly meet the needs of the video game we want to create, they do it in a less efficient way or they simply have bugs that need to be fixed.

It is also commonly used in the development of certain tools used in the studio for specific parts of the creation of a video game, e.g. B. the procedural generation of maps, the dirtying of textures, the integration of new formats or new content not supported by the game .engine, among many other contributions.

brain_Saad_Faruque

Artificial intelligence programmer

Artificial intelligence is one of the great gameplay elements that we can use while creating a fun game, so it can’t be too strong or too weak because it would affect the fun curves of the video game and probably create a boring video game Artificial intelligence also serves to do this , to create more lively worlds where our main characters can meet other characters and interact with them in a more natural way, avoiding the bad feeling of interacting with a traditional NPC, which will increase their immersion in the game and increase the feeling of fun

Increasingly, AI is also used in the synthesis of emotions in the characters and beings of the video game, adding factors such as fear, aggressiveness, despair, anger, etc.

Artificial intelligence in video games thrives heavily on research on the subject being conducted by various institutions and universities around the world, so AI programmers need to be able to understand a lot of the abstractions and mathematics that are generally associated with it, in addition to good programming are with AI.

On the other hand, in this field and the increasing use of analytics in video games to better understand our players and their behavior, many artificial intelligence techniques applied to data mining and behavioral pattern recognition are increasingly used by programmers Creation of functions and tools that help to interpret this paltry amount of generated data, which cannot be handled without artificial intelligence.

slide002

network programmer

The vast majority of video games today have some type of connection and some type of functionality that the network needs to function, such as leaderboards, connection to social networks, or direct multiplayer functionalities with the appropriate connections to other players or to servers.

The integration of all these elements requires a kind of programmer who knows well the communication mechanisms, their capacities, their problems and their limitations in order to be able to implement all the functionalities required by the game and their correct integration into the game mechanics. , in a transparent and harmonious way, so that the player does not notice whether he is currently connected or not, or else the player can be rejected. In this case, for example, the connections with the various game centers or advertising services or the social network platforms themselves, to integrate what we do in the game with our circle of friends.

The pinnacle of this type of programming relates to the mechanics of network games and how to maximize the fluidity of the video game, working with the various network parameters so that the quality of the game is optimal.

Like artificial intelligence programming, it is a kind of complex and low-level programming where the research that the programmer has to do to find new, safer, more reliable and more efficient ways to send information is continuously generated around the world becomes. because the ability to recompile and filter this information is key to improving the multiplayer capabilities of our video game and therefore the gaming experience we offer our players.

Effects/shader programmer

Needless to say, when it comes to video games, looks are everything. It’s the first thing that catches the eye of a potential player, from the first moment he looks at a screen or video of our game. In this section there is no doubt that the artists of a video game are partly responsible for the visual part, but if its integration is not done properly, or those small visual effects that will give it a different visual touch, or those shadows, that transparent water , that glittering grass or that WWII tank with a worn and rusty paint is not programmed correctly, the artistic part does not gel.

All of these are functions that depend directly on the skills of a visual effects and/or shader programmer, able to integrate the art developed by the artists into the video game engine, just as the video game creator idealized it , the concept artist had painted it, and the player had dreamed it.

Some may think that shaders can be made almost automatically and it is not even necessary to have a programmer because artists can make them too. But the reality is that if we want to do more complex and quality things, only a programmer will be able to implement the necessary effects. The shader is not just a language for certain lighting effects, but the programming language of the GPU, and this can be programmed through the shaders almost as if it were a coprocessor of the main processor, and thus perform far more impressive tasks than they range from modifying Meshes or textures to the implementation of physical and artificial intelligence calculations.

What we can or cannot do depends solely on the skills of the programmer who is integrated into this function. Likewise,…