Search Unity

Our community is full of users who rely on Unity — whether it be for work, for play, or both. Knowing that, we’ve been thinking about new ways we can engage our community and provide a better user experience. One of the initiatives we’ve decided on is to start sharing the source for selected components of Unity. With access to the source for components (or tools related to Unity), we hope to:

  • Reduce risk by giving you control of things that are commonly used
  • Increase the flexibility and applicability of components by giving you the power to customize them
  • Enable you to extend Unity in ways that were previously just not possible

To do this, we’re going to start hosting components’ source over at our home on BitBucket. We’ve also prepared a Guide for Contributors that is now part of our user manual.

What exactly will you open the source to?gui-screen-shot-clothified

We’re starting this project by making the recently-updated source to the Unity Test Tools available on BitBucket in a repository ready for you to fork, modify, and even open pull requests with contributions if you wish.

The next component we plan to give you the source to (unless we get something else ready before then!) is the long-awaited new UI system. We’re convinced you’ll do awesome things with the source once you get it in your hands.

Beyond that, we don’t have a concrete plan, but we have a lot of things in the pipeline. These components (like the new UI system) will all be isolated from Unity in such a way that you can modify them and use your own modified version with the official public Unity release.

mit-license-smallWhat license is the source released under?

We are using MIT/X11 as our standard license. We’ve never been a fan of a revenue sharing model, and we have a similar opinion about the license for our open-source components; we didn’t want to burden you with licenses that restrict what you can do with the source code.

Because we’re releasing our source under an MIT/X11 license, we’re also expecting contributions we accept from the community to be contributed under an MIT/X11 license.

Do I need Unity Pro?

Nope! The source is available to everyone, regardless of what Unity license you have.

Unity’s History with Open-Source

Unity has been participating in other open-source projects for quite some time. Our scripting engine is based on Mono and we keep our fork of Mono open on GitHub, as well as our open-source shader cross-compilation tools (hlsl2glslfork and glsl-optimizer). We also use a lot of open-source tools internally: our build/test automation server and lives on BitBucket, as do custom extensions to Mercurial, the version control system we use. Unity Technologies employs several developers to contribute to the open-source projects that we we use (check out a list of our contributions to the Mercurial project as an example).

A new era? We hope so!

Although Unity Technologies has been active in the open-source community for quite some time, this is the first time we’ll be opening the source to components of Unity itself. We’re excited to see what you do with it.

52 replies on “More Open-Source Initiatives from Unity”

Going to chime in with other users here and say you should really be using GitHub instead of BitBucket. Personally, the code being in BitBucket would deter me from contributing.

I don’t see why people are complaining about the choice of bitbucket over github. It doesn’t matter much which git service you use, it’s just git, and the advantage of being able to use mercurial as well is significant. The main argument for github is community / SEO, but people will come looking for Unity so that’s not an issue.

(In practical terms, bitbucket lets you store private code for free and github doesn’t. That’s a huge benefit of bitbucket. This allows you to use the same service for Unity open source and your own private code without paying expensive fees.)

Any plans for a Linux version of Unity (the app, not as a bin target; I know and use that already!). Either way, this initiative is greatly appreciated!

Hi Unity3d! Bit of noob. I welcome this exchange. Trade is the most important model. I am a bit indie as well working on a project with team. We are mostly artists, learning everything possible about Unity3d. I am not a programmer, but am the most inclined of my team to be one. I ask on their behalf, the team, what exactly do you do with source code for the UI? I may invent something, I may not, but I haven’t taken any computer programming classes. What if I made a game engine of my own/our doing and just plopped it in there? What language is the UI source going to be in? Can we make wrappers for it? How do we organize this fundamental new change in the UI other then the api and source help list? I learned the old gui like this back in 2010 by making a school prototype for class. My first exposure to the Unity product and community way back. I am excited but all that time I grew as an artist, and now inching forward to follow my desire to be a technical artist in the form of contribution. Last question does this mean we can make a GUI for our games using Ubuntu to develop on and then independently posting it back to our main components in the competent land of Windows and Mac. If its isolated, isn’t it isolated? This would shave development off wouldn’t it?

The component I’d love to see open sourced is your navmesh system. I’d say it is pretty much the same as recast, but some internal changes in your part made them incompatible (IIRC, a byte was changed to a word in the binary data).

It currently has limitations, like navmeshes being static, which I’d love to remove. The games I make tend to have scenes built out of movable components, and being able to carry those navmeshes around would make things a lot easier.

@Prabhakaran: as long the sprites for the images are in the same atlas is 1 drawcall, regardless of how many buttons. Text effects such as shadow and outline can be found under UI/Effects/ in the components menu.

Hi Unity Team,

I have Some Concern with the new GUI, Previously i was using quad for because it did batch and i have less draw calls eventhough i have more GUIElements to Address.

will the new GUI will count as 1Draw call for each object or What ?

And in this version also i dont Find Shadow and Outline stuffs for Text. As it is a big headache to keep two text one behind other or using images.

Will that be here or what ?

If these are there it could be much more effective.

Thanks for the Wonderful Unity Engine.

Sorry, but it is not enough! And too late! Now you are giving source of SOME components and consider it enough? No, sorry, it is not! Especially, when there is UE4 for $19 month with FULL source code and tons of features. So who, really will use partial source access, game developers? Hardly! If they need source access they already have chosen better alternatives. The only guys, I can imagine will use partial source access are developers of some third party components to sell for $$$. Soon we will seee a bunch of new SHITGui, WanabeGui etc. in market place. And why all this happens? Because the engine does not have good UI system of it’s own! Now I see Unity guys are not going to add must have features to the engine (such as GUI system, morph animation support etc. etc.) they are going to attract third party developers, to produce tons of sh** for asset store. Great! Do it in your way.
Good day.

Thumbs up for your effort. You really are becoming more awesome. I’ll await for the full UI module. And yes it makes no sense to fight over hosting solutions, you got the source.

@MIHAI you need a font which supports those symbols ;-)

[…] announced the open beta of Unity 4.6.  Along with that announcement was news that they would be open sourcing a much of their new UI system along with other open source projects that I didn’t actually know […]

Let’s make this simple. Thank you Unity for finally opening up a bit!
I will buy the upgrade to Unity 5 now, because I trust you will take this further :) . Without this decision, I would’ve been a goner right after my next plugin release :D

To everyone else, let’s find and fix all of them bugs in the 4.6 gui system to show them how much they can benefit from this :) [ gee, I feel elevated :D ]

Hi,
do you already know when you are going to release the UI Stuff or is their any newsletter or feed I can subscribe?

thx

[…] It might also interest you that the new GUI will also go Open Source along with other unity components. You can read more about it here. […]

Wonderful news! As prbably all developers I love opensource and think Unity will only benefit from this. Hope this project will develop and help even more starting game developers

Please open source the particle system! Its so abysmal and I’m happy extend it. I do FX work for AAA and just dread having to make any FX stuff with Shuriken. Even just adding various forces would be awesome and the algebra for them is pretty trivial. I’d tackle it!

Hei guys. I came here for help.Please is there a way to type mathematical symbols in unity gui(radicals, integrals, etc). I cant find a solutin even if i am serching on the internet for months.
P.S. Sorry for bad english :D

awesome! you guys should make alt versions of components to choose from. like choosing one tag system or multiple tag system.

the unity community is mostly programmers. if your going to be merging source from users…. unity is about to explode with awesome stuff. cant wait! keep up the awesome Unity!

This is great. I’d love to see you guys open source a lot of the minor components, like line/trail renderer.

Im not sure if this is a feature request or if it would resolve itself by open sourcing – being able to manipulate all the modules in shuriken through code. Character controllers, input-system would be nice too…I guess eventually everything :D

This talk of “waaa, github” is pure idiocy. The “community” isn’t “at” Github, or BitBucket, or CodePlex, or Google Code, or… wherever.

THE COMMUNITY IS HERE.

It doesn’t matter where the f*** the code is at, anyone can access it.

Thanks Na’Tosha and the rest of Unity! :)

Is this another motivation as to why you guys are trying to break up Unity into modules, to avoid code conflicts if I perhaps want to use a modified version of the GUI system, or is that handled some other way? Thanks!

Sorry for spamming, I didn’t refresh the page before posting -)
Anyway – what are the other candidates except the UI for open sourcing ? In other words what could be potentially isolated in such a way that could be used with official build ?
Similar what @BREYER asks I guess

I wonder that unity in future make same decision for next components? Maybe shuriken/mecanim? Unity consider open source some editor side (front-end) components (like Animation window, shuriken/region curves visual editor and so on) They definitely could be improve (like set keyframe position from keyboard instead of visually set it or visually track curve feature for debugging in curve editor). these things are mostly C# and based on Unity GUI (old) so, theoretically there shouldnt be problem with license on 3rd party plugin

Since my own projects are hosted on Bitbucket, I very welcome the decision!:) If community want to contribute, it is very easy to create an account there, don’t be so lazy, you already get so much value for free!

If the idea is to get the community involved, then you probably should go where the community is (github) and not let technology (Hg) be the deciding factor. At least consider mirroring to your existing “Unity Technologies” account so the github community can follow your work.

Thanks for opening up some of your source!

Comments are closed.