Search Unity

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

Discussion in 'General Discussion' started by PhoenixElement77, Jan 27, 2016.

Thread Status:
Not open for further replies.
  1. Ryiah

    Ryiah

    Joined:
    Oct 11, 2012
    Posts:
    21,155
    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.
     
  2. I_Am_DreReid

    I_Am_DreReid

    Joined:
    Dec 13, 2015
    Posts:
    361
    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..
     
  3. Tomnnn

    Tomnnn

    Joined:
    May 23, 2013
    Posts:
    4,148
    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 :p

    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.
     
  4. Deleted User

    Deleted User

    Guest

    You rang....

    Best thing to do is forget about making an engine :D, 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:



    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..
     
    Last edited by a moderator: Jan 29, 2016
  5. Deleted User

    Deleted User

    Guest

    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.
     
    Last edited by a moderator: Jan 29, 2016
    BrUnO-XaVIeR and landon912 like this.
  6. cyberpunk

    cyberpunk

    Joined:
    Mar 20, 2013
    Posts:
    226
    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.
     
  7. elmar1028

    elmar1028

    Joined:
    Nov 21, 2013
    Posts:
    2,359
    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
     
    cyberpunk and BrUnO-XaVIeR like this.
  8. Neoptolemus

    Neoptolemus

    Joined:
    Jul 5, 2014
    Posts:
    52
    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.
     
  9. neginfinity

    neginfinity

    Joined:
    Jan 27, 2013
    Posts:
    13,566
    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.
     
  10. larku

    larku

    Joined:
    Mar 14, 2013
    Posts:
    1,422
  11. Not_Sure

    Not_Sure

    Joined:
    Dec 13, 2011
    Posts:
    3,546
    I think you guys scared off the OP. Looks like he's a one post and go.

    Anyway, I don't think it's a waste of time or impossible.

    There's tons of literature out there on the matter.

    He never said he wants to make the next great game engine, or even a game. He said that he wanted to make an engine from scratch before college starts. If he just does a simple renderer and a game loop it's very do-able.

    And I think it's a good learning experience even if he doesn't finish it.

    In the very least he'll get an idea if he loves the work or hates it. That sounds like a VERY good lesson for someone looking at a computer science major.
     
    larku likes this.
  12. tiggus

    tiggus

    Joined:
    Sep 2, 2010
    Posts:
    1,240
    SDL supports DirectX.
     
    angrypenguin likes this.
  13. Tomnnn

    Tomnnn

    Joined:
    May 23, 2013
    Posts:
    4,148
    Well actually the topic question is literally "how to create your own game engine like unreal cryengine and unity engines" ;)

    I know indie engines are less difficult, I made one in 4 months for a class. But the context here is making something like unity or cryengine or unreal.

    Context. Cornflakes.
     
    aer0ace likes this.
  14. dogmachris

    dogmachris

    Joined:
    Sep 15, 2014
    Posts:
    1,375
    Creating your own game engine? Possible by all means!
    Creating a game engine like Cry, Unity, UE, Source on your own - nearly impossible to do alone.
     
  15. Deleted User

    Deleted User

    Guest

    I understand, but I read through the subtext a little.. If you're a games developer in any fashion, making a commercial engine is nothing more than an exercise in pointless endeavours.

    Especially when you can make it better than Unity / Unreal or CE for the type of game you're making if said requirements are slim. Let's say, Windows only with GL as your renderer for a modern(ish) 3D game it's no problem..

    In fact I'd go as far to say, if you're doing a modern(ish) 3D game you might be better off considering making your own. The more you think about it, the more it kind of makes sense..

    Not only will it be MT'd and lightweight as hell from the get go, you got to weigh up what advantage Unity gives you and said limitations of Unity when you want your own systems. I never use Unity stock anyway, pretty much all of it got replaced or built on when I was a user..
     
    Ryiah and landon912 like this.
  16. neginfinity

    neginfinity

    Joined:
    Jan 27, 2013
    Posts:
    13,566
    As backend for software rendering via SDL_surfaces, as far as I know.

    Well, you can probably grab HWND for SDL window, and initialize it yourself, but in that case, what's the point? You use those kinds of libraries for writing platform-independent code.
     
  17. neginfinity

    neginfinity

    Joined:
    Jan 27, 2013
    Posts:
    13,566
    Actually, it doesn't make sense, because engine like Unity and Unreal provide you a toolchain. Without them you'll have to write your own toolchain, and reimplement many systems you'd take for granted in Unity/Unreal. Animation system, for example.

    Writing your own engine is a great way to kill your own project. That's why it isn't recommended. You will usually waste a year or two and gain nothing.
     
  18. Deleted User

    Deleted User

    Guest

    If you say so, I've been pratting around with engines for over a decade and my experiences contradict yours. In Unity, Enlighten isn't much use to me, neither is the terrain system, the shadow mapping / shaders would all have to be made / re-made, the navmesh solution doesn't support dynamic instances, there is no AI system.. I could go on for ages here.

    So you think an animation system is going to be the defining factor? Or you'll waste a year or two with nothing to show? That's probably true if you're a beginner to engine development and / or don't know what you're talking about.

    Around the 20th attempt, it gets a fair bit quicker.. Actually all this talk of building engines is giving me the urge to make another go at it.
     
    Last edited by a moderator: Jan 29, 2016
    aer0ace and Ryiah like this.
  19. neginfinity

    neginfinity

    Joined:
    Jan 27, 2013
    Posts:
    13,566
    Except that you conveniently forgot about multi-platform support, multi-api support, PBR shader support, although basic, extensible effect stack, extensible component architecture, implemented scenegraph, integrated physics system, sufficiently transparent class for storing geometry, the whole prefab/cloning thing, animation state machine, and multiple format support with persistent references + serialization system.

    This kind of stuff can easily set you back a lot, if you decide to try to replicate it. Because there's a LOT of small thing that will pile up quickly. How much time would it take you to replicate mecanim or umbra, for example?

    It is very easy for someone to start criticizing the engine and overlook the simple fact that the product took few years to finish by decently sized team of people.

    Look, I know how to write entire thing, every single system of it. The thing is, it is not worth it.

    Because you'll have to waste truckload of time making great tools for your designer/artist team. And those kind of tools are already available un UE4/Unity/Whatever.

    The point is that when you choose to reinvent the wheel, you better have damn good reason for that.
    If you want to make games, then it is a damn bad idea, because your engine needs to be finished yesterday.
    If you enjoy programming and making engines, then sure, go nuts and spend months writing it.

    Oh, you're missing something in the engine? Then extend it. Build your own solution on top of existing architecture. It'll take less time then writing the whole thing from scratch.
     
    zenGarden and ToshoDaimos like this.
  20. Deleted User

    Deleted User

    Guest

    The whole point is you don't need Multi-platform support, or multi-api support.. I said over and over if it's for Windows only using GL.. If you're going to try and make a commercial engine, then you're barking up the wrong tree and we all know it..

    I also said, every minute you spend making an engine, is a minute you take away from your game.. In all fairness, UE does 99% of what I need and I have access to source code.. Kind of negating any benefits there of making my own engine right?

    Not to say I don't see the benefits and in some cases it does make sense.. Especially if you want to avoid that 5% upcharge, but again it's six of one half a dozen of the other. Because are you wasting that 5% charge in man power?

    But a self made lightweight engine is an awesome achievement to behold.

    At one point you had the choice between Unity and / or Unity with a 32-Bit editor, at that point I'd had enough and set off on my own venture.. But I got too big for my boots, trying to make it a multi-platform king which of course due to MANY technical issues didn't work. If I'd of kept on doing it with LWJGL for my own game only all would of been right in the world.

    Also you got any showcases of work you've done? Not many could complete an engine end to end and I'd like to see it.
     
    Last edited by a moderator: Jan 29, 2016
  21. I_Am_DreReid

    I_Am_DreReid

    Joined:
    Dec 13, 2015
    Posts:
    361
    And when i try to tell people that its a hard ass task to do i get chastised smh......
     
  22. Tomnnn

    Tomnnn

    Joined:
    May 23, 2013
    Posts:
    4,148
    So is being alive as a mortal being :3

    Subtext, sure, but cornflakes.

    I usually prototype my games with unity and then... never move past the prototype or touch them again. But yea I probably would opt to make my own everything since I don't really use unity for much. But the few things I do use are all already there. I don't really care about graphics that much, I just want ease of use for the tools.
     
    Ryiah likes this.
  23. Ryiah

    Ryiah

    Joined:
    Oct 11, 2012
    Posts:
    21,155
    Use Unity as a level editor and build your own engine?
     
    Tomnnn likes this.
  24. royhammel

    royhammel

    Joined:
    Jan 29, 2016
    Posts:
    3
    i hate it when people start talking like this. don't listen to them. go make an engine. i've made a few, but none of them were as general purpose as unity or unreal or whatever. it just did what i needed for the game or demo i was writing. anyone telling you not to do it is either too much of a lazy coward to do it and doesn't want to get shown up by a kid just out of high school or too interested in your failure or worse yet, stuck on their own failure.

    there are lots of reasons to write your own engine. a lot of my more recent game ideas are incompatible with any current publicly marketed game engine. my current game i'm using unity for, but my next game i will likely write my own engine. if you come across an idea that requires something that the other studios don't provide for, and you don't suffer through the pain and effort of learning and writing your own engine, you'll be stuck either dumbing down your idea or skipping it or putting in the time learning it later. paying the price earlier rather than later will make you more competent and give you a better understanding of how a lot more is possible. mental digestion takes time. but, you have to go and do it.

    try it. make it. fail with it. do it again. and again. eventually you'll have some success. it's most important that you just do it and be humble enough to learn from it and dedicated enough to keep doing it. you don't have to throw your life away if you find you can't have success at this, but you also don't have to stop doing it just because you earn your pay check a different way. a lot of people tell you not to do it not because there's no value in it, but because they failed and weren't willing to stick with it. it's not like writing a game engine is somehow immoral. let people talk you out of immoral, foolish, or destructive endeavors. don't let anyone stop you from making a game engine if that's what you want to do.
     
  25. aer0ace

    aer0ace

    Joined:
    May 11, 2012
    Posts:
    1,513
    Actually, it's more like those who responded have attempted to build their own engines, saw no end in sight for finishing their game, and decided to go with an engine that catapults them past the underlying backend that allows them to work on the part of the game they actually care about. I was in this situation too. I definitely learned from attempting to build a game engine, but it's hard to say whether or not I regret going through the pain of reinventing the wheel myself. It *was* in old OpenGL though, so there's that.

    Right. See, the *fail* part is what most of the replies are trying to help the OP realize. Basically, if you want to finish making a game, building an engine will significantly (and usually unnecessarily) lengthen the dev cycle. That's all people are saying.
     
  26. I_Am_DreReid

    I_Am_DreReid

    Joined:
    Dec 13, 2015
    Posts:
    361
    So mr i build my own game engine, care to show me the fruits of your labour???
     
  27. Tomnnn

    Tomnnn

    Joined:
    May 23, 2013
    Posts:
    4,148
    Hah, there's an interesting idea. I could even build the terrain in unity then just export all of the geometry data, right?
     
  28. cyberpunk

    cyberpunk

    Joined:
    Mar 20, 2013
    Posts:
    226
    I don't like to discourage people. I think if people are motivated, they can achieve things no one thought possible. Creating a 3D game engine is not impossible. I have written engines before, albeit basics ones that were nowhere close to Unity. So I do have some experience. I've worked with software rasterizers, DirectX, various libraries, etc.

    The projects were interesting in an academic sense, but they weren't really useful or productive. If your goal is to make a game, it makes significantly more sense to use a pre-made engine. The chances that your original game concept is too grand for existing engines are slim. Especially when you can extend existing engines with plugins, source patches, etc.

    To be honest, I would have been much better off using Unity years ago and working on the art and programming for a game rather then wasting time doing low level engine work for an engine that was never going to compete with Unity. You make your own engine you have to do basically everything, even things that you take for granted like loading a 3D model. You then have to write your own model parser, define a custom model format in the engine, and other stuff that can take days or weeks to program that take one click of a mouse button in Unity.

    As I mentioned, there is use in having those type of skills if (for example) you want to work for a AAA game company building engines. It's not totally useless, it depends what you are trying to do. But if you want to actually complete a game (which is hard enough alone) you should use any and every tool you can download or buy to reach your goal. Writing an engine takes you further from that goal, not closer.
     
  29. Deleted User

    Deleted User

    Guest

    @Tomnnn

    That's a little grim :D, from what you're saying a custom engine is no benefit to you. Which is fine, so don't use one.. It doesn't mean it's not a benefit to others.. There are SO many pro's to it..

    @cyberpunk

    Again missing the point, myself I'd never release a game without a proper AA solution. I'd need a velocity buffer for TAA for e.g. it could take Unity a year plus to implement one of many features you need. All I have to do is download Nvidia PostWorks, follow the instructions, spend a week troubleshooting and hey presto.. By the time Unity released this ONE feature you could already have a fully functioning framework capable of taking on your game.

    That's one of many examples, like if I want Apex integration, if I want an LPV solution or the framework being light enough I could even opt in for Nvidia's VXGI. It doesn't stop there, practicality for e.g. you could build the UI out like an old quake style level editor and have a full suite of modelling tools and yes you can do it in Unity but it's easier to develop in house. Another thing, support.. There's bugs in Unity still from 3.X, that's not a care or concern to you having access to everything.

    There's so many pro's to it, as well as many con's.. It's up to you to decide if it's worth the payoff and for me it probably would be in some circumstances.

    There's a reason why indie's and AAA's alike use custom engines, like the developers or Torchlight.. They aren't all insane, but if there's something ready made which will do everything you want then you are just wasting your time unless the goal is to be an engine developer.
     
  30. Tomnnn

    Tomnnn

    Joined:
    May 23, 2013
    Posts:
    4,148
    Isn't that always the case for reality?

    Yes, I no need no fancy graphics or physics or effects or nothin'. I just need to display some things on the screen and limit the framerate.

    And modern hardware can deal with the cons. But I think my problem is my unusual urge to reinvent the wheel.
     
  31. Neoptolemus

    Neoptolemus

    Joined:
    Jul 5, 2014
    Posts:
    52
    I think ultimately the point here is that it is perfectly possible for one person to build a game engine. The question is, why do you want to do it? If it's for fun and learning then you can't lose. Even if you never finish it, you will learn loads over a broad range of areas, and you will more importantly learn more about how to structure your code to be sleek and efficient.

    If it's for a particular game (i.e. a means to an end), then you need to consider why you feel Unity, UE4 or CryEngine can't satisfy your needs and whether you can find an acceptable workaround. There are certain situations where writing your own engine makes sense, which is why people still do it, but it's usually because it will actually save time and effort compared to modifying an existing engine to work for them.

    Either way, good luck! I've written my own renderers and physics engines before and it's challenging but you learn a LOT.
     
    cyberpunk, Deleted User and Ryiah like this.
  32. Deleted User

    Deleted User

    Guest

    Exactly before starting a project, you should get CryEngine / Unity / Unreal and test them out.. If you believe modifying / fixing / adding features / learning curve is going to be a problem and very time consuming. Then start to consider your own engine for your personal product / game.

    It is an extremely game specific decision, one that requires a specific checklist.. Also remember, if you build your own framework it can last you for decades, once it's done it's done and will only require maintainance and upgrades as technology moves on..
     
    elmar1028 and Ryiah like this.
  33. cyberpunk

    cyberpunk

    Joined:
    Mar 20, 2013
    Posts:
    226
    @ShadowK I'm not disagreeing with you. There are surely legit reasons for custom tech (as many AAA studios do this). My point was that most people actually have some idea or concept for a game, and then think they have to start with writing a game engine, and I don't think this is the case.

    People are much better off using off-the-shelf tech or libraries so they can get to their goal faster. This may mean forgoing the latest in rendering tech or physics or whatever, but I bet most ideas could still be realized in some fashion (even if it's only 80% of your original vision).
     
  34. Ryiah

    Ryiah

    Joined:
    Oct 11, 2012
    Posts:
    21,155
    Do you count libraries like SDL too? Or are you just referring to existing engines?
     
  35. imaginaryhuman

    imaginaryhuman

    Joined:
    Mar 21, 2010
    Posts:
    5,834
    I spent several years dreaming up and trying to implement various engines. It was all about the design, the abstract, the artistic vision, the cool way that it would unify things, etc... All of which basically goes toward not resulting in anything very specific or concrete or achievable. Lofty ideas can take an extremely long time to implement. And believing I could come up with something 'better' than all the others was an ego trip. Maybe it was true, but better is also harder. Don't waste years doing huge amounts of avoidant generic work. Get more specific. Work on one game and don't try to make the code reuseable or anything. Just get it done.
     
    Martin_H, cyberpunk and aer0ace like this.
  36. cyberpunk

    cyberpunk

    Joined:
    Mar 20, 2013
    Posts:
    226
    Yeah, I would count SDL on some level. My point was just not reinventing the wheel or doing unnecessary work. There are different levels of tools and middleware and all of them can be useful in the right circumstance. For example, if you need more flexibility than Unity, you don't have to go straight to OpenGL/DirectX. There are libraries, like OGRE for example. that abstract the graphics APIs into something much easier to work with while still giving you more control than a closed-source all-in-one solution. Since it was mentioned, I should also note that Torchlight was made with OGRE, they didn't create the engine completely from scratch. So I think there is a reasonable middle ground.
     
    neginfinity likes this.
  37. Ryiah

    Ryiah

    Joined:
    Oct 11, 2012
    Posts:
    21,155
    Another project that was using it up until recently was OpenMW which is an attempt to rebuild Morrowind's engine and modding toolset for modern platforms. They ditched it for another framework called OpenSceneGraph. In the process they doubled their frame rate, cut their loading times in half, and reduced memory usage.

    https://openmw.org/2015/openscenegraph-port-playable/

    Still there are going to be times where building your own engine better meets your needs, but I feel like most of them involve some unusual hardware (ie Raspberry Pi) or very weak handhelds (ie GP2X).
     
  38. Deleted User

    Deleted User

    Guest

    Oh yeah 100%, when I started dev'ing them I signed straight up the Nvidia's developer framework, so Physx / Apex was taken care of I just had to bolt it into the engine. Post effects covered, snippets of river / ocean tech covered, used SDL for Audio / Input, I used a third party widget based GUI system.. There was even a base animation system I found with re-targeting and a base for inverse kinematics.. Plenty of terrain examples, deferred decals examples etc.

    It's not that difficult to make it look as good as current cutting edge rendering tech, if you can get if from somewhere :D..

    That's where things like LWJGL loose out, there's so many C++ libraries (some really good) out there that it makes it a little redundant.

    Thing I found most difficult was licensing, caused a fair few headaches.. That's ultimately what put a spanner in the works when creating an engine for others to use.

    If you want an engine to release a game, use what's available don't re-invent the wheel from scratch. Not even Unity and / or Unreal make their own Physx systems.. Kinda pointless when Nvidia Physx is pretty sweet..
     
    angrypenguin likes this.
  39. Tomnnn

    Tomnnn

    Joined:
    May 23, 2013
    Posts:
    4,148
    It was necessary to reinvent the wheel when unity 5 came out.

    Anyone remember that? I think @Ryiah was there for that.
     
  40. Ryiah

    Ryiah

    Joined:
    Oct 11, 2012
    Posts:
    21,155
    My memory isn't being very cooperative with me. :(
     
  41. Tomnnn

    Tomnnn

    Joined:
    May 23, 2013
    Posts:
    4,148
    When unity 5 released, one of the most popular asset store solutions for wheels broke.
     
    Ryiah likes this.
  42. Ryiah

    Ryiah

    Joined:
    Oct 11, 2012
    Posts:
    21,155
    Oh. You meant it literally. :p
     
  43. Tomnnn

    Tomnnn

    Joined:
    May 23, 2013
    Posts:
    4,148
    yes :D the wheel asset had to be fixed / reinvented to work with unity 5. It's not often that you literally reinvent the wheel. I think I saw on shark tank a guy proposed a new design for the wheel. It wobbled a lot but was really sturdy and had good grip for all kinds of terrain.
     
  44. MichaelWais

    MichaelWais

    Joined:
    Oct 31, 2016
    Posts:
    11
    Well, if you like, you can preemptively join the GitHub repository I made for my own original game engine I'm going to make out of my blood, sweat, and tears once I get the necessary reading and coding together. This is something I'm basically doing for myself and I thought it would be a cool project that would help my game design skills. I'm hoping other people would like to contribute, modify, and/or upgrade the engine in the future. If you want to contribute to the test build after I put it up you can join my GitHub repository for my game engine here:

    https://github.com/MichaelWaisJr/11-11
     
  45. ToshoDaimos

    ToshoDaimos

    Joined:
    Jan 30, 2013
    Posts:
    679
    I will give you some food for thought.

    At Unity Technologies there are currently around 1k employees. I'm sure that at least 100 of them are writing code every day. They work around 2k hours per year. That's 200k hours per year for them all. Unity is public since 2005. That's around 10 years of continuous development. That's 10x200k=TWO MILLION HOURS OF WORK. This calculation is very conservative. It doesn't take into account all the time before Unity went public and many other factors which add even more work.

    It's completely laughable that some of you think about outdoing Unity solo. Can you do solo 2 million hours of work? Or maybe you can work 1000 times faster than internal Unity developers. That would allow you to make a competitive engine in around one year.
     
    Last edited: Dec 20, 2016
    cyberpunk and Kiwasi like this.
  46. Andy-Touch

    Andy-Touch

    A Moon Shaped Bool Unity Legend

    Joined:
    May 5, 2014
    Posts:
    1,483
    And also support/test on 20+ different platforms ranging from mobile to desktop to console to VR. ;)
     
  47. kaiyum

    kaiyum

    Joined:
    Nov 25, 2012
    Posts:
    686
    If anyone has got free time to study then I highly recommend coding game engines. This will help you to understand many things under the hood. The road is very bumpy and tough to linger on. But its really worth it. And it should only be done at free time I think. I am in kind of similar road to this. A lot of interesting things are coming along the way, I must say I love this diversity. :)

    You might need to think in assembly level at certain area, depending upon the goal. The rendering prospect is very math heavy and of course optics. There are so many things that can be done and can be learned in this aspect. Here are some resources which will get you along the way.

    http://gameenginebook.com
    https://www.amazon.com/Advanced-Lighting-Materials-Shaders-Dempski/dp/1556222920
    http://www.gamasutra.com/
    GPU pro series
    I have heard of a book on global illumination some days ago, I will check on it after I finish "advance lighting materials and shader".

    Mind you, its all have to be done in free time so that you wont harm your development process.
    edit: I forgot that I posted on this thread a long ago and thats why it came into my feed. :p
     
    Last edited: Dec 20, 2016
    landon912 likes this.
  48. zenGarden

    zenGarden

    Joined:
    Mar 30, 2013
    Posts:
    4,538
    They used Ogre 3D rendering framework that have many additionnal plugins support for physics and audio, this is not an engine they created from scratch.
    It goes faster if you pick up some existing open source engine or rendering framework and but motivation can drop or go away for hundred reasons or new motivations. If your goal is to make a game you should better choose and existing solutionand concentrate on making content that can take as long as making a 3D engine.
     
  49. adur

    adur

    Joined:
    Sep 8, 2011
    Posts:
    37
    For the people wondering why you would want to ever learn to write your own engine, I work at a mid to larger size mobile developer. First time working on mobile for me. Anyways, when i came in I was surprised to see they were using their own in-house engine until I found out how much money they make. Then it made sense. The amount of money they would have to pay to unity or any other engine as part of their revenue share would be gigantic. They have a good chunk of people who work full time on their engine, all of whom are very well paid. The OP could be one of those people if he wants to pursue learning how to make an engine. I imagine there are a lot of companies out there in the same position.
     
  50. Murgilod

    Murgilod

    Joined:
    Nov 12, 2013
    Posts:
    10,145
    Unity doesn't have a revenue share.
     
    Kiwasi likes this.
Thread Status:
Not open for further replies.