Behind each 3D game for learning, there is a whole kitchen that works continuously to bring to the table the richest and most nurturing foods to those hungry and eager to learn more. In this special blog we peel back the curtain a little to show you what lies behind the deepest layers of the games for learning, in other words, at the back of the skeleton of the serious games. Let’s dig into why the codes are relevant and what they bring to the end users.
The programmers that contribute to the creation of serious games do not work with individual objects, but with codes that enable an entire system to function. Without these codes, the elements making up a game for learning would not function properly. Systems can take days to be created and enabled.
“The goal of the programmer is as ambitious as making a system run on the worst PC ever.” - Kamil Gronek
All games for learning have a full range of coding underpinning them that are unseen by the user, but without them, there would be no animated functions for the game elements, nor the possibility of interactivity. Dialogue systems, “drag and choose” options, calculating positions through algorithms, and blueprint scripting are just a few of the tasks of the game programmer. A good example is the grabbable objects – without the system behind them, which is based on codes and algorithms, the objects would just float in the air and would not be tangible for interaction.
What Kamil does seemingly through the arts and skills of a sorcerer is to employ maths and create ecosystems that are based on codes and algorithms, so that the environments can come to life and execute specific orders.
There are mainly 2 layers within the engine that are used for game creation:
Blueprint – this represents a first stage where all the nodes give life to diverse functionalities that will be applied to the game objects. This is where everything starts and where relevant connections are created through logical blocks.
At this stage, the storage of information within a database takes place and the insights are applied to the objects later. In other words, we could say that the programmer manages to feed orders into the system so that the game elements are correctly manipulated at a later stage.
This is a second and deeper layer, where even more sorcery happens, such as saving or loading scenarios, communicating with servers, and much more.
Behind each layer, there is a whole lot of algorithms and programming that make the system function. A coding screen would look like the one below, hard to decipher for an untrained eye, but “a walk in the park” for a sorcerer of the programs:
The biggest satisfaction for the programmer arrives after the system has been created. Seeing that the designed infrastructure actually works once all the codes are fed into it, that people can use it smoothly, bringing them the benefit of learning, are the driving motivators for the programmer.
The challenging part is coming up with solutions, with new ideas and converting the system into a flexible and adjustable one.
Kamil usually works individually or together with 3D artists in order to optimise the coding structure and bring life to the game objects by enabling diverse functions for each of them.
From the very beginning, the programmer shapes a system that can be reused. This implies adding sounds to an already existing system or adding features and animated qualities to an object that can be easily repurposed in the future.
All of the above empower the Apprendly Creator to function smoothly and to bring to life the best quality game for learning, where the user’s main concern is to enjoy the ride and be on his game with the learning content.
“Whenever you create a system, make it with optimization in mind, so that it can be adjusted and repurposed in the future. Make it flexible, make it friendly.” - Kamil Gronek
It is essential to master vector maths, to be creative and to constantly come up with fresh ideas, not to mention being solution-oriented and having a sense of organisation. Moreover, in this job you really need agility to connect elements quickly and match them together in harmony. It is also worth bearing in mind the idea of versatility, that is crucial. The systems you create as a programmer must be able to be repurposed, reused, and easily modified, as they might become useful assets for other games. You should never create a system for a unique purpose, but think smartly enough to optimise your resources as much as possible. Be sustainable, and shape maths-based systems with creativity in mind.
Agility is essential for this role, as many times there is a need to quickly make connections between elements in order to diagnosis an issue. Quick thinking and decision making are some of the key features that the programmer’s role must entail.
Within this universe of codes, there is not only a need for maths, structure, and pragmatism in order to be a skilled programmer, but also for creativity and an aptitude for games.
“Being able to come up with ideas that meet future needs is key for a skilled programmer. Always create with the future in mind.” - Kamil Gronek