When I first started gaming, I definitely took for granted what all went into creating them. I simply thought people got together in a secret room, made graphics, and put them together. Little did I know that even some of the simplest animation and games be Herculean tasks for developers.
Much more goes into a game than just graphics and story. Do you need a game engine to make a game? You don’t necessarily. You can also make a game by way of coding. But where’s the fun in that?
The game engine is the foundation for how things will react and respond in the game, so having the right one for your idea is crucial. You have great options like Unity and even the Unreal engine, but what if you wanted to make your own?
Is it even possible? I am here to say that yes: it absolutely is.
Now, this isn’t the same as having a great idea for a project and just rolling with it. No, no, no, my friend. This is an investment in which you will most likely end up pouring hundreds if not thousands of hours.
Think of all those hours in Witcher 3 and Red Dead Redemption times a hundred, no, a thousand.
Not only that, but you’ll have to have a nuanced and knowledgeable skillset to even begin to tackle this task. Not that it can’t be done, but rather you need the right people, background, and passion for the game engine you want to develop.
Why Build an Engine?
Should you make your own game engine? This is the big question, isn’t it? Why do you want to build a game engine? Is it to try and make something on your own?
Maybe something that doesn’t need Unreal or Unity? If one were to harness the power of a game engine, the creative potential going forward is immense.
You aren’t exactly pigeonholed either; you can make a game engine teach code to users, be geared towards beginners and veterans of the craft, and scratch that itch that hobbyists get. You may ask yourself truly, what is a game engine?
What goes into a game engine? Well, building a game engine isn’t easy work; if it were so, everybody and their brother would have done so. Instead, it takes time and patience, something that a lot of gamers, (myself certainly included), can sometimes have a short supply of.
Making a game engine could be an extremely interesting and beneficial asset to your development portfolio. How impressive would it be to see under someone’s projects that they were/are developing or made a game engine?! I kneel before them in awe.
You need to have a good grasp of what engines are. For example, you might get things mixed up. Is openGL a game engine? No, it’s more of a graphics renderer, not an engine.
The possibilities of the ‘why’ can be endless. Let’s stick to some more concrete things, like some simple pros and cons right off the bat.
Pros and Cons of Building a Game Engine
Creating a game engine is more or less creating the building blocks for a potential living, breathing world. This could range from something simpler like the bloody pixel-fest Hotline Miami, or the more complicated projects like a AAA title.
You more or less have control of where you want to ‘go’ creatively, only being bound by your resources. For artists and other creatives, this is a pretty huge pro.
A user on Quora, when asked about the rigors of game engine development, gave some great insights, and ended his post by saying that it was all worth it:
“The day when I saw my game engine work for the first time, I cried, I jumped, and I danced out of joy because in that instant I gained something more valuable than money and success.”
That should be enough for some people. I know it is for me!
Meeting fellow creators
In your quest to make your own game engine, you will no doubt run into many different colorful characters inhabiting the internet, doling out help, tips, and tricks. This pipeline to the community of fellow gamers and developers can be key, as we will learn a little later.
You have complete control of everything in your engine. You know how it works, doesn’t work, what could be better, and more.
This can be invaluable as since you know everything there is to know about the engine, you are the best source of help with every aspect, like animation and physics.
Making a game engine will throw you through the wringer, and your experience will grow exponentially from it. Even if you don’t end up with your dream project, the potential to learn from mistakes and failures is what it’s all about sometimes.
As I said before as well, you can add these experiences to your portfolio going forward as well. It’ll be pretty impressive to see someone with your experience joining a team or working on a project.
Significant Time Sink
Guys, as I said before, you will spend countless hours developing an engine. This, unfortunately, isn’t exactly a casual romp that people can just float their way through over the course of a weekend. You’ll likely be spending months and years building your engine even before it is fully operational.
Ariel Manzur and Juan Linietsky, the developers of the Godot engine, have constantly been updating Godot since its launch in the mid-2000s. Keep in mind that after you launch, you will most likely have to keep working and working well after the launch date to keep your engine running smoothly.
This ties into the community, and hopefully resources will be plenty and available. Many have said that this may be one of if not the biggest factors on why NOT to make a game engine.
Steep Learning Curve
If you aren’t familiar with a lot of game designing terms and concepts, this will be a big roadblock for you. Game engine development deals, at its very base, with a multitude of deep concepts, and can easily leave uninitiated developers fuming and frustrated.
You need to be in the right mindset and right level of comfortability with gaming, game development, and technical skills to begin on the long, yet rewarding journey of making a game engine. It isn’t recommended for first-time developers.
Many online say that it is just flat out easier to use an existing engine to develop a game or creative project rattling around in your brain.
I mean, it’s pretty easy to fall into this category since there are a slew of other engines with their own unique and attractive styles that could make your life easier
Now that we got that out of the way, let’s focus more on the basics, namely what you’ll need to start this ambitious journey.
Languages and Experience: Learn to Code
No, not languages like Spanish; I’m talking coding languages of course! Making a game engine isn’t easy as we all are now aware, so having a basic knowledge of different coding languages is an absolute must.
C++ is the lifeblood of programming. If you’re a C++ master, then game development and engine building could fall into your lap more easily.
However, if you’re a newbie at programming and coding, C++ isn’t a monumental task to undertake. If you are dead set on making a game engine, you have to fully commit to every aspect.
C++ is a great first thing to jump right into. It runs on nearly all platforms and is used with almost everything you will come across. It’s the virtual blood flowing through the veins of your creative game engine. Once you learn enough of C++, you can branch further out. For example, Java is one of the most famous and popular coding programs ever made.
Java is a derivative of the C++ language. It’s simpler, making developing with Java a breeze. It pares down some of the more complicated aspects of C++ and makes the syntax and terms easier to digest.
If you wanted your game engine to harness Java, then this might be the path for you.
I found some great options for places to learn how to code for free these days, so don’t fret:
These great options can take you from a bumbling beginner to keyboard samurai. Many include great communities and courses to make you less uncomfortable and make you a coding master.
Not only that, but many are e-learning platforms for a multitude of subjects. You could explore more about game engine design by exploring many of its related computer-related fields.
Basically, C++ is pretty much necessary and drives many of today’s engines as an important part of the design process.
How to Structure Your Project
All of this in mind, where do you even begin? How do you manage time effectively? It’s no walk in the park, my friend, but you can easily hone down your work hours as well as stress if you follow some simple steps.
1. Have a System
Any system. This means anyway that you personally work best in your developing environment. Maybe that means ‘Wake up early, code all day, go to sleep’ to you.
It could also mean ‘work two jobs and come home and code‘. It will be different for everyone undertaking to develop a game engine from scratch.
Along with this is a realistic goal setting. Of course, when we start projects, we want to shoot for the moon. However, most times that just isn’t a reality and you have to modify your system.
Long term goal setting can be a healthy, productive way for you to build an engine quicker, and with more efficiency.
Think of a goal in engine building as the finish line of a marathon. How will you personally get there? Will you run in your free time to practice getting better at running? Will you just sprint and hope for the best?
Having a system is all at once having so many things and filtering it down into a lifestyle and mindset. Find what works for you and your goals best without burning you out.
2. Consider Collaboration
This is one of my favorite ideas in development. Why go it alone? In-game and engine development, going solo can quickly become frustrating and irritating beyond belief.
Luckily, there are boatloads of talented individuals at your disposal. Whether they be friends, coworkers, or strangers you found on the Internet, someone to bounce ideas off of and collaborate with could give you a huge boost towards your goals. Communities online, in particular, are breeding grounds for some seriously talented game and engine developers,
who likely have the same drive and creative juices that you do. Subreddits and Steam forums are some great places to get your feet off the ground. Steam has community hubs in which modding, and configuration are the talk of the town.
Contacting any number of these people could yield some impressive results. I play a hell of a lot of Total War games, and I have a bunch of mods downloaded.
I bet if I contacted the developers of the famous Darth Mod, I could receive some valuable insight; it’s that easy. The two Godot developers had each other, and it’s a huge reason they even launched Godot in the first place.
So, basically, don’t be afraid to team up with some like-minded developers who may share a similar dream and drive as you. Bouncing ideas off of one another is also something you’re going to need when making a game engine.
3. Use an iterative approach
An iterative approach to something, (namely software development), works in phases, emphasizing incremental builds of a development. More specifically, it helps those in software learn easily from different aspects of the software build from before.
Your first stage is the initial planning and regular planning, where your ideas come into play. Then, the analysis and design, in which you actually put your project to the software, analyze and see if the design holds up. Then you put your design to the test, observing closely what went wrong or right, and how to fix any nuisances.
Finally, you evaluate what happened with your project. After this, the cycle begins anew, where you have all of the data from all of the testing, and now you can incrementally build on your results.
It can prove to be extremely useful and effective, especially with game engine development. You want to be present every step of the way, at every stage of development.
As stated above, you need to know how it all works. This is your world; you need to live in it.
4. Don’t try to do it all
Starting out, you may be tempted to dive right in. But beware; it can be easy to take on a load that’s too large for you at this present moment. You need to work slowly, (as frustrating as that could be), gathering all the info you can, and maximizing your workflow.
This ties into collaboration as well, as you can gather a team and delegate duties to different members, taking the burden of the entire project off of your shoulders.
If you use goal-setting in tandem with the iterative approach, you could be surpassing goals left and right. However, trying it all will quickly overload even the most seasoned developer.
Nothing is gained from you getting too confident and abandoning your project out of frustration.
Aspects of the game engine
How are video game engines made? They consist of many interlocking parts. The game engine contains everything needed for a game to run. all of those favorite games of yours were built-in engines that harnessed the developer’s idea into the main working parts:
- Perspective: what direction are we, the viewer, seeing certain things from? How do shadows play on something leaning at a certain angle?
- Movement: How your characters or assets move in the engine
- Textures: Artists can really go crazy here. Gaming textures are what sometimes gives digital assets life.
- Lighting: the lighting and shadows are crucial to immersion in even the simplest game.
- Collision Detection: one of the biggest issues in gaming. Collision detection is exactly that: making sure that two things don’t collide. You’ve probably seen this in some game with glitches in which a character might walk right through another or fall through the ground.
Are You Going to Build?
Well, are you? You’ve seen the pros and cons, the many different aspects of what goes into the process. You will need a lot of knowledge, extreme determination, and passion for building a game engine.
What I want to impart most of all is to not be afraid to fail. In the worst-case scenario, you could leverage your portfolio, touting your impressive software development skills.
But if you set realistic goals, don’t burn out, and get a great team of like-minded individuals behind you, in a few years’ time, you could have the new Godot engine.