Search Unity

  1. Welcome to the Unity Forums! Please take the time to read our Code of Conduct to familiarize yourself with the forum rules and how to post constructively.
  2. Dismiss Notice

I’m making a Unity 3D-like game engine

Discussion in 'General Discussion' started by Bearish, May 9, 2016.

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

    Bearish

    Joined:
    Jan 26, 2016
    Posts:
    11
    Hi! I wanted to share with you a project I've been working on for a while. It's an engine that is very much inspired by Unity and I think could be interesting to Unity developers. I worked with Unity for many years and enjoyed it for its very intuitive editor and API, but I always wanted to be able to modify certain parts more than I was allowed by the provided scripting API, and have decided to start off on my own solution that is very much inspired by it.

    It’s still in development, and it lacks polish and some critical features, but the core of the engine and the tools is done, now it’s just a matter of building on top of it. The idea is to a create an engine that is as easy to use as Unity, yet open source so you can fully customize it, fix bugs and add or replace features as you desire. I have placed a lot of focus to design it neatly, with clean code so that the internals are easy to understand and extend. Hopefully this makes it stand apart as I believe the community could do wonders if they have a quality foundation to work on.

    It’s not going to have a full Unity feature set any time soon, but I think the underlying systems that are currently available are extremely solid and it provides a great platform to build on. New features are being added steadily, and the missing critical systems will be finished soon, with plans for a lot more after that. PhysX support was added just recently, with audio and animation support coming in next 3-4 months, followed by a Vulkan implementation, physically based renderer and Mac/Linux ports.

    If this sounds interesting to you take a look at https://github.com/BearishSun/BansheeEngine for more information. If you like what you see consider spreading the word by linking the project to your friends, or contributing!
     
    elias_t, arkon, eskovas and 17 others like this.
  2. GarBenjamin

    GarBenjamin

    Joined:
    Dec 26, 2013
    Posts:
    7,441
    Sounds like an impressive initiative. I suppose it was only a matter of time before someone did it considering all of the threads around here for the years I've been around seem to have the same complaints.... bugs that have not been removed, lack of source access, etc. Still... it is a huge project particularly if your goal is to support the same number of targets. I guess that is the hope for putting it out as OpenSource, right? That others will take on some of the other targets such as consoles. I suppose you could just leave mobile out entirely since that seems to be Unity's biggest focus or at least the bulk of their userbase.
     
    dogzerx2 likes this.
  3. Bearish

    Bearish

    Joined:
    Jan 26, 2016
    Posts:
    11
    The focus is to keep everything neatly designed and fully documented so it's possible for the open source community to add new features, including platform ports. As you said the hope is that the community helps out with platform support. I will be implementing support for all major mobiles and consoles eventually, but the community could do it sooner, and it can maintain support after it has been added to ensure no problems arise.
     
  4. Deleted User

    Deleted User

    Guest

    If you need a hand let me know, quite handy with engines so might be a nice side project..
     
    kB11, frosted and Martin_H like this.
  5. JasonBricco

    JasonBricco

    Joined:
    Jul 15, 2013
    Posts:
    956
    I'll definitely be trying this out once it has Mac compiling support :).
     
  6. carking1996

    carking1996

    Joined:
    Jun 15, 2010
    Posts:
    2,605
    Looks fantastic already, really great job on it!
     
  7. Bearish

    Bearish

    Joined:
    Jan 26, 2016
    Posts:
    11
    There's certainly plenty of work to be done. Anything specific you are interested in? Check out roadmap for what is planned for the future. Feel free to email me at marko.pintera@gmail.com.
     
  8. Deleted User

    Deleted User

    Guest

    I used to work on rendering pipelines and generic toolsets, did it for quite a while.. So lighting systems / post / UI / streaming systems and occlusion culling (based on DX / GL API's). Never worked with DX12 / Vulkan as I left my last job three years ago ("roughly").. But I'm sure I could get to grips with some research / engine foo.

    So I might be some use.

    Let me compile the engine, take a look around and I'll mail you if I do anything interesting :)..
     
    Last edited by a moderator: May 9, 2016
    Martin_H likes this.
  9. Bearish

    Bearish

    Joined:
    Jan 26, 2016
    Posts:
    11
    Sounds great. Occlusion culling is something the engine needs, so that might be a good thing to work on. Drop me an e-mail and we can get in touch and talk about it more.
     
    Deleted User likes this.
  10. Acissathar

    Acissathar

    Joined:
    Jun 24, 2011
    Posts:
    669
    Very interesting stuff, and Banshee is always a sweet name for tech things.

    It's so cool to see things like this that one person has been able to pump out, I'm definitely going to check it out.
     
  11. Reanimate_L

    Reanimate_L

    Joined:
    Oct 10, 2009
    Posts:
    2,782
    Now this is interesting, seems like a great project. I'll keep a watch on it :D
    Btw just curious, this is not specific to Banshee though.
    Is it actually better to split Scene View and game view? and i'm asking this to everyone actually.

    for me personally i don't have any problem about it, mostly just curious which one is actually better. to split the viewport or just play directly in one viewport and having a toggle to show game mode. Just like the "other" engine :p
     
  12. yoonitee

    yoonitee

    Joined:
    Jun 27, 2013
    Posts:
    2,364
    I made a 3D engine once. It was awesome. PhysX. Python scripting. IDE. VRML support. Then I thought "who'd ever use this?". A year or two later Unity became popular. Doh!

    Now its probably on the hard-drive of a computer in the rubbish tip.

    By the way, did I tell you about the time I invented Facebook before Facebook?

    Also I invented YouTube but it was not so good as you had to send and receive the videos by post on CD and VHS!
     
    GarBenjamin likes this.
  13. JasonBricco

    JasonBricco

    Joined:
    Jul 15, 2013
    Posts:
    956
    Unity is far, far from perfect and to assume that any other engine is 'reinventing Unity' is absurd. I, for one, would very likely choose this new engine over Unity and very likely will. Why? Because it does something huge that Unity doesn't do: gives me control by giving me the source. If that's not something you care about, that's fine. Use Unity. But all this 'reinventing' nonsense I think has to stop.
     
  14. neginfinity

    neginfinity

    Joined:
    Jan 27, 2013
    Posts:
    13,301
    At a quick glance the work looks quite solid to me. Projects of this kind can be very interesting to work on.

    It is not absurd.

    Unreal 4.
     
  15. Ryiah

    Ryiah

    Joined:
    Oct 11, 2012
    Posts:
    20,026
    Well technically if you have thousands of dollars laying around unused... :p
     
    JasonBricco likes this.
  16. JasonBricco

    JasonBricco

    Joined:
    Jul 15, 2013
    Posts:
    956
    Yes, you can technically buy Unity's source. It's so expensive that I forgot it was even an option...

    As for Unreal... yes, it gives the source. Obviously there's more to it than just having the source, but I didn't want to write a wall of text. Unreal was designed with different goals and seems to be (as far as I can tell) built for specific genres of games. It has a great deal of complexity to meet requirements for those types of games as well, which makes the source that much harder to work with. Granted, I haven't worked in its source and so I can't make any statements about it. I've just been under the impression that it isn't a good fit (I do procedural generation, don't prefer to use editors/static content in scenes, and mostly 2D).
     
  17. larku

    larku

    Joined:
    Mar 14, 2013
    Posts:
    1,422
    Kiwasi and JasonBricco like this.
  18. Deleted User

    Deleted User

    Guest

    It's not made for any type of game and as for as tool layden AAA engines go it's really simple to use. I'd say CE more meets your description.. Plus as soon as you learn Epic's "terminology" and how to navigate the somewhat clunky UI the iteration speed is ridiculously quick.

    As far as engines go, I'd say it's the pinnacle of achievement. Although as with every engine has some downsides..

    From the limited exposure I've had, Stingray seems to be the best compromise between Unity and Unreal. Runs very well on mobile / PC / Console. Has tons of decent middleware which addresses many gaping holes in Unity's infrastructure and is pretty stable plus it has the best art pipeline I've ever seen, it is pretty much what Unity should be IMO. It needs better doc's, rendering upgrades and I can live without LUA (C# component FTW) apart from that it's great.

    Reason I'm mentioning all this is, what would you really want from a modern 3D engine? That's not already covered by Unity / Unreal / Stingray / Xenko / Godot as @larku says?

    Personally I'd go for a component based C# (Stingray), with access to source.
     
  19. Kiwasi

    Kiwasi

    Joined:
    Dec 5, 2013
    Posts:
    16,860
    Split is pretty useful. There are plenty of development cases where the players view is not ideal to watch whatever you have just built.
     
  20. neginfinity

    neginfinity

    Joined:
    Jan 27, 2013
    Posts:
    13,301
    Sigh....
    It is not.

    It would be great if people stopped inventing ways to make life harder for themselves.

    "I want source!" -> "Unreal 4" -> "Nooooh, it is made for specific genre! Let's write new engine from scratch instead!!" :confused:

    Just why?
     
    ramand, macdude2, Kondor0 and 3 others like this.
  21. carking1996

    carking1996

    Joined:
    Jun 15, 2010
    Posts:
    2,605
    Let's not turn this into another derailed thread, let the guys post about the engine being worked on.
     
    Ryiah and frosted like this.
  22. frosted

    frosted

    Joined:
    Jan 17, 2014
    Posts:
    4,044
    Man, your UI is slick!

    How long have you been working on this?
     
  23. landon912

    landon912

    Joined:
    Nov 8, 2011
    Posts:
    1,579
    Looks really awesome! Tons of work, very impressive, especially for a one man band.

    I've too started down this journey about two months ago. I'm really interested in how you handle the editor/runtime schism. Would you mind if I use it as a reference? Fortunately for me, I made a lot of the same design choices; gives me a bit of validation that my first engine attempt isn't a complete failure. :p
     
  24. Martin_H

    Martin_H

    Joined:
    Jul 11, 2015
    Posts:
    4,433
    Maybe you should consider to go to patreon and crowdsource funding to work on this fulltime?
     
  25. JasonBricco

    JasonBricco

    Joined:
    Jul 15, 2013
    Posts:
    956
    First of all, it is. Just because it's technically possible to make any kind of game in it does NOT mean that's what the engine is built for/optimized for. Epic makes games, and Epic makes the engine for its games as a priority. Epic is not making the engine for other genres as a priority. This shows very clearly in the release notes for each update, which heavily focus around specific areas (graphics-intense open world 3D types of things). Let's look at 4.11.

    "A major effort for us over the last several months has been optimizing UE4 in order to get our next game, Paragon, running at 60fps on PC and PlayStation 4."

    "Realistic hair shading"

    "Realistic eye shading"

    "Improved skin shading"

    "Realistic cloth shading"

    "Capsule shadows"

    And if you keep going in that list, just about everything seems to revolve around realistic this, realistic that. What about those of us who don't care about realistic? I do pixel art. That engine is extremely overkill for what I want to do and that should be darn easy to understand.

    And the only relevant thing in the 4.11 release notes is the performance improvements. Which, surprise, are entirely based on them optimizing it for "their game".

    Furthermore, you must understand that some of us don't have decades of engine programming experience. I've entered the industry just a few years ago, you see. Do you think I'm going to be able to do anything with Unreal's source? Let's be realistic.

    I agree with carking1996 about derailing the thread. I have stated that I am interested in this engine because it does the basic things I need an engine to do, provides the source, lets me also use C# (unlike Godot), and doesn't have Unreal's insane complexity. That's why I support it. neginfinity, how about you let that be and stop trying to argue. You do what you do, I do what I do. What I do doesn't affect you, so leave me alone.
     
    Martin_H likes this.
  26. ZJP

    ZJP

    Joined:
    Jan 22, 2010
    Posts:
    2,649
    Impressive. Remenber me an another 'One-Man-Army-Engine' : the S2
     
    GarBenjamin and Deleted User like this.
  27. neginfinity

    neginfinity

    Joined:
    Jan 27, 2013
    Posts:
    13,301
    It means that the engine is 15 years ahead of yours.

    The good reasons for making engines are:

    1. You enjoy writing engines.
    2. You're getting paid for it.
    3. You're learning writing engines.

    The OP falls into #1 category, and he actually did a quite a good job (based on what I saw in the repo).

    Anyone else will be better off using whatever is available. Unless they have immortality pill.

    Funny how unity has none of it, though.

    Then why the hell do you need source code?
     
  28. Deleted User

    Deleted User

    Guest

    I wouldn't mind but S2 is actually a VERY impressive engine, really makes you wonder :D..

    @neginfinity I'm definatley under option #1.!
     
  29. RockoDyne

    RockoDyne

    Joined:
    Apr 10, 2014
    Posts:
    2,234
    And this is a good thing? Aren't we constantly bitching about how the worst parts of Unity are ten years old?
     
    Kiwasi, Martin_H and Ryiah like this.
  30. Ryiah

    Ryiah

    Joined:
    Oct 11, 2012
    Posts:
    20,026
    ZJP likes this.
  31. Ryiah

    Ryiah

    Joined:
    Oct 11, 2012
    Posts:
    20,026
    4. You're targeting a platform that has no existing engines. Or none that meet your needs (demo scene comes to mind).
     
  32. Deleted User

    Deleted User

    Guest

    Ryiah and landon912 like this.
  33. JasonBricco

    JasonBricco

    Joined:
    Jul 15, 2013
    Posts:
    956
    Well, the main reason is for bug fixing. I am tired of fighting Unity's various bugs that get in the way of production. For example, Unity freezing when I try to instantiate a specific number of my entity prefabs. (191 seemed to be the magic number - 191 worked fine, and 192 froze Unity, requiring a force shut down).

    The second reason is because I'm currently learning engine programming and would take comfort in knowing I have the control to be able to make changes in the future to improve my game in ways the engine doesn't allow me to as it is.

    I do not see how pixel art is relevant to needing source code. That's just a side effect of the fact that I'm not an artist. That doesn't mean I can't make complex, rich mechanics from the code side.

    Also, any engine writing I do myself is exactly #3 - learning. I would agree that it isn't a very practical thing to do. But I also don't think Unity and Unreal are perfect, and that there is a lot of space for improvement. They make be unarguably the best engines for several types of games/workflows. But there is room for engines that do other types of things better, or have different workflows that work better with some people. Unity and Unreal certainly don't do everything. Unreal may be 15 years ahead, but it's 15 years ahead in 'one' direction, of many possible directions that can be taken. Let other engines take other directions.

    I hate this idea that there can only be two engines and that apparently having any competition is a bad thing, and furthermore that anything else is 'reinventing the wheel' and shouldn't be done. That's a horrible way to end up having any engines that can be truly classified as 'wheels'.
     
    Not_Sure likes this.
  34. virror

    virror

    Joined:
    Feb 3, 2012
    Posts:
    2,963
    This looks very neat!
    Good luck : )
     
  35. Deleted User

    Deleted User

    Guest

    Thing is it's your opinion, doesn't make it fact. Yes, from a pixel art view paper2D has gone largely under the radar, it's not exactly the best mobile engine I've ever seen and it's workflow iteration is quite clunky.

    But it's not made for "specific genre's of games", that's nothing more than an opinion. I'm not talking about what's "technically" possible either. You can make pretty much any type of game you desire and it's a fact because people are doing it.

    Doesn't mean I disagree about the need for new and interesting ways to achieve a goal, as said they both have their problem areas and it can be done better. Some things could be done better with relatively little effort, so to stay on topic and help how's about specifying some features you'd like to see?
     
    neginfinity likes this.
  36. neginfinity

    neginfinity

    Joined:
    Jan 27, 2013
    Posts:
    13,301
    Yes, it is. Because when you'll start writing stuff from scratch you'll be writing bugs that the other engine fixed 7 years ago. Even if it is unity.

    Nope. You PORT the engine to the platform in this case. It will be still cheaper than making a brand new one.

    Ideally you should collaborate and reuse code/work made by others. When you compete, then both you and your competitor will be wasting each other's time reinventing the wheel just for the sake of it. That's how I see it.
     
  37. Ryiah

    Ryiah

    Joined:
    Oct 11, 2012
    Posts:
    20,026
    Only if the platform is capable of supporting the engine and you have access to the source for it.
     
  38. Player7

    Player7

    Joined:
    Oct 21, 2015
    Posts:
    1,533
    You complete mad man you :D

    I tried it few times (it crashes alot doing all sorts of things, like with adding a gui component, changing view layouts) ...added components can't be disabled only removed?, undo not working?

    The physx support works nicely though, but I can't say using the editor was a completely solid experience without crashes yet.

    but I'm sure you're aware of most of this and looking to get some more help on the project.

    "Website for the community"
    should bump that from Q2 2017 into like next week or next month... 2017 might be when the software becomes alot more usable, and as much as I like github as opposed to bleh bitbucket, the issue tracker is hardly a place to grow any sort of community that uses the software, bringing up bugs and talks about features, whos working on what etc it should engage outsiders to come check things out, and its one of those things you should start early as possible.

    "Is it actually better to split Scene View and game view? and i'm asking this to everyone actually."

    I like to have both views at once, scene view window being larger view than the game view. I'd probably have just one large view if there was a way of having picture in picture, quicker to switch back and forth on scene/game while still being able to see both views at once. I guess that's why I have both views open its the closet thing to that, though not great on screen space, and now that most post fx can be seen in the scene view (although unity still being slack and haven't updated most there own postfx example assets for that 5.4 feature yet) maybe I might switch to just having the game view on a tab for the same scene view window... maybe, pip would be better.

    "If that's not something you care about, that's fine. Use Unity. But all this 'reinventing' nonsense I think has to stop."

    yeh I'm perfectly fine with reinvented wheels, especially those new wheels that get the real basics of what they are reinventing right, or to what an industry standard has become.. makes it a lot easier for people to switch without much lingering feeling of missing something..generally even better if those reinvented wheels bring in much better ways of doing things or extra features, or open for anyone to add them easily. I'd like blender if it was more like maya or 3dsmax in basic workflow, at base min having similar hotkeys that do exact or similar things is a start though.. or gimp if it took more of what photoshop does right.. as none of these mainstream tools are perfect and there are tons of improvements that could be made and when its closed source its impossible, sometimes it just doesn't feel right to involved with very large projects. In many ways the very core design of how successful software works, is why they become so popular, as you can go back to much earlier versions them and still get most of the core workflow/production value out of them, maybe not so much game engines as they are constantly needing to keep up. So reinvented wheels and fresh starts are a good thing, if it wasn't allowed things would stagnate.

    "It needs better doc's, rendering upgrades and I can live without LUA (C# component FTW) apart from that it's great."
    Stingray's biggest downfall is LUA and just how Autodesk does things.
     
    landon912 and Deleted User like this.
  39. RockoDyne

    RockoDyne

    Joined:
    Apr 10, 2014
    Posts:
    2,234
    And why would a totally different engine stumble upon the exact same bugs as an old one? Even if you where modeling the architecture after an existing engine, wouldn't you base it off the current architecture (knowing full well what pitfalls they fell into) and not the old, broken one?

    Even if you try to reinvent the wheel, that doesn't mean you suddenly regress into a stone age understanding of how it works.
     
    Kiwasi likes this.
  40. virror

    virror

    Joined:
    Feb 3, 2012
    Posts:
    2,963
    I totally agree that a webpage could be a good thing to set up early if you want to get exposure and help/feedback. Just a forum could get you a long way. Somewhere ppl can come together and discuss, report issues and so on. This thread is not optimal for that ; )
     
    Ryiah likes this.
  41. neginfinity

    neginfinity

    Joined:
    Jan 27, 2013
    Posts:
    13,301
    Even if you do that, you wouldn't know most of the pitfalls and issues the existing engine already faced.

    It does. You often forget most of the details of the stuff you wrote two months ago. So, if you start from scratch, you'll repeat a lot of the mistakes even if you worked on the original engine. UE4 has 300 megabytes of source code. You won't be able to remember every detail of this kind of project, no matter who you are.
     
  42. JasonBricco

    JasonBricco

    Joined:
    Jul 15, 2013
    Posts:
    956
    I suppose C# shouldn't exist either, because its creation was 'reinventing the wheel' (since Java already existed). Why are we all using C# instead of Java? Maybe Unity should be using Java.
     
    Ryiah and landon912 like this.
  43. neginfinity

    neginfinity

    Joined:
    Jan 27, 2013
    Posts:
    13,301
    I agree with that.

    I think it went too far offtopic, though. Feel free to start another thread.

    To the OP: Good luck with the engine.
     
    Deleted User and JasonBricco like this.
  44. SunnySunshine

    SunnySunshine

    Joined:
    May 18, 2009
    Posts:
    952
    Looks like a very ambitious project, and extremely impressive for a 1 man team. Good luck!

    The thing I really like about Unity is the big community and how well documented it is, as well as the asset store and available resources in general. There is a sense of assurance and comfort being part of something so big. Even if another engine is more impressive, I wouldn't dare investing myself into something that might become abandonware - either due to lacking finances/business model or nonexistent community.
     
    Deleted User likes this.
  45. virror

    virror

    Joined:
    Feb 3, 2012
    Posts:
    2,963
    Exactly, thats why its really important to start building a community early on.
     
    Deleted User likes this.
  46. RockoDyne

    RockoDyne

    Joined:
    Apr 10, 2014
    Posts:
    2,234
    So old software is good because it's supposedly fixed issues that all software of this type are guaranteed to encounter (and fix in almost identical ways, too?), in parts of code that nobody understands anymore? Apparently there is only one way to solve every problem in the world, and there is no value to ever be had in looking back on a problem to try solving it differently.

    Frankly, the biggest problem in all of computing today is the fact that the solutions of the past have gimped the present. Good chunks of the Intel instruction sets go on wasting electricity and generating heat because next to nothing uses those instructions, but can never be taken out lest everything built on top of x86 will collapse. Windows was never built with the internet and security in mind (hell, the internet wasn't even built with security in mind), and I'm sure you know how well that's worked out.

    Software does not simply evolve and get better. Sometimes you have to throw out everything you have, to design for the problems you currently face. How long has it taken Unity to properly support streaming levels? Trick question since they're still working on it. Any engine seriously built in the last five years would consider this one of the most important factors to consider and solved any problems they were faced with, yet Unity is taking ages to get this right because it wasn't a serious consideration when it started.
     
  47. Ryiah

    Ryiah

    Joined:
    Oct 11, 2012
    Posts:
    20,026
    You make mention of UE4 yet if I recall correctly their latest release was a very heavy, if not complete, rewrite of UE3. It's not alone either as CryEngine V has a completely redesigned and rewritten core renderer (stated in their documentation).
     
    Last edited: May 11, 2016
    JasonBricco likes this.
  48. Deleted User

    Deleted User

    Guest

    Well, been speaking with @Bearish. Seems like a really nice dude.!

    Looks like it's not a one man project anymore, first thing I'll be working on is an automated OC solution. I'll do some work on the renderer and look to create a unified shader framework for terrain etc.

    Eventually work on a real-time GI solution (probably long down the lines / no promises).

    @Player7 Yes I agree with the community aspect, I hope Bearish does too. Nice to get some early feedback and a place to discuss it further.

    It would be rather trivial to have a pop out "game" view, so thanks for that.

    @neginfinity This is far from the first time doing something like this, so a lot of the "gotcha's" I have covered. Let's see how it goes.
     
    Last edited by a moderator: May 11, 2016
    kB11, Martin_H, Acissathar and 4 others like this.
  49. virror

    virror

    Joined:
    Feb 3, 2012
    Posts:
    2,963
    Now things are getting really interesting! : )
     
    Deleted User likes this.
  50. neginfinity

    neginfinity

    Joined:
    Jan 27, 2013
    Posts:
    13,301
    You know, the recommended defense against strawmen is setting your opponent on fire.
    This is offtopic, start different thread for this.
     
Thread Status:
Not open for further replies.