How To Create your own game Engine Like Unreal,Cryengine ,and Unity Engines

It’s so hard i wouldn’t even try

1 Like

This is not a good mindset to have in this industry or any other. Going to the moon was a lifelong project for some members of the team while they took on the enormous challenges of reinventing EVERYTHING to be able to operate in space. We would be nowhere if we didn’t tackle the hard problems head on.

2 Likes

Best way is to just start doing it. Eventually you’ll either get something useful, or get something that’s not useful (but you will have learned a lot).

Insert obligatory motivational Shia :slight_smile:

That’s a good book!

From other good books, I remember these:
http://www.realtimerendering.com/book.html

http://www.pbrt.org/

Google is pretty good source… Also blogs, websites etc. Here’s a collection of blogs someone collected in 2014 (graphics oriented though): Real-time Rendering Blogs

I did a thing or two on Unity. And I did a handful of more or less serious engines before that (Projects · Aras' website). My best advice is still, “Just start doing it”.

Funny story: back when Unity was less than 5 people, a lot of others were saying we’re crazy. UE3 was the king, and even smaller “big” engines of the day were quite intimidating. “Zero chance to go against them, y’all stupid”. There’s always a chance.

10 Likes

Do you even know how hard it is to create a damn Game engine??? Wrong mindset you say?? Sure, maybe i was wrong let’s all encourage him to rack his brains out coming up with an even workable engine. He might be a senior citizen when finished but hey at least he did it.

Not very hard to Impossible. The question is of course open ended because “what do you want it to do?”

3 Likes

You have a very valid point there, all depends on what he wants to do with it.

Yes, quite hard. Also, quite fun. Also, quite a good learning experience.

I’m all for you all using Unity of course, but if you want to learn the innards, writing your own engine is quite a good+fun exercise.

3 Likes

Don’t get me wrong i’m not saying he shouldn’t, all i’m saying is that it will be a pretty hard task especially if he’s doing it solo. If i were him, i’d spend my time implementing certain features into my games to make them more exciting and stuff. But if he still wannt’s to create an engine then i applaud you sir, you have more balls than i do.

That is what I meant. L4D2 uses Source. Source in turn uses SDL.

Who said he needs to make the next Unreal engine? And yep, I’ve created my own game engine back a year or ago to get more familiar with deferred rendering techniques. So no, I’ve never created anything like Unity or Unreal, but there is not reason to say that this guy can’t and that it’s not his life goal to do such till he is a senior citizen.

Building your own game engine can help you better understand the actual capabilities of engines in general. If it gives you a leg up on the competition without a tremendous amount of effort I don’t see any reason not to try.

3 Likes

Naw i’d rather make a good video game than figure the inner guts of a game engine regardless of whatever you pros there are to doing so. Or i’d rather dabble in kontakt and churn out cool music or blender and create wicked art. I guess it’s different strokes for different folks…

Well how long would it take to make unreal from scratch as a team of 1 with the resources that unreal had when first starting out? I think not trying is a pretty reasonable thing to do in that case :stuck_out_tongue:

Or building a full size functional rocketship to travel to pluto - by yourself. Some tasks just aren’t really worth trying if they’re going to consume your entire life without producing a result.

You rang…

Best thing to do is forget about making an engine :smile:, firstly concentrate on making a game in OpenGL… You’ll quickly find once you’ve made a simple framework it’s pretty easy to bolt onto it.

Also I’d recommend removing any confusion with C++ initially, you’ll need many attempts to make it functional and all you’re essentially doing is things like memory allocation etc. down the line. Once you understand what you’re trying to do then convert it to another more bare bones language.

In terms of performance, I have to admit there was little in it between some languages anyway (if you know what you’re doing). So firstly download eclipse IDE and LWJGL, then start looking into tutorials and understanding fundamental concepts of how renderers / game engines work. Like VBO’s, Rasterisation, shared Math library components (Matrix’s, Quaternion’s, Vectors) projection Matrices / shaders etc. etc.

I believe the tutorials below show how to create a simple .OBJ importer too ;)…

Absolutley stonking tutorial set here to get you started:

https://www.youtube.com/watch?v=ss3AnSxJ2X8

Then once you have gone through the basic’s you can start looking at more advanced concepts, this tutorial set takes you through animation all the way through to deferred shading.

http://ogldev.atspace.co.uk/

If you can get through all of this, you’ll not be far off having a completely functional framework ready to take on more modern game engine concepts. You can make something pretty powerful in three to six months if you’re willing to commit…

If the OP has any questions, let me know…

5 Likes

You’re talking about a commercial engine here, they are night and day compared to internal / indie made engines. There’s hundreds of extensively time consuming things in Unreal that wouldn’t be an issue to me.

Like, why would I spend months / years binding blueprints or C#? Why would I need cross platform shader distribution if I’m only aiming for Windows with GL? I wouldn’t spend months developing 2D tools, neither would I have who knows how many hours dumbing things down for end users / having a massive support infrastructure.

With the help of libraries, GPU gems and Nvidia Developers with at least intermediate game development knowledge. You’d probably look at about three months solid to get the framework together (Renderer, UI, Audio, Picking, basic .DAE importer, Animation, Object Picking, Shader infrastructure), where you take it from their is completely up to you.

Don’t believe me? Follow the tutorials if you have 2/3 rd’s of every day for the next three months spare. See what’s left after that…

I do agree that every minute you spend developing an engine (in any form) is time taken away from making an actual game. If you’re on a time schedule, using a ready made engine is always the best way to go… As a hobbiest / learner or someone with a relaxed time schedule I’d say go for it.

2 Likes

If you are thinking about creating an engine, a good idea is to look at code for some open source projects. Not sure how Unity feels about me posting links to other engines, but they are an easy search engine away.

If you look you will find that a full-on game engine requires literally hundreds of different files and classes, where each one can span pages and pages of complex code. It’s really a huge effort and not to be taken lightly, especially for one man (or woman).

Let’s put it this way, if some guy told you he was going to build a 50 floor sky-scraper all by himself, what kind of advice would you give? I mean, I guess it could be possible, but how long would it take that dude? Would it be worthwhile if the guy spent the rest of his life working on it, only to not even finish 10 stories? Maybe not.

  1. More flexibility - you choose tools you want to have
  2. Easier to fix engine-related bugs
  3. If you want a new engine feature, you make it, not waiting for an engine developer to release it
  4. If you made an engine, you’re a better candidate to land a job at AAA companies
2 Likes

It wouldn’t take THAT long! If you want to create a world-class, general-purpose engine to compete with the likes of Unity and UE4 then I agree we’re talking years and years, and since you’re trying to hit a moving target in terms of keeping up with the graphics curve, you will always be a few steps behind.

However, to create a more niche engine (for a specific game, or type of game) then it becomes a lot less complex. There is a wealth of free material online, from e-books to websites and source code, that cover just about every aspect of building a game engine. You just need the patience and dedication to learn and implement it, which is where most attempts fail.

I know. At least few months, depending on the scope.
Less time if game is simple or strictly defined and engine is non-extensible.
Less time if it is 2d.
If you try to make it general-purpose, easily extensible and suitable for any genre, then it will take forever and you’ll never finish the project.

In many cases it is not worth doing, unless you just want to have fun coding.

You’re tempting me to install l4d2 and run dependency checker on it. Last version I played - few years ago - was certainly running on directx. However since then valve got that “steam machine” idea, and wrote their own DirectX-to-opengl wrapper, IIRC. So it is possible the situation changed.

http://www.godotengine.org/projects/godot-engine

Dig in, take a look :slight_smile:

1 Like