In this blog post, I’m going to explain the role of a front-end engineer in the games industry through my experience at Nordeus. I will focus especially on the unique aspects of this position within gaming compared to other industries.
Business at the Front-End
Most apps today have a clearly distinguishable client (frontend part of the app) and server (the back-end) side.
The client is a part of the app being executed by the user’s device-—a smartphone, PC, etc. This is the responsibility of a front-end engineer. They develop everything a user can see on their device including all the components they can interact with.
The Game Development Process
The traditional software development process is linear and has clearly defined phases.
- The management decides which feature is going to be developed next.
- Designers then create a detailed model of the feature.
- Front-end engineers and the rest of engineers do all the programming.
- QA engineers take over and proceed with testing of the implemented feature.
In this process, the role of the front-end engineer is pretty much strictly limited to the implementation phase. They will deal with programming and code architecture and have no role in the rest of the development phases.
However, during the last couple of years, in certain parts of the software industry, and especially in the gaming industry, a new kind of process emerged, where all the roles are actively involved in all the development phases. The management makes decisions in collaboration with the designers and engineers. Designers lead the design process by involving the engineers, management and other stakeholders… In this process, the front-end engineer has a meaningful role in all the development phases.
Let’s take a look at a specific example to showcase what that might look like. Live events (special limited-time in-game competitions and challenges) are particularly popular among the players of Top Eleven. During the development of one such event called King of Rio, front-end engineers had an important role in making strategic decisions.
It started with sharing the estimate of the time and the risk of the implementation. Considering that this type of event has already been implemented several times, both time and risk assessments were relatively low. Working closely with the other stakeholders, front-end engineers decided to reuse most of the functionality from previous events.
As a result, the King of Rio event turned out to be a great solution. The players loved it and it was tested and implemented effectively in a relatively short period.
Front-End Engineer and Game Development
Compared to most other apps, games offer a somewhat more intense type of interaction. Being a front-end engineer in gaming requires plenty of user interface work. Top Eleven is a good example of how many different screens and graphic components can be found in a single game. And the user, or in this case, the player, can interact with pretty much all of them — tap, swipe, etc., revealing even more new components.
I understand that programming large numbers of graphical components doesn’t sound like a whole lot of fun. But luckily, the role of a front-end engineer is much broader than that-—they create entire systems that enable the generation and high quality of these components at scale.
Working on video games requires dealing with a large number of animations, textures, 3d models and visual effects. At large teams, you’ll find a specialized expert for each of these areas. A front-end engineer, on the other hand, is responsible for bringing it all together. It’s their job to make sure all these elements are displayed well and at the right time. And it doesn’t end there.
Once all of the functionality is taken care of, front-end engineers will ensure that the game works well on a huge variety of devices, which includes some really old low-performance smartphones. For example, Top Eleven works seamlessly on devices like Apple iPhone 4s (2011) and Samsung Galaxy S3 (2012).
Playing video games, we can enjoy some subtle visual effects such as realistic breaking of the sunlight off of sand or water surface.
This effect cannot be achieved with traditional programming in languages like C, C++, Java, Python… …because they’re executed by the processor (CPU). In order to achieve this, a special kind of program—a shader—which will be executed directly at the graphic card, needs to be engineered. In case this sounds interesting, I suggest that you search for some more info on this highly specific type of coding.
Bringing it all Together
A game, at its core, is a highly specialized database with an extremely imaginative graphical interface. Of course, there are high amounts of gameplay code in between these two layers, but game programming is composed of transferring the information to and from the database using structured data from the graphical interface.
To summarize, a front-end engineer had two roles—creative design and technical programming. As a creative designer, they use their right brain responsible for visual, spatial and perceptual processes; as a programmer, they use their left brain, a logical and analytical partner to its right side artist.