Unity Blog

blogs.unity3d.com · Company blog · on HN since 2008

Unity's official blog, where the game engine's developers write about scripting, performance, garbage collection, and platform features.

What HN saysHN links it for engine internals like the incremental garbage collector and UI changes; one commenter calls Unity's constantly changing systems a mess.
190HN people shared it
80linked it in comments
185stories submitted
1.6Kstory points
5 years agolast shared
2008people per year2026

Most-shared posts

  1. 1
    Unity's response to Improbable’s blog post
    11 people · 54 points · first shared 2019 · 6 comments on HN
  2. 2
    The future of scripting in Unity3D
    7 people · 4 points · first shared 2014 · discussion on HN
  3. 3
    Data-Oriented Tech Stack C++ & C#
    6 people · 6 points · first shared 2019 · discussion on HN
  4. 4
    Unity Feature Preview: Incremental Garbage Collection
    6 people · 2 points · first shared 2018 · discussion on HN
  5. 5
    Releasing the Unity C# source code
    5 people · 28 points · first shared 2018 · 6 comments on HN
  6. 6
    Benchmarking Unity performance in WebGL
    5 people · 10 points · first shared 2014 · discussion on HN
  7. 7
    UnityScript’s long ride off into the sunset
    5 people · 8 points · first shared 2017 · discussion on HN
  8. 8
    Unity3D – WebGL: WebAssembly and feature roadmap
    5 people · 5 points · first shared 2015 · discussion on HN
  9. 9
    Updated WebGL Benchmark Results
    4 people · 47 points · first shared 2015 · 16 comments on HN
  10. 10
    Unity joins the .NET Foundation
    4 people · 5 points · first shared 2016 · discussion on HN
  11. 11
    Unity and the iPhone OS 4.0
    4 people · 2 points · first shared 2010 · discussion on HN
  12. 12
    On the future of Web publishing in Unity
    3 people · 58 points · first shared 2014 · 23 comments on HN
  13. 13
    Introducing Unity Machine Learning Agents
    3 people · 25 points · first shared 2017 · 2 comments on HN
  14. 14
    Introducing Unity 2017
    3 people · 19 points · first shared 2017 · 1 comments on HN
  15. 15

What HN people wrote when they linked it

BoorishBears · 2020-02-05
Unity used to take advantage of overloading to implement null checking with "sentinel values" representing a non-existent reference in the Editor I found this post explaining they considered moving away from the pattern, but I'm not sure if they followed through: https://blogs.unity3d.com/2014/05/16/custom-operator-should-we-keep-it…
ArtWomb · 2019-09-21
You're right, this is a good discussion! Unity introduced an incremental GC that splits the work over several frames, essentially performing an entire sweep "for free" https://blogs.unity3d.com/2018/11/26/feature-preview-incremental-garba… I have mad respect for all using low level C / Assembly / Rust in gamedev. But I have a hard time recommending anything other than C# / Unity for secondary school 14-15 year olds just starting their journey. The wealth of resources, tutorials and community online is astounding. And as an entrypoint into VR / AR it's difficult to top ;)
yonilevy · 2019-04-27
FWIW, Unity are moving away from ImGUI (to a classic retained mode UI system) https://blogs.unity3d.com/2019/04/23/whats-new-with-uielements-in-2019…
reitzensteinm · 2014-10-17
This looks fantastic. I'm a full time Unity developer that uses Clojure for all non gaming tasks, so I'm pretty much the perfect target market. My only concern is - do you have any way to have compatibility with IL2CPP[1]? As I understand it, there's a preview of the exporter already in Unity 5. Without it, WebGL will not work, and it would not be a surprise to see similar technology used for iPhone deployments in the future (which is specifically where the Mono licensing problem comes from due to the static linking requirements). http://blogs.unity3d.com/2014/04/29/on-the-future-of-web-publishing-in…
drawkbox · 2020-05-22
I have been using Unity since 2008 version 2 before the Unity iPhone even and I have to agree. It is a mess. There has never been a time in Unity where systems aren't changing. APIs should be simple facades to ugly systems underneath, abstracting away the pain, but Unity puts it right in your face. Their editor is pushed over code first solutions. I thought when they went subscription that it would calm down, as before that it was a mad rush to justify you upgrading to the next version. It has only gotten worse. From the dual particle systems (which Shuriken wasn't even code accessible for a time), killing off simple legacy animation APIs, the UI years and years of delay and still not really as good as NGUI in terms of simplicity and mobile performance, the multiplayer systems have never been great they should have just kept RakNet/enet based reliable UDP and been done with it only Photon is worth it, the bulky editor first solutions that really should be code first and then editors that use that and on and on. Compare that with Unreal that is wonderful in terms of networking/replication, solid platform that is C++ first, decent platform support, Unity has more but lots of issues. Unity is what we develop most games on but Unreal starting to become more regular. Unity is caught in a pickle. Unreal is winning high end, Unity wants to be them, but they are leaving their smaller developers that do mobile/2D/simple 3D and making everything overly complex, while Godot is…
DonHopkins · 2016-12-17
I've been researching JSON serialization/deserialization libraries for Unity, and I'm writing a spreadsheet comparing the different alternatives. Unity JSON Libraries: https://docs.google.com/spreadsheets/d/1NoIYASJR9uUT-kZxjb54zWX2Lr3EXp… Unity is limited by the fact that it uses an older version of .NET 2.0, or even preferably a .NET 2.0 subset. It can also be optimized by disabling exceptions. And most importantly on AOT-compiled platforms like iOS and consoles, it doesn't support dynamic JIT compilation and interfaces like Reflection.Emit, which some of the high performance JSON serialization libraries use for optimization. So the question of "Why is reflection so slow?" is very interesting to me as a Unity iOS developer, since I'm forced to use it without all the fancy optimizations (or figure out how to avoid using it). Some of the big fancy luxurious all dancing all singing JSON libraries intended for less restricted CLR platforms like Windows do all kinds of amazing tricks to reduce and optimize their use of reflection. Some of those have been stripped down and ported to Unity, but others haven't. JSON.Net is one of the most advanced feature-rich C# JSON libraries, and it is free, but it is not the fastest. The free version doesn't run on Unity out of the box, but there is a striped down simplified version that runs on Unity available on the Unity Asset Store for $25. JSON.NET home page: http://www.newtonsoft.com/json JSON.Net…
sunfish · 2014-10-30
For historical reasons, every language that wanted one built their own SIMD API instead of building a language-independent API first: C++, C#, Dart, OpenCL, and so on, and it's not easy to go back and change that. However, there is a lot of commonality between the SIMD APIs in those languages, so we are following de-facto standards here. And, we certainly do have real-world use cases in mind. See [0] for one example. We're also interested in using SIMD for video codec development which can't always be done on GPUs. [0] http://blogs.unity3d.com/2014/10/07/benchmarking-unity-performance-in-… And if, in the future, Apple can show that auto-vectorization in this domain is more successful than their attempts so far have shown it to be, then JS engines can always just go back to implementing SIMD.js via a simple polyfill which the engine can auto-vectorize, leaving very little baggage in the language or implementations.
SimHacker · 2013-08-13
Flash is dead. Adobe proved they weren't serious about flash when they announced licensing restrictions, 9% "revenue sharing" and hoops you have to jump through in order to use the "premium" 3d stuff. They eventually changed their mind about the 9% revenue tax after developers revolted, but the damage was done now that everyone knows they'd even think of doing something like that. And they drove the nail in the coffin (which Steve Jobs supplied), when they gave up on Flash for mobile. http://www.forbes.com/sites/ericsavitz/2011/11/09/adobe-to-stop-work-o… "Flash Player 11.1 is the last release of the Flash Player plug-in for mobile browsers. Adobe will not add support for new mobile device configurations (chipset, browser, OS version, etc.). Adobe will continue to provide critical bug fixes and security updates for existing device configurations through September 2013, and will also allow our source-code licensees to continue working on and releasing their own implementations." http://www.adobe.com/devnet/flashplatform/whitepapers/roadmap.html There is no future for Flash. Adobe's all about HTML5 now, they don't give a shit about Flash any more, and neither should you. Unity3D went to great efforts to support Flash, and now they're sunsetting it, for good reason: Unity wrote on their blog: http://blogs.unity3d.com/2013/04/23/sunsetting-flash/ We don’t see Adobe being firmly committed to the future development of Flash. This is evidenced by…
cellis · 2012-03-28
I don't really see a problem with this. From the Unity3D blog [1]. Adobe announced a brand new licensing structure for Flash games You should definitely read the details as Adobe explains them here: www.adobe.com/go/fpl and here: http://www.adobe.com/devnet/flashplayer/articles/premium-features-lice… The short version is that Adobe is introducing a new revenue share licensing model where they will take a revenue share from some content publishers. Adobe will charge publishers 9% of only the revenues directly caused by the game which exceed $50K. If revenue is not directly caused by the game you pay nothing. i.e. An online teaser level for a iOS / Android game, a car company having a realtime 3d demo of their newest model which you can inspect and drive around, a 3d walkthrough for a library, etc, all would not pay the revenue share. We see this as Flash positioning itself alongside other well known distribution channels: make money through the App Store, Apple takes a share. Make money through the Android Market place, Google takes a share. Make money through Flash, Adobe takes a share. It’s also worth noting that the new Adobe license will prohibit scenarios where you’d have the first level of a game in the Flash Player, and the full experience inside the Unity Web Player. Alas, this is something you’ll need to be aware of if you were considering such a route. You see, Flash is not web technology.Neither is iOS, or Android. Flash was web tech, a long,long…
tomh- · 2010-04-12
From what I know their TOS applies to everything which is posted to the Appstore. As hundreds of people already pointed out by the wording of the TOS, both Unity3d and Flash are in violation of it. It doesn't matter if Unity is a pre-processor or cross-compiler or whatever, the apps are not _originally_ written in objective-c, c++ or c. This is the official response regarding their contact with apple: "We haven’t heard anything from Apple about this affecting us, and we believe that with hundreds of titles (or probably over a thousand by now), including a significant proportion of the best selling ones, we’re adding so much value to the iPhone ecosystem that Apple can’t possibly want to shut that down. Our current best guess is that we’ll be fine. But it would obviously be irresponsible to guarantee that. What I can guarantee is that we’ll continue to do everything in our power to make this work, and that we will be here to inform you when we know more – as soon as we know more." source: http://blogs.unity3d.com/2010/04/10/unity-and-the-iphone-os-4-0/
andrewmcwatters · 2020-11-09
I'm not making comments about bevy. I'm talking about game engines in general. > Not to mention that you evidently don't _have to_ do this, seeing as how in Unity you're basically forced to work with raw sockets. I don't know how old you are, but by the time 1999 rolled around, id Software had produced essentially the same multiplayer client-side prediction model that has been in major use to this day. It hasn't fundamentally changed. The fact that Unity cannot reproduce 20+ year old tech is a joke, not an example. In fact, UNET was such a joke it basically tried to ignore this fundamentally unchangeable architecture and they ended up canning it in the end.[1] [1]: https://blogs.unity3d.com/2019/06/13/navigating-unitys-multiplayer-net…
gridlockd · 2020-07-02
In principle, Javascript on modern JIT can approach roughly 40-80% of the performance of C++, more or less across the board, not just in some toy benchmark. This benchmark is from 2014: https://blogs.unity3d.com/2014/10/07/benchmarking-unity-performance-in… Granted, this benchmark is for generated Javascript, not "idiomatic Javascript" (if there is such a thing). Of course you can write arbitrarily slow Javascript as well. There's a lot of stuff that can throw a wrench into the JIT.
Rotten194 · 2020-06-20
Interesting! Reminds me of the Unity shader graph editor -- the visualization of in-between nodes of the computation graph. For example: https://blogs.unity3d.com/wp-content/uploads/2018/02/image2.jpg
thedirt0115 · 2020-05-22
This is correct, they released the source code a couple years ago under a reference license. https://blogs.unity3d.com/2018/03/26/releasing-the-unity-c-source-code… https://github.com/Unity-Technologies/UnityCsReference
pjmlp · 2020-05-22
Yes, "Unity wins its first Technology and Engineering Emmy Award" https://blogs.unity3d.com/2018/11/21/unity-wins-its-first-technology-a… "Creators pushing the boundaries of storytelling in Sundance's New Frontier 2019" https://www.youtube.com/watch?v=XhHuqvnAzyo "Unite Los Angeles 2018 - Films Made with Unity" https://www.youtube.com/watch?v=gbYX8PXX8qc "What's ahead for film and animation with Unity 2020 - Unite Copenhagen" https://www.youtube.com/watch?v=wrc3R-BoDGs
martindevans · 2020-02-04
Unity has recently added the "incremental GC" [1] which spreads the work of the GC over multiple frames. As I understand it this has a lower overall throughput, but _much_ better worst case latency. [1] https://blogs.unity3d.com/2018/11/26/feature-preview-incremental-garba…
pastrami_panda · 2019-12-14
Yes you're technically correct but the time slicing makes it practically different. More here: https://blogs.unity3d.com/2018/11/26/feature-preview-incremental-garba…
60654 · 2019-04-25
Oh, they're switching to RMGUI in the editor as well, though more slowly. More info here: https://blogs.unity3d.com/2019/04/23/whats-new-with-uielements-in-2019…
golergka · 2019-03-03
You mean, something like this? https://blogs.unity3d.com/2019/02/26/on-dots-c-c/ TLDR: arguably the most popular game engine of our time has already implemented exactly that (although in more of an experimental and unstable stage yet).
ecuzzillo · 2019-03-03
https://blogs.unity3d.com/2019/02/26/on-dots-c-c/ has a high-level overview for why not C++. Moreover, Unity has invested heavily in the c#/.net/mono ecosystem; the editor runs on mono, and the runtimes are all either IL2CPP (an in-house translation from .NET bytecode to C++) or mono as well. It would be a truly crazy amount of work to switch, for little or no clear benefit. If one were picking a language today to write an engine in, Rust might be a reasonable competitor, but it's also fairly new and is arguably less noob-friendly. C# offers a nice ramp from new programmer to performance-critical AAA with burst.
gnlnx · 2019-02-16
FWIW the latest versions of Unity are moving in the direction of exposing more of the render pipeline ... Whether you agree or not with doing it through C# is a different question but they are pretty invested in the language ... From my perspective, this approach is a decent compromise for someone that wants to build a render pipeline (basically define how objects are drawn to the screen) on top of an abstraction of the different graphics APIs for all the platforms they support while still maintaining all the other functionality provided by Unity for gameplay and tooling https://blogs.unity3d.com/2018/01/31/srp-overview/
FrankDixon · 2019-01-11
probably, but it's not clear that they're not in the right: https://blogs.unity3d.com/2019/01/10/our-response-to-improbables-blog-…
CosmicBagel · 2019-01-11
They cleared up this concern in their blog post: https://blogs.unity3d.com/2019/01/10/our-response-to-improbables-blog-…
Flenser · 2019-01-11
Unity's blog post refutes a lot of what Improbable claim about released and in production games: https://blogs.unity3d.com/2019/01/10/our-response-to-improbables-blog-…
galacticpony2 · 2019-01-11
Basically, know what does and doesn't allocate heap memory, don't give the GC more work than it can handle and measure on the target hardware. Do it right at the start of development and consider things like object pooling and the new ECS, if necessary. Understand how your GC works: https://blogs.unity3d.com/2018/11/26/feature-preview-incremental-garba… It's not about performance in 99% of frames, it's about not dropping frames when the GC kicks in and needs more time than your budget accounts for.

Keyboard shortcuts

/Search
j kNext / previous blog
EnterOpen selected blog
vVisit the blog site
fFollow / unfollow
lSwitch grid / list view
dSwitch dark mode
g hHome
g pTop posts
g tTopics
g fFollowing
g lLiked
g yHistory
g qFAQ
EscBack / close