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!
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.
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.
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.
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 :)…
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.
Now this is interesting, seems like a great project. I’ll keep a watch on it
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
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!
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.
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).
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.