Sign in to follow this  
Maruiki

What should I learn before I create my own game engine?

Recommended Posts

I don't necessarily have a of experience to speak from, but I can tell you that you should definitely evaluate what you are trying to do.  A lot of game developers often say "Make games, not engines."  In game programming, and honestly, in programming in general, some people get caught up in trying to write a codebase that is perfect and is easily to add new things into.  Some people get caught up trying to make the perfect engine before even making the simplest of games.  If you want to learn how this low-level stuff works, then fine, learn about game engines and how they work.  However, if you want to make an actual game, then use a pre-made engine like Unity or use a framework like Monogame or SFML to program your game.  

Share this post


Link to post
Share on other sites

2D or 3D?  Any particular type of game or a generic engine?

Do you know any programming languages already?

Do you want to make your own level editor?

Any particular goals or just an engine?

 

Besides those question I think sound advice would start with

timing

game loop

game state

input

collision detection

spatial subdivision

getting things on the screen

getting things on the screen fast/efficiently

 

That should get you started.

Share this post


Link to post
Share on other sites
The simple version is this: learn to make games in another engine first.

You are a beginner. You have no idea what an engine even is or what it needs to do.

That said, if you care about building engines, a good intermediate book to get is Game Engine Architecture (Jason Gregory). I don't think it's going to be easiest or most useful read if you haven't made at least one game on your own first, though.

Share this post


Link to post
Share on other sites

In reality... it just depends on why you are making the game engine. If you are trying to make something like Unreal Engine, Unity, or other wise. You might just want to find a different thing to do. A super engine that generic isn't made by one person. And has been outfitted over the years. You can study the source code if you want. But what makes it so complicated is what the engine is supposed to do.

 

If you are making the engine specific for what you are creating. Then it won't take much. You need to understand basic and advanced calculus. Linear algebra. Trig.

And in software design. You'll need to understand game loops, states, and some patterns.

Share this post


Link to post
Share on other sites

Engines are tools used by game developers.

IMHO every master craftaman should knoe hoe to make his own tools... But to get to that point you've first got to learn how to use these tools.

How can you build a decent lathe if you've never used one? How would you even know of it is usable when you're done?
Learn to use as many game engines as you can. Learn what you like about them and what's frustrating with them. Learn the patterns that seem to be common among all of them. Find the common solutions and architectures. Be a skilled user of the tool, and then make your own.

 

My only argument to that, the origional people whom made their tools for their engines, never actually used an engine before.

Share this post


Link to post
Share on other sites


My only argument to that, the origional people whom made their tools for their engines, never actually used an engine before.
You don't honestly believe those engines are still around today, do you?

 

@OP: I agree with the others, make games first, with or without engine. Once you understand how a game works (what it needs, etc), you can think about how to supply that to a game programmer with your own engine. Also look at how the other engines supply that functionality.

Share this post


Link to post
Share on other sites

 


My only argument to that, the origional people whom made their tools for their engines, never actually used an engine before.
You don't honestly believe those engines are still around today, do you?

 

@OP: I agree with the others, make games first, with or without engine. Once you understand how a game works (what it needs, etc), you can think about how to supply that to a game programmer with your own engine. Also look at how the other engines supply that functionality.

 

 

You'd be surprised. Very surprised. A number of newer engines actually have some roots from older engines. Source Gold and Source Engine both have roots from ID's Doom/quake series. Same with the call of duty series.

 

Heck. the one I am designing is loosely based off of elements from Unreal, Legend of Grimrock, Love2D, and Bitsquid's blog.

 

Now I "almost" agree with most people about the make games not engines. I am personally not too fascinated with making games, as I am with game engines and low level stuff. It just seems more fun. So I have a good reason to not make more than two games and go straight to design.

 

But if you just want to make games... go with something that's already made. It will save you from "Bloody forehead disease". Cuz trust me... there is more than... plug in directx. And I can make games!

Edited by Tangletail

Share this post


Link to post
Share on other sites

My only argument to that, the origional people whom made their tools for their engines, never actually used an engine before.

 

Engines and engine tech evolved from people who were making games, and then figured "hey, we can save time by reusing code from our previous game"

People were making games long before there existed engines.

 

The first engines were just the sum of the tools a skilled games craftman had created to help him make his game.

 

It evolved from there, the lone craftsman with his home made games lathe, its only now that the discussion gets a bit weird when there are engines out there that are like machines on a factory floor, designed to be used in a process by hundreds to, industry style, produce games. (and with a 1000 manyears of work and research rolled into them)

Edited by Olof Hedman

Share this post


Link to post
Share on other sites

I'm still quite the newb to game making, but i would like to put in my thoughts. I believe the heart of the issue comes down to your motivation, what you're trying to accomplish, I've only worked on a few games though I've done quite a bit of programming outside that. Right now I'm on my third game, and it's been a leap in difficulty, but the reason i wanted to do this was i wanted to really make a reusable, modular game and engine in which i could start doing some self research in AI. AI is where my personal passions lie so for me the extra effort and learning it has taken to do this has been worth it. I've been at it for a few months now tinkering, learning and starting from scratch from time to time.

 

Yes you could argue i could have learned a lot more without building the engine and just building smaller games for a while. But i know my motivations lie elsewhere and so im still trucking along and I've learned quite a bit on my own.

 

Of course I'm not saying jump strait into engine making, at least start with some simple stuff like making a pong clone. But ultimately how early you start actually working on an engine of your own i would argue lies in your personal motivation. tongue.png Just my opinion though take from it what you may.

Share this post


Link to post
Share on other sites

If you want to create your own engine, learn to make games with other engines, make a list of features your engine should support and see how other implemented those features, and what difficulties they are facing with that implementation. That will give you a headstart.

Also, it is kinda hard to showcase your engine without a game written with that engine, which means at some point you need to get involved to create at least one game for it, either by outsourcing that to other people or (most probably) creating a simple game yourself. So you will need game making skills anyway at some point.

 

 

If you want to learn the skills to be an engine programmer in the industry, or want to soup up your CV for other positions, do the same. You will also need to create some showcase using your engine later on, so the skills will not completly go to waste anyway (and probably you will not be starting off as an engine programmer, IDK if this is an entry position for new blood).

 

 

If you want to create a game, think long and hard if you need to create your own engine. Or better, skip thinking long and just think double as hard about it :)

Modern multipurpose engines can be used for ANY kind of game. There are always the small games where the engine adds so much overhead that you are better off without any kind of engine, and there are special cases where you need to modify the engine to support some functionality that needs to embedded deep into the engine... exactly for this cases, many engine makers give you the source code for. You can get it for free from epic for Unreal Engine 4 for example.

 

So even if you really need to change something in the engine, you could pull it off (its not easy, but neither is writing your own engine from scratch).

And in 99% of cases Unreal or Unity will do exactly what you need.

Share this post


Link to post
Share on other sites

It completely depends on how complex your engine is, what language you're writing it in (and how readily available APIs are) and, most importantly, what kind of game you're making and how complex it is. How many system is the game going to have? And so on. At the very least, you're making use of APIs and you're never really making things from absolute scratch. That's just bad programming, a waste of time.

Just start learning a language, and make it your goal to learn the language. As Will Smith once said, you don't set out to build a Wall. You set out to make the best possible brick and then you do that enough times and the Wall (or whatever else that may be superior to the original idea) will emerge as a result.

Edited by Madolite

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this