More Open-Source Initiatives from Unity

August 20, 2014 in Technology

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.

Comments (52)

Subscribe to comments
  1. Ash Blue

    September 26, 2014 at 7:24 pm / 

    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.

  2. leizzer

    September 15, 2014 at 10:10 pm / 

    Congratulations!!! I’m very happy

  3. Na'Tosha Bard

    September 11, 2014 at 10:25 am / 

    Once again, let’s all stay on topic. This is a post about our open-sourcing initiative, not a discussion about the pros and cons of different hosting solutions.

  4. Tonio Loewald

    September 11, 2014 at 7:04 am / 

    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.)

  5. Pleng

    September 2, 2014 at 5:54 am / 

    I’d love to see the input system open sourced…

  6. Na'Tosha Bard

    August 28, 2014 at 12:49 pm / 

    @SEV, We haven’t announced anything regarding a Linux editor.

  7. Sev

    August 28, 2014 at 1:53 am / 

    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!

  8. Joseph Doan

    August 25, 2014 at 10:08 am / 

    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?

    1. Na'Tosha Bard

      August 25, 2014 at 10:37 pm / 

      @Joseph Doan: The license will allow you to modify and redistribute the source for the UI anywhere, including outside of Unity (but seeing as how the UI relies on API calls in UnityEngine.dll, you won’t find it very useful outside of Unity). You will be able to develop for the UI on any platform you can get it to compile on, but, again, it won’t be particularly useful outside of your project in the Unity Editor (which runs on Windows and Mac).

  9. Paul

    August 25, 2014 at 8:23 am / 

    Unity has made the indie developer’s life so much easier. Salute to UT!

  10. Elideb

    August 23, 2014 at 8:19 pm / 

    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.

  11. Mike Croswell

    August 23, 2014 at 2:32 am / 

    This is really awesome! I, and the rest of the IGDA Unity SIG folks, will be following this as it unfolds!

  12. Na'Tosha Bard

    August 22, 2014 at 4:43 pm / 

    @Makumba, we *are* adding the new UI system (have a look yourself in the 4.6 beta open to everyone); we are just also giving you the source. We are also the biggest fans of our Asset Store developer community and the content they create.

  13. Na'Tosha Bard

    August 22, 2014 at 4:35 pm / 

    @JAN, the UI just went into open beta; we are currently planning to ship its source once 4.6 is final.

  14. Gonarch

    August 22, 2014 at 1:51 pm / 

    @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.

  15. Prabhakaran

    August 22, 2014 at 11:35 am / 

    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.

  16. Makumba Makumbre

    August 22, 2014 at 10:41 am / 

    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.

  17. cowlinator

    August 22, 2014 at 2:43 am / 

    WWW! Oh please let WWW be exposed!

    I think this is a wonderful initiative =)

  18. TurnTheGameOn

    August 21, 2014 at 11:48 pm / 

    Open Source Components.. This is great news for Unity Developers. Thanks Unity!

  19. TurnTheGameOn

    August 21, 2014 at 11:46 pm / 

    Very cool, I can’t wait to see how this plays out.

  20. Abhi

    August 21, 2014 at 9:46 pm / 

    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 ;-)

  21. kiriri

    August 21, 2014 at 6:20 pm / 

    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 ]

  22. Jan

    August 21, 2014 at 3:28 pm / 

    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

  23. Victoria

    August 21, 2014 at 10:58 am / 

    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

  24. Pip Robbins

    August 21, 2014 at 10:39 am / 

    Very exciting :)

    Great move from Unity in my opinion.

  25. STACTIC

    August 21, 2014 at 9:00 am / 

    This is perfect! It’s always good to see how things are made internally!

    1. Hannie

      October 10, 2014 at 1:03 am / 

      Thanks for shiganr. What a pleasure to read!

    2. Far

      October 14, 2014 at 4:00 am / 

      I feel sateifsid after reading that one.

  26. matthew radford

    August 21, 2014 at 3:48 am / 

    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!

  27. Mihai

    August 21, 2014 at 2:04 am / 

    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

  28. CynicatPro

    August 21, 2014 at 1:21 am / 

    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!

  29. Dave Freeman

    August 21, 2014 at 1:05 am / 

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

  30. Daniel

    August 21, 2014 at 12:27 am / 

    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

  31. Na'Tosha Bard

    August 20, 2014 at 11:34 pm / 

    @RPOLE, @NATHAN: We have some ideas internally about what we would like to open-source, but we aren’t ready to announce anything quite yet. This is indeed quite related to our modularization efforts — the same work that makes it possible for us to ship a component as a module is what allows us to make it so that we can extract the source, provide it to you, and let you replace the built-in version with your own modified version.

  32. ReallyWTF

    August 20, 2014 at 11:26 pm / 

    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.

  33. Nathan

    August 20, 2014 at 11:11 pm / 

    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!

  34. rpole

    August 20, 2014 at 11:03 pm / 

    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

  35. rpole

    August 20, 2014 at 10:48 pm / 

    @FLASHFOXTER who is ‘we’ ?
    also, would reading previous one hour old commnents hurt so much ?!

  36. Breyer

    August 20, 2014 at 10:08 pm / 

    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

  37. Richard Griffiths

    August 20, 2014 at 9:51 pm / 

    This is excellent news Unity. Thank you for open sourcing the UI. I can see great things in the future.

  38. Chris L

    August 20, 2014 at 9:20 pm / 

    Good choice, Hg all the way – I prefer it myself.

  39. Lior Tal

    August 20, 2014 at 8:53 pm / 

    Congrats! Looking forwRd to checking out teh codez

  40. Na'Tosha Bard

    August 20, 2014 at 8:30 pm / 

    Guys, there are various technical reasons for why we are on BitBucket that we have no reason to go over here in the comments; a bit of the background is addressed in the contributors guide linked above. Of course nothing is set in stone; we may change what we are doing in the future — especially as we gain some experience with how rolling out our internal tech goes — but for now, we are on BitBucket (where you can use your GitHub account).

    Let’s keep the rest of the comments on-topic about open-sourcing and what it means for you. It would be quite interesting to hear about what systems you would like to be able to see source for and also how you envision modifying the UI system (which is now in open beta).

  41. Andrew

    August 20, 2014 at 8:30 pm / 

    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!

  42. Tylo

    August 20, 2014 at 8:23 pm / 

    Github vs BitBucket

    Ah, religions.

  43. flashfoxter

    August 20, 2014 at 8:01 pm / 

    Why Bitbucket ? We want github

  44. Tomek

    August 20, 2014 at 7:42 pm / 

    Good news. Sharing of code will help create games and learning programming

  45. Frederico Zveiter

    August 20, 2014 at 7:40 pm / 

    Excellent news! Many thanks and congratulations on the initiative!

  46. Skjorn

    August 20, 2014 at 7:35 pm / 

    Great news! I support open-source with all my heart.

  47. Robert Wahler

    August 20, 2014 at 7:33 pm / 

    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!

  48. Na'Tosha Bard

    August 20, 2014 at 6:49 pm / 

    @Alexander: The question of why we are using BitBucket instead of GitHub (or something else) is addressed in the Contributor FAQ: http://docs.unity3d.com/Manual/ContributingFAQ.html

  49. Alexander Mironov

    August 20, 2014 at 6:45 pm / 

    Why don’t you use GitHub? It has much more active community.

Comments are closed.