Should Unity go Open Source?

Should Unity open up it’s code base to everyone with a license to use it, so anyone with Pro?

In theory it would allow the community to help Unity find and fix bugs more quickly as well as improve and enhance Unity.

e.g. Private Site

Also if Unity were to be bought out or crash then the game engine could still be supported and maintained by the developers using it.

Or if you purchase Unity 5 and you are still working on your game when 6 or even 7 comes out you can still fix bugs and keep working on your game.

Actually could Unity open source 2.x, 3.x or 4.x the way other companies have open sources their previous games and game engines?

OR is Unity trying to be the ultimate do everything work on every platform game engine, and therefore it becomes a sub optimal solution if you are working on a specific platform as Unity has limited time and budget to fix bugs and get itself working on new platforms and graphical API’s.

But with an Open Source approach dedicated professionals could utilise and optimise it for their target platforms and provide improvements to the engine.

And Yes I know there is a source license, but that costs a lot and probably allows big companies to use Unity and totally change and revamp it without any requirement to provide Unity with those improvements.

3 Likes

Hasn’t this been discussed to death yet? If Unity wants to go open source, they’ll go open source.

Plus things like the GUI have already been made open source.

2 Likes

https://bitbucket.org/Unity-Technologies

Optimizations and improvements welcome!

3 Likes

Yes, yes it has…

So you have open sourced a lot of the building components/tools/utils that are used within Unity but this is not the Unity game engine, the core or heart of the beast.

How much do you pay for improvements? :wink:

I suggest a free asset or something.

1 Like

Could you link to previous threads I did a search and didn’t hit anything significant?

You can purchase the source-code.

Yes I know.
The aim of going open source is to encourage and reward your community for helping improve and enhance the engine with minimal friction.

You can’t really go open source and still maintain the same degree of middle-ware for no additional cost. Either you will keep the middle-ware or you will get an open source engine. Take your pick.

1 Like

Open Source Unity? For eight years, I was co-leader of Delta3D - an open-source game engine for serious games. It involved THOUSANDS of hours, multiple book chapters, and one award winning game. I FULLY grok open-source - and firmly believe that Open-source is not appropriate for Unity. Plus, Unity Free is pretty darn amazing.

Gigi

PS - There are numerous open source 3D engines including: Ogre3D, Delta3D, Irlicht (sp), and Open Scene Graph.

2 Likes

Yes. So what? Are you saying that the core of the engine is the only place where people could make improvements?

1 Like

Well, my originally getting involved in trying to submit a fix for Mono played a significant part in my getting a job with Unity, so… :slight_smile:

Well as Unity has control of the inner game loop and it tends to be in regular loops where the best optimisations can be made then I would think this is probably where most games could gain the most from optimisation.

But hey what do I know, you tell me are there optimisation bugs or performance bugs on the books and where are they in the code base?

I think you’re mixing up ‘inner’ and ‘outer’ loops.

Sure thing. For starters, how about 594320? The following code allocates 24 bytes when run in Unity:

void LoopOverList(List<int> list) {
    foreach(int i in list) { }
}

Note that the same code does not allocate 24 bytes when it is compiled by Visual Studio’s C# compiler and run in the project as a DLL, rather than being compiled by Unity as a loose script. The IL generated by the two compilers is different.

As a solution, you’ll want to look into the use of the ‘.constrained’ opcode for method invocation. That part’s easy but you’ll also have to make it work with AOT compilation for generics sharing (which is where I got stuck when looking at this bug before).

1 Like

Also, as far as things in the core of Unity itself goes: we ship symbols, so it’s already entirely possible for you to do a lot of performance investigation work.

Back when I was just a beta tester I identified performance and multithreading bugs just using symbols and a couple of profilers, and come up with some theories about how the engine was behaving and what it should be doing differently. Contacting the developers responsible with my findings led to very quick fixes.

3 Likes

That’s cool. BTW what are symbols?

“Super pig!” - Oink, oink!
Gigi

1 Like

See and how much more could the community help out with the source code, not only could they locate performance bottlenecks they could submit improvements.

Look Unity Technologies have at most a few hundred staff working to deadlines and working within ‘Silos’, their own specific regions of the engine and probably for specific platforms.

Now in the community you have thousands of very talented developers/academics/physicists and with a closed black box system Unity is locking itself out of all those test cases and performance optimisations.

Instead you are getting bug reports and frustrated users.

What was that saying you can work smarter or you can work harder?!

Your competitors appear to be working smarter, where will you be in a few years?!