Playing Heroes seems easy. But did you know the people behind its game engineering and how they did it?
In this blog, you will:
- Learn what game engine and coding basically are
- Meet the creator, project managers, and engineers of the game
- Get a glimpse of the game engineering process
- Hear their experiences and takeaways
- Take home important lessons from this journey
Let’s Simplify Some Technical Terms First
1) Game engineering
Generally, engineering is the application of science and mathematics to solve problems.
It has various fields such as the following:
- Agricultural engineering
- Chemical engineering
- Civil engineering
- Computer engineering
- Data engineering
- Electrical engineering
- Marine engineering
- Mechanical engineering
- Software engineering
- Structural engineering
Now, let’s put it into the aspect of gaming.
Game engineering is the science of creating codes for a game being developed. It involves technical math to tell what a computer should do.
For this, you need a game engine, a game engineer, a code, and a coder, which we will discuss next.
2) Game engine
What is it basically?
Dictionaries and encyclopedias define the game engine as a software framework designed for game development. It includes libraries and support programs.
In other words, it is a tool used by game designers in coding and planning a game. It makes their work a lot faster and easier without building one from the ground up.
“The engine is the perfect analogy here,” according to Solutions Architect Jader Feijo. It is “what makes the car move.” So, without it, “you can’t go anywhere.”
Meaning to say, the game engine is “what makes the game run essentially on people’s devices.”
Also, it is used “to program all the features that we want.” It provides the “basic functionality that you need to create a game.”
What are the engine types and its examples?
a. Open-source game engine
An open-source game engine is a free game development software.
You can use, copy, study, and change the code in any way. It is openly shared so you can voluntarily improve its design.
Here are some examples:
- Amazon’s Lumberyard
- Solar2D (formerly Corona SDK)
- Unreal Engine
b. Closed-source game engine
A closed-source game engine, also called the proprietary game engine, is a licensed game development software.
Obviously, it is not free to use. There are licensing rights infringed in using, modifying, and sharing it. In some cases, it even includes patent rights.
Examples are as follows:
3) Game engineer
Obviously, a game engineer is the person who engineers a game. But professionally speaking, he is a software developer that produces games.
Part of his job is to carry out the visual function and functional aspects of the game. For this, he collaborates with other engineers, designers, and programmers.
What is it?
Coding, or fondly called computer programming, is the process of communicating with computers.
It involves creating a set of instructions in the form of codes that tell the computer what to do.
What are its types?
a. Data compression
Data compression is also known as source coding or bit-rate reduction.
It is the process of encoding information using fewer bits than the original representation.
In other words, it reduces the number of bits you need to store and transmit data.
As a result, you save time, memory, storage space, and network bandwidth in developing a game.
b. Error control
Error control, or channel coding, is a technique that enables reliable delivery of digital data over unreliable communication channels.
It detects and corrects errors resulting from channel noise in the transmission of information from the source to a receiver.
In the process, it enables the reconstruction of the original data.
c. Cryptographic coding
Cryptographic coding is writing codes to protect information and communications.
It involves encrypting confidential data so that only the intended recipients of the information can read and process it.
d. Line coding
Line coding is the process of converting data into signals.
During transmission, you encode the information into a digital signal and have it decoded by the receiver.
To make it possible, you need line coding schemes to avoid overlapping and distortion of signals.
You have just learned what coding is.
Now, a code is the set of rules or system of communication that tells a computer what to do. It usually involves randomly assigned numbers and letters with special meanings.
In simpler terms, it is the program instruction written by programmers to create a game.
Vehicle laws, for example, are one of the codes a state enforces for transportation safety.
Another example is the secret meaning you figure out from a coded alphabet. You use it to determine a word, phrase, or sentence in a given activity.
A coder is much like the game engineer. But he is particularly tasked to communicate with computers and software to make them perform certain tasks.
For this, he uses programming languages such as the following:
The People Behind the Game Engineering and Project Management of Heroes
1) The creator
As you might have read in other blogs, Sam Neves is the creator of Heroes.
Growing up in Brazil, he has been exposed to and equipped by the church ministry. It inspired him to take up Theology/Theological Studies.
After pastoring Stanborough Park Church from 2005 to 2016, he moved to the General Conference.
There, he began working as the associate director of communications. It involved overseeing the marketing efforts of the Adventist world church.
Alongside his responsibilities within the department, he created Heroes with the objective of connecting people with the Bible through technology.
He began with a few talented, skilled professionals to develop the game. Eventually, the team grew into hundreds of people which helped the game flourish.
Even with this huge workforce, Sam has never neglected taking care of his team.
He would check on them and their work from time to time. He would always challenge them to think and innovate for the betterment of the game.
2) The project managers
a. Arnaldo Oliveira
Arnaldo was the original project manager for Heroes.
Growing up in Brazil like Sam, he worked in the financial industry as an assistant, manager, consultant, and the like.
From 2018 until the present, he has been managing projects for the General Conference of Seventh-day Adventists. As part of his work, he has been assisting in the Communication Department and the Center for Online Evangelism.
Meanwhile, he began working with Sam for Heroes.
As the project manager, he had to oversee all the operations and progress of the game development. He had to make sure the team members were doing their jobs well.
But even with his position, he gave a helping hand in some of the tasks. For instance, he assisted in formulating trivia questions and translating them into different languages.
And, of course, part of his job was to help the team resolve conflicts and challenges along the way.
b. Jefferson Nascimento
Jefferson is the current project manager for Heroes.
Like Arnaldo, he is a Brazilian.
He finished a bachelor’s degree in Social Communication major in Advertising at Mackenzie University.
With this, he has been working as a designer and social media manager. Then, he moved to Ireland to study English.
There, he met Sam, who invited him to work for Stanborough Park Church where he stayed for four years.
In 2019, he went to Portugal to take his master’s in Design Communication at the University of Lisbon.
And in 2020, he was appointed new project manager for Heroes to continue what Arnaldo had started.
As such, he has been very hands-on managing the teams involved in the development and marketing of the game.
3) The engineers
a. Jader Feijo
As we mentioned earlier and discussed in other blogs, Jader is the solutions architect for Heroes.
A Brazilian residing in London, he started programming at the age of 12. Eventually, he was able to develop financial management software for his father’s company using Visual Basic.
Also, he gained experience in over 14 programming languages and specialized in Apple platforms to develop iOS and Mac apps.
Later, he was tapped by Sam to work for Heroes.
His job has been to figure out ways on how digital technology can bring ideas to reality.
For this, he has been working with his cousin, Julio, on the technical side of game development.
b. Julio Flores
Julio is the main developer of the game.
He is a resident of Denmark.
With experience in the computer software industry, he has been working as a software engineer.
As you’ve learned earlier, he is Jader’s cousin. So, he has been working hand in hand with him.
As the developer, he has been responsible for coding the visual elements and programming the features of the game.
A Glimpse of How They Did It
How did it all start?
When Sam decided to create a Bible game, “he came to me with some very rough drawings,” Jader shared.
He sat down with him to understand what he wanted to achieve. He had to figure out “how we can use technology to make that a reality.”
Selecting a game engine
Jader began, “The first version of Heroes actually used a completely different engine than the second version. So, we took some of the learnings from the first version.”
As you’ve learned earlier, there are two types of a game engine. The open-source engine is free to use while the paid version requires charges.
But aside from the type of engine, there were “lots of different considerations,” Jader claimed. “It’s not just the technology and what the engine can do,” but the “license model” as well.
One concern he mentioned was “how much it costs because the project has constraints.” So, “you can’t just…buy a game engine that costs millions.”
“It might be the most amazing game engine but it becomes prohibitive at that point,” Jader continued.
“So, we wanted to choose something that had the power that we needed. But, at the same time, it ”wouldn’t limit us in the future and what we can do.”
To simply put it, it should be “very flexible but…wasn’t prohibitively expensive.”
After considering things, they settled with Unreal Engine.
As you’ve read earlier, it is an open-source engine. “Anyone can go in and [modify] the code” and “learn from it,” Jader added.
Maximizing its advantages
As the lead developer, Julio had multiple instances where “he modified the code,” Jader shared. It was because ”he [had] found bugs on it.”
Then, he “modifies it instead of waiting for support from a company that may or may not reply. So, open-source [engine] has a lot of advantages in that regard.”
In terms of licensing model, Unreal Engine “operates on a model where it is free…until you start making money.” Then, “there’s a threshold of how much money you make.”
After which, “you start paying a percentage of those proceeds” to the software company.
Because of this, Heroes has always been free of charge. No ads pop up when you play the game. You get all the features without paying for them. Isn’t it great?
Programming the code
We are not going much into the technical details of game engineering. But to give you an idea, Julio said that he would connect boxes and dots in a programming platform.
For example, you have “a word [and the] number two. Then, you have a box with a plus sign. And then, you get the two and get the result [of] four.” It is as simple as 2 + 2 = 4.
But more than that, you go further into “writing code,” Julio continued.
For this, he has been using C++, a cross-platform language used to create high-performance applications.
According to Julio, this programming software “connects to the world.” It provides you access to cloud services, security, cryptography, data safety, analytics, and a lot more.
There are a lot more technical things to discuss. But we can’t cover it all here. At least, you’ve had an overview of what game engineering for Heroes entailed.
How Was Their Game Engineering Experience?
Creating a code for Heroes has been challenging. It meant investing a lot of time to work and being ready for modifications anytime.
For instance, Jader admitted, “It depends on how many times Pastor Sam changes his mind about what he actually wants.”
He elaborated, “It happens a lot when you’re…developing [a] software. You think you want something and then you start developing it.”
After which, “you put it in front of people.” These are usually a small group of beta testers. From them, a game engineer gets an idea of what the game would be like when published.
In fact, we performed this beta testing some months before we launched Heroes last March 25, 2021.
With this, there were a lot of things that didn’t work or needed to change. “Changes are what inflates the project,” Jader claimed.
So, creating simple ideas and code took the engineers some hours or even days to achieve something. Then, ”usually around three months, you can have… a rough beta” to test and play around with.
But, in the case of Heroes, it took them six months to come up with the first draft version.
It was much quicker than it took for the second version. Well, obviously it was because the second version was much more complex.
More of their experiences and challenges are in the video below.
What Can We Learn From This?
1) Game engineering is not a joke.
When you see a game, ”realize that there’s a lot of work that went into it,” Jader emphasized.
It’s very complex. There’s a lot of planning, late-night coding sessions, meetings, discussions, last-minute decisions, and so on.
2) Enjoy what you have accomplished.
Game engineering may be difficult but it pays off to enjoy the fruit of your labor. Celebrate your accomplishments!
For Jader, what brings him the most joy is seeing how much people enjoy playing the game. It is a reward for all the hard work they have invested in it.
Apparently, game engineering is a technical job.
What we have discussed are just the basics. But what have you learned so far?
Also, do you love games? Do you want to work in this field?
Share your thoughts below!