[HN Gopher] Unity Software Inc S-1 ___________________________________________________________________ Unity Software Inc S-1 Author : swyx Score : 355 points Date : 2020-08-24 15:26 UTC (7 hours ago) (HTM) web link (www.sec.gov) (TXT) w3m dump (www.sec.gov) | supernova87a wrote: | It is clear from the financials that in the coming months/years, | they will be pressured (or simply need to) cut back massively on | R&D, marketing, etc. | | They have a gross profit margin of 78% in the last 2 years | (revenue - direct operating costs), but then if you subtract R&D, | sales + marketing, admin, it drops to -30% net profit. | | Not even knowing that much about them, you can see what's about | to happen. | swyx wrote: | this is the story of almost every tech company at ipo, whats | the big deal? | flexie wrote: | Very, very few Danish tech startups are listed. There are | literally years in between, unless you count NASDAQ First North. | I guess this is the way to do it :-) | ingenieros wrote: | Are they even still Danish though? They moved their HQ to San | Francisco years ago and the filing clearly shows they are | incorporated in Delaware. | whoisjuan wrote: | Is Unity Danish anymore? I mean, it got started in Copenhagen | and its founder is Danish but that's the extent of it. | | I don't think people say Basecamp is a Danish company just | because DHH is Danish. | | Not trying to poke holes at your statement. Just genuinely | curious on what determines where a company is from. In my book, | headquarters location is the baseline. | ppaattrriicckk wrote: | According to the Danish Companies House they haven't been | very Danish since 2015. They've moved ownership 100% to | Singapore (and from there, who knows). | | Still 300 FTEs in Denmark, though. | | https://datacvr.virk.dk/data/visenhed?enhedstype=virksomhed&. | .. (the original company with David Helgason etc) | | https://datacvr.virk.dk/data/visenhed?enhedstype=virksomhed&. | .. (IP company) | | https://datacvr.virk.dk/data/visenhed?enhedstype=person&id=4. | .. (reference to the Singaporean company) | tick_tock_tick wrote: | How attached to Denmark are they still? I know they moved head | quarters to SF a while ago but do any of the C levels still | work/live in Denmark? | caymanjim wrote: | There's no mention of Apple here, but I suspect the timing of | this is directly related to Apple threatening to cut off Epic's | SDK access due to the fight over app purchase fees. This was | almost certainly in the works already, but now they need to | accelerate it. | reaperhulk wrote: | In my experience it is exceedingly difficult to meaningfully | accelerate the timelines on publishing an S-1. There are too | many lawyers, financial audits, investor roadshow schedules, et | cetera. This is likely pure coincidence. | JamesSwift wrote: | Thats what I assumed as well, and anecdotally I personally | researched if Unity was publicly traded after the Epic v. Apple | news so I could buy some shares. | VonGuard wrote: | This should be a monster. We have no direct game development | tools exposure on the stock market, unless you count Autodesk, | but their tools are usable by other industries. That means it's | gonna be shouldering a burden for an entire industry, and one | that the stock market doesn't understand or appreciate. Potential | for going either way, really. | | Development tools have traditionally been a poor investment long | term, but that's not been the case since about 2010, especially | since Atlassian went public. | | Unity is also gonna be a proxy for Unreal. Since these two | competitors are not directly competing on the stock market, Unity | should be a bit of a mirror for what the market thinks Unreal | would be worth on its own. | binky wrote: | Excellent point with regard to dev tools not being a successful | LT investment, with Oracle being an exception. I find Atalassia | being sellers of dev "app", a standalone final product rather | than a component in an overall solution that is effectively tax | on every copy. | JamesSwift wrote: | I agree until you say Unity will proxy Unreal. I intentionally | looked for investment options for Unity in order to possibly | _short_ Unreal based on the recent Epic v. Apple news. | qppo wrote: | Think less as in development tools and more as in content | tools, and how hard it is to pick a winner for content (but | it's been obvious that content is exploding!). Games and AR/VR | are just another form of content. | | I put some money into a strategy around the proverbial shovel | salesmen for content creation last year, and I really wish I | put in more and bought the dip harder. | chrisseaton wrote: | > That means it's gonna be shouldering a burden for an entire | industry | | > Unity is also gonna be a proxy for Unreal | | Why do you think it has to do all these things? Why can't it | just be a stock on its own? | wastedhours wrote: | There's always a sector influence on the valuation of stocks | - if an analyst writes a report saying the gaming sector as a | whole is going to grow 1000x in the next 10 years, you can | bet people will be looking for stocks to ride that wave. | | If Unity is the only buyable stock in the sector, then | they'll feel the impact. | Trasmatta wrote: | There are lots of existing stocks in the gaming sector | though, so it would need to be more like "game engines are | going to grow 1000x". | MaximumMadness wrote: | Not 100% sure I agree with analysis, for two reasons: | | 1. While the primary use case of Unity originally may have been | game dev, the ubiquity of the software for other use cases | (primarily VR/AR and other forms of online media) has been | what's propelled it to this level. | | 2. Epic Games is much much more than the Unreal Engine. Highly | recommend looking into Matthew Balls' Epic Primer [1], but | Unreal is one corner of the Epic flywheel. Which is probably | why they opted to raise a billion [2] in funding recently | instead of IPO-ing post-Fortnite | | [1]https://www.matthewball.vc/all/epicgamesprimermaster [2] | https://venturebeat.com/2020/08/06/epic-games-unveils-1-78-b... | nshm wrote: | Audio recording API in Unity is awful, you can only record a | short clip on button press and thats it. No continuous listening, | no sample rate configuration, no realtime. And processing thread | changes from version to version. We had big trouble implementing | speech recognition with Vosk in Unity. | asou wrote: | Ehh. | | I really hope Unity raises tons of money , and inspires some | decent competition here. | | Unity is the worst game engine, aside from all others. UE4 is a | convoluted mess. I've tired several times , but even getting it | setup with the C++ build chain is a pain. | | Godot ( which epic funded recently ) isn't done yet. | | I'm going to stick with Unity until someone else can build an | easy to use game engine. Ultimately Unity does tons of very | difficult things, like I wouldn't want to write build systems for | a half dozen platforms solo. | | The asset store is easily Unity's greatest advantage. With about | 1000$ and a month you can make a full playable games. I also owe | Unity my career. I work far from game design , but Unity taught | me how to program. | | In my dream Valve releases Source 2 , it's just as easy to use as | Unity and then game developers have a real choice. | | Or I get a spare 600k to build something in UE4. I'm a fairly | experienced programer and I still can't make heads or tails of it | furyofantares wrote: | I'm a highly experienced programmer and I can't get started | with Unity. Maybe I'm just an old curmudgeon now. But I just | want to see some code and drive from code. The workflow of | starting from objects and scenes in a GUI and attaching scripts | is totally foreign to me. And then most of the tutorials seem | to be videos, which I have no patience for, with text I can | skip around and tailor my learning to my personal needs. And | then I have no idea how to predict if any given video or | documentation or sample project is out of date. It's extremely | frustrating and makes me feel dumb and old. | virgil_disgr4ce wrote: | Have you done any game programming before? A heavy reliance | on an interactive GUI is very common because there are many | things for which you want visual interactivity, such as | placing 3D objects in relation to each other. That kind of | task is either difficult or impossible to do effectively | purely in code. | furyofantares wrote: | I have. Placing objects in an editor is obviously | essential, I agree. I just expect to find code at the | bottom driving it, loading the map etc, and it doesn't seem | like any example projects or learning documentation for | Unity is geared that way. Basically I expect to follow code | at the bottom until it loads some asset, which may create a | bunch of objects, and register some scripts. Then I return | to the code which can then get those objects if it wants. | zemo wrote: | sure but like, you don't have that expectation of a | browser, right? Like to write a web page, you don't | create an instance of an HTML parser and call a parse | method on some text, and then walk the tree and tell it | to draw each element, right? Same deal. Just think of the | scene as being a DOM in three dimensions. | swimik wrote: | I work on AAA games and this is exactly how I feel, | especially about the online ecosystem around Unity, it's a | big pile of garbage with maybe 1% of it being reasonable, | best-practices documentation/advice. | squeaky-clean wrote: | I originally had this mindset. Still kind of do. But the way | of managing things through gameobjects, serializable | components, and the scene hierarchy UI is very beneficial | when you have non-programmers working on your game with you. | | It's annoying when you're a solo dev who wants to handle | everything in code, but they're definitely trying to optimize | the workflow for a small diverse team rather than for a | programmer or group of only programmers. | | > And then I have no idea how to predict if any given video | or documentation or sample project is out of date. | | 100% agree with this. I wish I could just buy a comprehensive | book on an older version of Unity and stay on that as long as | I can. But I can't really find much for more advanced Unity | that doesn't exist as a video or GDC talk. (though an | exception would be the catlikecoding tutorials) | zemo wrote: | > the way of managing things through gameobjects, | serializable components, and the scene hierarchy UI is very | beneficial when you have non-programmers working on your | game with you. | | honestly it's extremely useful even if you're an | experienced programmer working alone. Being able to pause | the simulation, move some objects around in space, and then | resume the simulation is extremely powerful. Typing out the | coordinates into code would: be ridiculously tedious -and- | force you to commit to disk (by writing the files) the | changes to something you really only need in memory. Being | able to play with the state of the simulation by hand is | extremely powerful. | zemo wrote: | the old tutorials were better. Roll-a-Ball is still the best | intro. | | honestly just think of the scene as being analogous to a | browser DOM and learn which methods the game engine invokes | on the objects and in which order. That's described here: | https://docs.unity3d.com/Manual/ExecutionOrder.html | [deleted] | BiteCode_dev wrote: | Isn't UE4 free for all use cases under a million dollar of | revenue ? | asou wrote: | My joke was it takes a much larger team to get anything done | in UE4 . | | I couldn't imagine solo dev on an Unreal Project . | tiborsaas wrote: | We tried it for a hackathon and after a day or so we got | some stuff going. Of course it's a monster engine, but you | can learn it as a side project, then after a month you can | start building something. I don't see why a solo dev | couldn't handle it. | asou wrote: | C++ is hard. | | The available learning resources for Unity are much | better than they are for UE4. I want to add X to my game, | I Google it and find ether an asset or open source | project within minutes . | | For my current project I found a half dozen templates to | start from. Everything in UDK was ether half done or | abandoned. | | Of course both , or even rolling your own , are fine. | tiborsaas wrote: | True, we haven't touched C++, only the blueprint editor. | It takes you far. | goodcjw2 wrote: | Unfortunately , "ease of use" and "one tool fits all" are a | pair of conflicting features. Unity really does a fantastic job | in this regard. | | Ultimately, well resourced team may choose to develop their own | engine for the flexibility. | jarsin wrote: | I think unreal is easier to use than Unity because Unreal comes | with batteries included. Unity you have to fill all the gaps | with 3rd party asset store plugins and deal with all their | weirdness etc. | | Unity's recent changes into everything is a package is a total | mess and reminds me of how Rails became a mess after it tried | to move everything out of core and into gems. | asou wrote: | I'd rather buy a 3rd party asset for the exact type of game I | want to make. | | You still have to put in effort, but if you find the right | assets it can really make things happen faster. | | The training material for Unity is above and beyond UE4. Any | type of game you want to create already has a template on the | Asset Store. UE's asset store is still packing . | TootsMagoon wrote: | ^^^This...Can't be understated what a mess Unity is right | now. Meanwhile Epic with Unreal 5 is simplifying its pipeline | and looks better and better. | m0guz wrote: | I remember one Unity developer was talking about how Package | Manager will enable them to deliver smaller install/download | size on top of easy to update core functionality. This was | like 2-3 years ago. Unity 2017 for Win64 download size is | around 500MB today, Unity 2020 with Package Manager is 1.7GB | johnfn wrote: | I'm quite bearish on Unity in the long run. | | Unity to me seems like a team with a fantastic marketing | department to contrast with a much weaker engineering department. | I've tried to use Unity off and on for years and every time I | spend time learning it, I regret it. I'm a full-time React | developer, and the difference in engineering culture and best | engineering practices between Unity and React is massive. The | Unity experience is riddled with bugs, poorly-thought-out | workflows, and half-finished or obsolete features. Simple tasks, | more often than not, become an exercise in frustration. I've | written a blog post about this[1], though it's incomplete (mostly | because somewhere after writing the 2000th word I wondered why I | was even using Unity at all) so I've never published it anywhere. | | I've honestly wondered a lot why Unity is successful at all, and | the only answer I can really come to is that their direct | competition - Unreal Engine, and a few other studio-made engines | like CryEngine - are even worse. (Which leads to another | question: why is it so hard to make a good game engine? But that | would be another thousand words, so let's not stray too far from | the point...) Godot is a glimmer on the horizon, but it looks | like it still needs a few years to catch up. | | I also have a sneaking suspicion that Unity is successful because | it is used by a lot of people as their introduction into | programming, and they simply don't know that anything better is | possible. | | Still, I suspect that most developers who use Unity will | eventually reach the same conclusion and move on, and this seems | to be confirmed by the google trends graph, which has been | sloping steadily downwards over the last 5 years or so[2]. | | [1]: | https://www.notion.so/UnityIsFundamentallyBroken-e3b1474e7af... | | [2]: | https://trends.google.com/trends/explore?date=all&geo=US&q=%... | erlend_sh wrote: | If you're interested in Rust, you might like Bevy: | | https://bevyengine.org/news/introducing-bevy/ | | A lot of people with experience in React are influencing the UI | design. | johnfn wrote: | Very excited about Bevy. Course, if Godot is young, then Bevy | is practically a newborn. :-) Still, I resonate very strongly | with a lot of things that the Bevy authors care about. | [deleted] | abj wrote: | > I'm quite bearish on Unity in the long run | | Unity definitely seems like it has lost sight of what made the | engine rise to prominence in 2010-2015. | | > I've honestly wondered a lot why Unity is successful at all | | Unity was the least painful way to develop your hobby game and | have it run on multiple platforms for people (artists, new game | devs) who reasonably didn't want to leave a GUI. | | > Why is it so hard to make a good game engine? | | Really great question. I wonder if it's because the list of | useful features grows so fast. | | Imagine you make an engine from scratch. Great news! You have a | 3D cube rendering successfully. | | Now you'd like to walk around the cube. You now need a system | to handle input. | | Maybe you'd like to import geometry into the engine? You now | need to write an import script. | | Maybe you'd like a pbr shader on the cube. You've written a pbr | shader, but artists don't want to edit the source of the | shader. So then there's an ever expanding slider/node system as | shaders get more and more complex. | | Each of these small features quickly become giant wish lists | filled with complexity. | | One way to handle this complexity is to have a great open | source community like Godot, which tirelessly develops feature | and feature. In the last 10 years, the expected features of an | engine have grow so large that it's hard for newcomers to | compete. | | In Unity it's not exceptionally easy to find the "correct" way | of doing things because these engines are balls of mud, with | system after system pilled on top. | | Which is why we've ended up with hard to use large engines and | easy to use small engines. | volkk wrote: | Alternatively, I found Unity super intuitive and | straightforward when learning game dev. I was doing some random | 2D platformer tutorials on udemy, along with a bunch of others | and I always thought it was almost..easy to build that kind of | game. I'm sure 3D is a different beast. | | Full time I'm an SWE, and I realized the way you structure your | code depends on you. Disclaimer: I didn't get VERY far and | didn't make huge games so maybe things become extremely painful | later on. But for learning, it's a really great tool | nabla9 wrote: | Is Unity still "Easy to build, impossible to maintain", | always breaking code after you upgrade? | ezconnect wrote: | Yes, that's why you can have different versions of it on | your development PC and run the version you are using. | OneGuy123 wrote: | Comparing a web library to game engine is a bit of a stretch. | | Unity is very nice to develop actually. It's a lot more simple | than UE4 for example, but UE4 is much better suited for more | complicated games, but then again, Subnautica is made in Unity, | so Unity is very flexible. | | Neither is "bad" or "worse". Unity is obviously not perfect, | but video game engines move and change all the time, that is | the nature of the video game industry. | | Unity is mostly used for mobile video games, to which UE4 is | not that much suited because it's more complicated and requires | a better phone + the apk size will be larger in the end. | davnicwil wrote: | > Comparing a web library to game engine is a bit of a | stretch | | I don't necessarily disagree, but an interesting thing to | point out here is that a lot of the inspiration for React in | fact came from game engines! | | The ideas around virtual dom diffs, figuring out the minimum | necessary set of deltas, and only rendering those because | that's the slow part, in particular. | johnfn wrote: | It's really not as much of a stretch as you might think. | | Let's put aside everything that the two libraries actually | _do_ for a second, and just think about them in the abstract. | React very clearly tries to _guide the developer towards | correct patterns and abstractions._ It 's clear that React | developers have thought very deeply about how to lead | engineers towards the happy path of code with fewer bugs in | it. It throws loud errors and warnings if you do something | that could even potentially lead to an error down the line. | They deprecate and eventually remove broken features. And it | almost goes without saying, but they finish the features | they're working on, rather than leaving them in the codebase | in a half-finished state. | | Unity does none of these things. Unity doesn't mark old | features as deprecated: you could be using a deprecated or | obsolete API for months without ever recognizing it because | the only communication Unity gives you is a post on the Unity | blog post from years ago. (This has happened to be multiple | times.) Unity doesn't tell you when you're doing something | wrong - you can still StartCoroutine with a string, even | though you should be using a function reference. Unity | absolutely does not try to lead your code towards the happy | path of fewer bugs - GetComponent<>, possibly the most used | Unity function, can easily trigger bugs because Unity does | not statically verify that the component you're looking up | exists, so if you forget and remove it later, your code will | crash. React is very intentionally designed _not_ to have | problems like this. | | I wrote like 4000 words on this topic, if you want more | detail. Feel free to dig in if you'd like: https://www.notion | .so/UnityIsFundamentallyBroken-e3b1474e7af... | TremendousJudge wrote: | I'm currently learning unity, and even for very, very basic | stuff it's impossible to know what's the "correct" or | "intended" way of using the engine | ImprobableTruth wrote: | >GetComponent<>, possibly the most used Unity function, can | easily trigger bugs because Unity does not statically | verify that the component you're looking up exists | | I'm pretty sure checking this statically is simply | fundamentally impossible since components can be removed at | runtime. | DonHopkins wrote: | You should usually only call GetComponent<> in your Awake | function, then cache the result in a strongly typed | instance variable. This is widely known standard | operating procedure with Unity. | | IDEs like Rider will highlight and warn you about using | GetComponent in performance critical contexts like your | Update method. | | https://blog.jetbrains.com/dotnet/2019/02/21/performance- | ind... | | >Unity has a number of methods that get called very | frequently. For example, MonoBehaviour.Update is called | every frame, as is LateUpdate, and FixedUpdate can even | be called multiple times in a single frame. Rider treats | all of these methods as performance-critical, and will | highlight the method in the editor gutter. | | [...] | | >Once inside a performance-critical context, Rider | enables a number of inspections: | | >Avoid usage of GetComponent methods | | >Avoid usage of Find methods | | >Avoid usage of AddComponent | | >Avoid string based method invocation (Invoke, | SendMessage, etc.) | | >Avoid Camera.main | | >Avoid null comparisons for Unity objects | | >The links above will take you to the documentation pages | for each of the inspections, which provide more details | of why the method calls are highlighted, and what you can | do to avoid them. You can get to this documentation | straight from Rider, like with many other inspections, | with the "Why is Rider suggesting this?" Alt+Enter menu | item. | johnfn wrote: | Totally and completely agree with everything you've said, | but the fact that Rider - a 3rd party IDE - has to ensure | all these things rather than them being baked into Unity | is part of the problem. | DonHopkins wrote: | But Unity isn't an IDE, it's a game engine. Totally | different things. Better for Unity to spend their time | and energy on the game engine and editor, not making yet | another half-assed IDE. Developing an entire IDE simply | isn't in their wheelhouse. While it's a lot easier for | somebody like Rider who already has a full blown C# IDE | to support Unity. | johnfn wrote: | The thing is, avoiding usage of certain functions - like | Find, Invoke, SendMessage, etc - does not have to be done | at the IDE level. In fact, it shouldn't be, and the fact | that Rider has to do these things is kind of a kludge | already. These methods should be marked obsolete - or at | the very least, they should have docstrings saying not to | use them. Observe how the docs for SendMessage don't even | discourage its use, for example: https://docs.unity3d.com | /ScriptReference/GameObject.SendMess... | ezconnect wrote: | Unity is a game engine first, the quality of their | product will suffer if they have to teach all their user | to program properly. | johnfn wrote: | I can't understand how this is the case. Unity is a game | engine which keeps users mostly by instilling goodwill | that it's a productive environment and is saving them | time over using another engine or homebrewing one. It | would therefore seem to be in its best interest to | prevent them from creating bugs where possible. | johnfn wrote: | That's true, but I've always thought that removing | components at runtime is such a rare thing to do, and the | cost of allowing it on an engine level - inability to | statically verify components - is such a high price to | pay that the tradeoff just doesn't make sense. | | If I was czar of Unity (ha!) I would never have allowed | AddComponent and RemoveComponent to be a thing - I would | have required the user to add all of the components they | expect to need at edit time instead. The dynamism that | Unity currently affords rarely improves my game, but it | does lead to a lot of bugs. If users really want to turn | components on and off, they could have an enabled flag. | DonHopkins wrote: | Well so much for dynamic and procedural and data driven | content, under your reign as Unity Czar. People use Unity | for a lot more than Flappy Bird clones, you know. | | Components do have an enabled flag. | | https://docs.unity3d.com/ScriptReference/Behaviour- | enabled.h... | johnfn wrote: | Well, I would certainly hope that as my reign as Unity | Czar would include guidelines for storing procedural | content somewhere other than in Components :) | | I mean, if you're adding a new component to a GameObject | for every room in your dungeon or something, you're doing | something very wrong. At least in my opinion! | nikki93 wrote: | Being able to add / remove components then query based on | component sets an entity has is an important part of ECS | data driven design, which Unity is trying to move to with | eg. DOTS. Just leads to less branching etc. once your | data is prepared. I'd rather just have my code express | expectations upfront then query the entities that match, | vs. needing to handle a combinatorial explosion of | if/else based on existence checks. | xex70 wrote: | AAA here. Actually, it is a stretch, because you're | expecting an entirely different discipline of software | development to reflect the trends, knowledge, and | assumptions of your discipline. We are a CryEngine shop but | I've used Unity extensively for MVP pitches, spec work, and | side projects. I also left the Web vertical to do this so I | still have context from your side as well. | | I took the time to read what you've written. Just about | every single point you made in that essay can be distilled | to "Web developer with strong convictions about Web | software engineering and expecting game development to look | like familiar territory," with only a couple exceptions. I | read that essay and I walk away with "that person is going | to have a hard time if they pursue professional game | development," not the intended conclusion you had about | Unity's lackings. That's reflected in nearly every concern | about Unity expressed in this thread because this is a Web | forum. | | Unity has deficiencies we are all aware of in the industry, | but none of them are in your essay. Several of your points | are misunderstandings, several are just wrong, and all of | them paint a picture which also gives a lot of AAA shops | pause about hiring Web folks (and that I've had to deal | with): there's a pretty strong strain among the Web | industry of "if you don't do software like FAANG does, | you're doing it wrong and your stuff is terrible." | Meanwhile, the stuff you call bad/terrible/worse is | generating billions in revenue and employing thousands. | Seriously, Unreal is worse than Unity? Nearly stopped | reading there. | | I'm reminded of a friend who does control development for | factories and had someone come in straight from a Google | internship who started trying to reimplement SCADA from | first principles using Kubernetes. The Web is one way to do | software engineering. There are others, and one of those | others is reflected in the design of Unity. | tikhonj wrote: | Game programming _isn 't_--or at least _shouldn 't be_-- | so different from other fields that fundamental software | engineering principles do not apply. It seems like | discarding criticism just because it comes from outside | the immediate industry is going to lead to an insular | culture and get in the way of any real change or | progress. | | Doubly so for an industry that still has high-profile, | highly funded projects (Battlefield V, Anthem... etc) | flounder because of technical debt and poor tooling. (And | yes, these issues are all downstream of awful management | for those particular projects, but that doesn't change | the technical side of things!) | tikhonj wrote: | This goes in the other direction too: other fields can | and should borrow ideas from game programming. At the end | of the day the goals of different software projects are | pretty comparable: we all want to produce quality code, | minimize bugs and do it as quickly and productively as we | can. The details and trade-offs aren't identical, to be | sure, but at the end of the day different programming | fields are far more alike than not. | stevofolife wrote: | Your first paragraph is like saying ship building, plane | building or car building isn't or shouldn't be so | different from one another. Wait what? | johnfn wrote: | I'll happily hear examples of things which are | "misunderstandings" or "just wrong". As your post stands, | it's nothing more than a long extended ad-hominem - it | roughly boils down to "your post is wrong, but I'm not | going to tell you why." | | I accept that Unity and Unreal Engine are doing fine | financially and will probably continue to do so for a | long time. That's no reason that they can also have | issues. | xex70 wrote: | Quote one sentence where I attacked you personally. I was | quite careful to speak about your essay and its | conclusions from the perspective of the intended | audience, and if you think I'm going to engage after | having that called an ad hominem, you don't really | understand the investment of time that would entail and | why I'm strongly disincentivized. | johnfn wrote: | A few quotes that I found particularly rough include: | | > Several of your points are misunderstandings, several | are just wrong | | Like I said, I'd be happy to hear ways that I can | improve. You saying that I am wrong but not providing | specifics makes me feel bad without a way to improve my | thinking. | | > "that person is going to have a hard time if they | pursue professional game development," | | You're passing judgement on my professional abilities, | which makes me feel pretty bad. It's also an ad hominem: | you've stopped attacking my argument and you've started | attacking my professional character. | | > "if you don't do software like FAANG does, you're doing | it wrong and your stuff is terrible." | | Is it really necessary to include the thing about FAANG? | I'm not even employed by FAANG. To me it feels like | you're casting me out to be a FAANG elitist, which feels | pretty alienating. It's also an ad hominem: you've | stopped attacking my argument and you've started | attacking me as a FAANG employee. | | > all of them paint a picture which also gives a lot of | AAA shops pause about hiring Web folks | | Is the absolute "all of them" really necessary? That you | dismissed every one of my points is pretty rough. Can you | imagine if you wrote a 4000 word post and someone said | "yeah I read it and every point you made gives me pause." | and that's all they said, no further explanation? You'd | probably be pretty frustrated, wondering what could | possibly be wrong, but having no clue with which to even | start understanding their different perspective. | | > I'm reminded of a friend who does control development | for factories and had someone come in straight from a | Google internship who started trying to reimplement SCADA | from first principles using Kubernetes. | | You're comparing me to a friend that overengineers | things. If you have specific things you think I'm | overengineering, I'm happy to hear them, but a comparison | like this without any concrete steps makes me feel bad | without providing me a way to improve. | xex70 wrote: | Perhaps your error is marrying yourself to your creative | output and taking criticism thereof personally. Your | essay is all over the place and plays a tune many folks | in AAA have heard from many folks who got their start in | Web development, and I was illustrating the broader | context that, again, makes your intended audience develop | that conclusion. Honestly, it reads like a projection of | your expectations of software development, and that's | what I'm trying to tell you. | | I was not accusing you of overengineering, I'm not | accusing you of working for FAANG (I don't even know you, | come on), I was making the point that people default to | where they're comfortable, and if you're going to put | yourself in a a position of authority and claim that | Unity is bad (and Unreal is worse), you need to be | comfortable in the environment and practices in which | they are intended to be used. There is a minimum level of | comprehension required to criticize an implement of | another profession, otherwise someone proficient in COBOL | would pick up a torque wrench and ask "why is this | necessary? This design is just bad." | | You used subjective indictment terms ("bad," "worse") to | describe positions that you don't have experience to | develop. That's fine. Elevate your argument and | understand the _why_ behind some of them. Example: we | don't give two shits about deprecations because they're a | distraction from a ship date and we ship vendored | artifacts including the engine. | | You selectively quoted more than one thing I said to | twist a personal attack from them, by the way, but that's | your prerogative. It's also odd to do when you're crying | ad hominem foul. | | Edit: I took the time to read your essay, respond to it | candidly, and we are ending this conversation with you | lecturing me on tone, politeness, and productivity. Even | in the face of great hems and haws I doubly endeavored to | remain polite. One would be forgiven for thinking you are | not approachable with criticism. | johnfn wrote: | EDIT: Fair enough, I'll remove my lecturing. | | I understand your point about not elucidating the _why_. | Thing is, I 'm not an AAA developer, so often times I | don't know. | | All I'd like to know is a bit more on why specific points | my essay were wrong. Like, if you don't think the thing | about clearing the Debug window is correct, I'd like to | know why that is. | SXX wrote: | I'm too lazy to write 1000 word essay from my phone, but | having a bit of experience in both webdev and c++ gamedev | on custom engine I certainly can say one truth here. | | FAANG literally spend billions of dollars on developer | tools alone, not even including browser runtime itself. | There are thousands of engineers who work full time to | make web and tools both fast and easy to use. There is | also tons of open source developers competing to create | best tools for other developers. And let's be honest | tasks that average web developer has it's not rocket | science. | | Gamedev is nothing like this: resources are ever limited, | budgets are tights, and there is almost never ending | crunch to release ASAP. Till recently every AAA company | mostly used it's own tech and everything was not only | proprietary, but always closed source so only papers were | shared. Oh there also proprietary secret under-NDA | targets called consoles where you cant just expect user | to buy faster hw and more RAM. And skills you expected to | have to work in AAA as C++ programmer can be more than in | let's say SpaceX. | | So first of all you don't see how much better gamedev | tools became in last decade. Other issue is that no one | gonna hold your hand and force you into best practices | because all games are mostly built of hacks and if you | gonna enforce some strict rules it's mean developers wont | be able to get those extra FPS, or better network latency | or some absolutely unsupported feature that no one ever | needed before. | andybak wrote: | > Unity doesn't mark old features as deprecated | | Are you sure? My IDE (Rider) shows gives me a tooltip for | any methods that Unity has declared deprecated. There's | also console warnings and big notices at the top of the | docs. | | Package Manager also clearly marks certain packages as | experimental or deprecated. | johnfn wrote: | Absolutely. Here's a few examples, though I could produce | a hundred more: | | AssetBundles. Not marked as obsolete. Not marked as | deprecated. Unity docs look fine, with no references to | anything else you should do: https://docs.unity3d.com/Scr | iptReference/AssetBundle.html. They are in fact obsolete | anyways. See here: | https://learn.unity.com/tutorial/assets-resources-and- | assetb... "this tutorial has now been deprecated. We now | recommend using Addressables for your projects" | | EditorUtility.SetDirty(). Rider says "Marks target object | as dirty. (Only suitable for non-scene objects)" and it's | not marked obsolete or deprecated. Seems fine, right? | Nope, it's been deprecated since 5.3. To their credit, | the full Unity docs do reference this, but who is going | to consult Unity docs for literally every Unity function | they ever use, in their entire project? It should be | right in the IDE. Better yet, the function shouldn't even | exist! Unity 5.3 came out over 5 years ago! | Vermeulen wrote: | The 'Addressables' are a abstraction layer on TOP of | AssetBundles. AssetBundles aren't deprecated. | | Honestly most of the criticisms you've gave are you not | understanding how something works - like GetComponent. I | do agree with you on 'null' though! And how Unity uses | it. I think that decision came from them trying to make | it more beginner friendly to deal with destroyed/removed | objects when it first started - then they had to live | with it | johnfn wrote: | If X is built on top of Y, and I should generally be | using X, then the docs for Y should absolutely say that. | Burying that away in some hard-to-find tutorial is not | good practice. We could argue for a while over the exact | semantic meaning of 'deprecate' and whether Y is truly | deprecated if 99% of the time when you use it you should | really be using X instead. But I'd hope that we can both | agree on the central point of my argument here, which is | that in Unity it's often incredibly difficult to figure | out which of 5 vaguely-similar-looking APIs you should be | using, and it's a bad sign when the best source of info | is a "coming soon!" message on an out-of-date tutorial | not even linked from the documentation. | | Perhaps you should explain how I've misunderstood | GetComponent. | Vermeulen wrote: | The whole purpose of using 'GetComponent' in code is to | get the component reference at runtime. Saying it's a | problem that it doesn't statically verify it exists, | doesn't make any sense | johnfn wrote: | I understand that GetComponent is a runtime lookup, and | what I'm arguing is that _Unity made the wrong choice._ | Runtime lookups lead to more bugs. They lead to slower | code. | | The best practices that have sprouted up around | GetComponent say "Use GetComponent<> only in Awake(), and | don't use AddComponent or RemoveComponent at all." But | once you start following all these best practices, you've | lost all the benefits of having GetComponent be dynamic | in the first place. So just enforce it at a code level, | and give me the benefits of static typechecking and | compile time errors when I screw things up. | andybak wrote: | Hmmmm. Is it possible that a tutorial is deprecated | without the actual feature itself being deprecated? i.e. | there's no intent to get rid of AssetBundles in the near | future but they don't want people who are just starting | out to go down that path? | | I can see that's a gray area (you are kinda deprecating | it by doing this) but the strict definition of | deprecation probably involves a pledge to remove that | feature in a certain timeframe. | | I'd be much happier to bitch about the stuff Unity has | officially deprecated without having a good timetable for | a replacement (Networking, Real-time GI) or done a | terrible job of communicating the situation (Steam VR is | "not officially supported" sounded pretty apocalyptic | whereas it turned out to be not quite so bad - Valve had | taken over responsibility for support and their solution | was released to beta with a month of the doom and gloom | corporate-speak announcement) | johnfn wrote: | Maybe we're talking about two different things? To me, | once you add a new feature intended to replace an old | one, the old feature should be deprecated and should | eventually be removed. Even if you _can_ use | AssetBundles, there 's no reason you ever _should_ | because they 've been superseded. | | I've always thought that that is deprecation, but I could | see your argument that it's not. | | Fortunately I haven't had to deal with the officially | deprecated features without a clear replacement. I can | imagine that would be very frustrating. | dmurray wrote: | > Even if you can use AssetBundles, there's no reason you | ever should because they've been superseded. | | You might have to use a superseded feature because you're | maintaining old code. If Unity cares about backwards | compatibility (admittedly, I'm not convinced they do), | they need to keep supporting and documenting the old | features even as they nudge you away from them. | johnfn wrote: | Sure, but if that's the case, you should really be | pushing new developers away from using the old thing and | towards the new thing. Mark it obsolete in the editor. | Update your docstrings to point towards the new thing. | Maybe even give me a warning in my console if it's really | serious. | spyke112 wrote: | Why on earth would you compare Unity to React? | johnfn wrote: | Again, I'm talking about the engineering culture fostered by | the two projects. I'm not literally comparing a game engine | to a web rendering library. | Pfhreak wrote: | To provide more color to the parent comment, the scope of | React vs the scope of Unity is several orders of magnitude | different. (In fact, I've seen games that use React inside to | manage their UI layers.) | danbolt wrote: | My biggest thought about game programming not necessarily | having the same engineering culture as the web is due to the | financial/business incentives for various engineering | practices. I think React and a lot of other web tools are | designed for programmers creating services that continually | operate and generate revenue. Meanwhile, a video game's | development is closer to a theatre production or a film. | | Traditionally, a video game has a point where development stops | and is never resumed again. In the past this might have been | lot check or "going gold"; today it might be a few post-release | patches. There's a point where you don't keep working on your | entertainment product and resources are invested elsewhere for | more revenue. I think this means that the value of paying off | structural technical debt might be always less than the revenue | from your first month of sales. I think that changes the | decision-making of management as their game's performance might | be better off with a month of heroics and duct-tape rather than | missing a holiday release date. I don't get the impression that | profit incentives are the same with most typical web services. | | There are big exceptions to this, of course. Many more games | are service-based these days. I think we're starting to see | them adopt more stable practices like the rest of software | engineering at both big [2] and small [1] scales. | | [1] https://www.youtube.com/watch?v=t9HRzE7_2Xc [2] | https://www.gamesindustry.biz/articles/2017-08-04-bungies-13... | johnfn wrote: | That's a really interesting thought. It makes a lot of sense. | | Here's another one I've had that I'll throw on the pile: | video games are generally highly demanding of the CPU. | They'll use every cycle they can get their hands on. Web | apps, on the other hand, have a ton of downtime and generally | don't need to hit 60FPS (with rare exceptions). This means | that they can spend their extra cycles on better abstraction | layers, like React and Redux. Using React to render a bunch | of game entities would make no sense because just running the | reconciliation step can take 16ms, which is your entire | rendering budget. | nikki93 wrote: | That point (keeping interactive rates) is basically one of | the most important factors driving the architecture of game | engines. I found this talk to be quite a good one regarding | architecture for game engines (it's about the ECS in | Overwatch): https://www.youtube.com/watch?v=W3aieHjyNvw | | I feel like Unity's "entity as a container of components, | things are OO'd and there's a lot of polymorphic dispatch / | existence checks / branching" is starting to feel out of | fashion as of late, and the ECS approach is something folks | have come around to. | | I've been playing around with such an engine for a side | project. Here's a quick video -- | https://imgur.com/a/BcnWJha -- you can see what the in-game | editor looks like + some of the physics of the game (the | game and editor run both in web and natively). I think with | the ECS-queries approach the code comes out to be quite | ergonomic. For example, I've highlighted the logic that | makes the player be obscured by objects in front of them | here: https://gist.github.com/nikki93/8cc5d99e45ad74e7f1053 | dbef287... The game-specific code for the whole game is in | that 'main.cc' file and comes out to about 500 lines. The | game also includes custom inspector UIs for the 'Sprite' | and 'Feet' components that are defined right in that file | on line 288-314 and you can see them in the video. | danbolt wrote: | > I think with the ECS-queries approach the code comes | out to be quite ergonomic. | | I tend to agree, and I think it's something that doesn't | get promoted enough as an advantage of ECS compared to | cache hits and parallelism. When a programmer wants to | add a new feature to a game, they can slot their system | into the game's tick and avoid stepping on their peer's | work as much. They won't need to edit `Entity.cs` or an | inheritance tree, and it's much easier to reason about | the order of updating game data per frame. It also makes | code ownership and code reuse a bit easier to divide up | too. I'd take an ECS system even with a performance | penalty, as the organizational benefits really add up | over time. | nikki93 wrote: | Glad to see some agreement there. I'm interested in | building an ECS-based approach for a UI system at some | point. The Yoga layout engine (implements flexbox -- | https://github.com/facebook/yoga/tree/master/yoga) seems | to actually be pretty amenable to just incorporating as a | `Layout` or `Flex` component, then you could have | components for platform-specific renderings (eg. | `iOSTextInput`, `AndroidTextInput`, `DOMTextInput` in | wasm, ...) that could read from cross-platform common | components (`TextInput`). A core aspect would also be a | `Hierarchy` component that just has a parent entity id | and a list of child entity ids (that it keeps in sync | properly). Then bind things to JS and allow you to code | it from React, while still being able to eg. run an | animation thread for some specific animations that just | queries and reads/writes the `Layout` and | `AnimationSpec`s etc. Interesting talk re: data oriented | design for a webby animation engine here actually: | https://youtu.be/yy8jQgmhbAU?t=620 | danbolt wrote: | My general suggestion for programmers trying to understand | something strange or seemingly odd in the games industry is | to check for an economic/value incentive rather than a | technical one. | | Unity has a lot of warts like your article indicates, but | it gets a huge amount of bang/buck producing a not-big- | budget multi-platform title with a multidisciplined team. I | think that provides a lot of value for developers; so much | that it outweighs the snags involved in Unity's technical | shortcomings. Unity's roadmap is probably about expanding | shipability for smaller developers and why Unreal is trying | to commoditize that with Godot. | whywhywhywhy wrote: | >why is it so hard to make a good game engine? | | Game engines basically seem like magic if you compare them to | other creative tools, being able to build and manipulate | systems and tooling. | | Imagine if Adobe products could work like that. | tanilama wrote: | I don't think React vs Unity is the debate that we all cant | wait for it to happen? | | After all, Web has DOM tree as its fundamental data structure | to fiddle with, while Games are just a series of objects that | can orient/interact with each other however they like. | | And obviously performance reason will affect abstractions as | well, e.g. the Micro/Macro Kernel debate. | | To say Unity isn't good enough because React is good at | abstracting Web development away doesn't seem to hold too much | ground in terms of logic coherence | adamnemecek wrote: | Unity is nothing like react. | iaml wrote: | Actually, AFAIK react event loop is based on game engines, so | at least a bit of similarity should be there. | adamnemecek wrote: | Not all event loops are the same. | iaml wrote: | Specifically, it looks like doom 3 engine | | https://www.youtube.com/watch?v=x7cQ3mrcKaY#t=1196 | nottorp wrote: | You mean react renders the UI at high FPS needlessly, | regardless of any changes? | johnfn wrote: | Again, I'm talking about the engineering culture fostered by | the two projects. I'm not literally comparing a game engine | to a web rendering library. | [deleted] | adamnemecek wrote: | Right however Unity is much more complex so it's not a fair | comparison. | johnfn wrote: | Why not? It's easy to learn from the things that React | does right and compare to see if Unity also does them | right, or not. | | For example, React has a principle that components can | freely be removed from the render path of their | parents[1], since React (in the general case) does not | allow parents to imperatively call methods on their | children. Unity has no such prevention, so if you remove | a child component you could be triggering a bunch of bugs | when GetComponent<> calls fail to find the component you | deleted. | | It seems clear to me that the way that React guides the | user towards avoiding writing bugs is a good strategy. | | Why would we NOT compare these two? Why would we NOT say, | "aha, it looks like React has a smart design that allows | engineers to write code without unintentionally creating | bugs, and so we should consider if something like that is | possible, or perhaps think of a different way to solve | this problem." Putting our heads in the sand and refusing | to make comparisons between these two projects to see the | similar issues that both projects run into means that | Unity developers are doomed to repeat the same problems | that React engineers have already solved. | | [1]: https://overreacted.io/what-are-the-react-team- | principles/ | andybak wrote: | Weirdly enough I got into Unity to give myself a break from the | waking nightmare that front-end development seemed to be | turning in to. I still dabble in back-end Django and a bit of | framework-free front-end but I've been enjoying Unity/C# for | non-commercial projects. | formalsystem wrote: | If you go through this list | https://store.steampowered.com/curator/31285130-Unity-Engine... | | Most of it is a lot more impressive than projects completed | with React. | | Unity has a high learning curve once you want to move away from | tutorials. I believe React is the same, I kept trying to learn | it but would get discouraged with the new tooling and | eventually give up. | johnfn wrote: | I hear you that Unity has created some great projects, but | that's kind of like saying that C is a better language than | your favorite language because C was used to write Linux and | your favorite language has never made any project that | impressive. | TillE wrote: | I've been using Godot lately, and while it has many flaws (an | over-reliance on strings as identifiers, for example), I think | the fundamental design is sound and easy to work with: | everything is a node in a scene tree. | | The engine code, while not up to modern C++ standards, can be | pretty easily understood, modified, and then fully recompiled | in just a few minutes. It's not suitable for a AAA 3D game, but | it's the first engine I've found for 2D C++ development which | actually helps me more than it gets in my way. | synaesthesisx wrote: | After watching how many SaaS companies with "weak" engineering | have soared to astronomical valuations, I would say I'm quite | bullish on Unity (as a stock), irrespective of what developers | think. At the end of the day, fantastic marketing is what gets | CXO's and decision makers to buy-in. | | Look at MongoDB's performance since IPO in 2017 for | perspective. | hobofan wrote: | > Look at MongoDB's performance since IPO in 2017 for | perspective. | | I know that this opinion goes against the hivemind, but I | wouldn't call them weak in engineering by a long shot. They | obviously made some questionable/bad decisions regarding | defaults (write acknowledgements, security) in order to have | a lower barrier to entry, but apart from that I've had a | pretty good experience with it as a stable product and good | timeframes for bug-fixes. | | Unity is a stark contrast to that. The few years of using it | sporadically for hobby projects has been a wild ride. | Bugs/crashes seem to be everywhere, and when/if they are | fixed just seem to be replaced with new ones. I don't know | how full-time Unity developers can deal with that. Their | speed of progress is also meh. | | Overall, if they were to stick to their (mobile) gaming | niche, that probably wouldn't be a problem. However it seems | like they are looking to mainly grow via other industries, | and with that shoddy engineering and their development pace, | I don't see them making a lot of headway there. | chaostheory wrote: | The important question is how does it compare to Unreal in | terms of bugs, problems, and usability? | hobofan wrote: | Not only Unreal. I think the even bigger question is how | does it compare to all the incumbent tools of the | industries they are trying to replace. | chaostheory wrote: | Well, who are the other leaders in the industry? Is there | any other major player besides Unity and Unreal? (I'm not | overly familiar myself?) What's their respective market | share? | | EDIT: Never mind, I found it. | | Unity and Unreal are the market leaders with | approximately 15% & 25% market share respectively. | Nothing else including Havok, Godot, Cryengine or Source | even come close. | johnfn wrote: | Honestly, that's a good point. As an engineer I can | definitely get a little too focused on the engineering side | of things. | | The MongoDB example is fascinating to me. I'd love to know | why they're doing so well. | bcrosby95 wrote: | It's because generally, software developers don't have to | deal with the downsides of MongoDB, ops people do. At a lot | of companies it seems to be mostly developers picking | technologies, so especially if they're inexperienced then | they tend not to consider the other side of their | decisions. | serverholic wrote: | How can the people replying to you be so fucking stupid? My | god, OP isn't comparing React and Unity at a code level. He's | comparing the engineering culture surrounding the two pieces of | software. | johnfn wrote: | Lol, thanks. | TillE wrote: | I've found nerds can be extremely literal about analogies | when the two things being compared don't line up in every | respect. Kinda misses the point of analogies. | ingenieros wrote: | They were the first commercial game engine to offer iOS support | and this pretty much cemented their place in the market. Unreal | used to cost upwards of 6 figures to license per game and this | left indies nowhere left to go. Godot shows a lot of promise | and has been steadily growing its userbase over the years, but | its MIT license makes it really difficult to export to close | source platforms and ultimately most devs want their games on | consoles which are notoriously closed behind NDA's and other | legalese. | https://docs.godotengine.org/en/latest/tutorials/platform/co... | dgellow wrote: | I don't see how that's caused by their choice of license. I | read your link, there is nothing related to their license | either. MIT is permissive, as far as I know it is commonly | used by 3rd party libraries for games, even on consoles. | pandaman wrote: | From my experience of shipping a few AAA games: a universal | game engine will always be suffering from trying to balance | efficiency vs universality. | | It's not a big deal to write an OOP engine where you just | insert objects into a scene graph and each has a callback to | draw itself, write a whole library of different classes for all | kinds of purposes and ship it. The problem is that it's going | to be much slower than a game written from scratch by a semi- | competent programmer. | | It's also not a very big deal to write an extremely efficient | engine that will render, for example, streaming landscapes very | fast and in great detail but won't render anything else nearly | as well. | | It's believed that neither of these would sell well even though | id software has allegedly made much more money selling their | specialized maze shooter engines than selling their maze | shooter games. Though probably nowhere close to the money | Unity/Epic makes. | | Unity/Epic try to make an engine with OOP APIs in the front and | optimized pipelines in the back. This is very hard and this is | why they: a) don't have much competition an b) are not very | good. | | In my opinion, the only threat they both face is some yet | unknown universal rendering technique appearing and making both | obsolete. Till then, they will always have a customer base of | studios who do not know/want to write their own game and not | satisfied with naive OOP engines (and there used to be hundreds | of those, even DirectX had one built in, called "D3D Retained | Mode"). | barbecue_sauce wrote: | Hopefully this will allow them to start a grant program in the | same vein as Epic MegaGrants. | echelon wrote: | It seems like Epic is going to trounce Unity when they go public. | They've got a more powerful engine, megahit game, and | distribution platform. | jayd16 wrote: | I would switch to UE but first class C# support is just so | nice. | swalsh wrote: | I'm bull Epic too, but honestly, I don't care about the quality | differences. The main thing Epic has going for them that Unity | does not is it's diverse marketing channels. They are becoming | huge in the cinematic, and broadcast markets, huge markets | Unity doesn't even have a presence in. | silicon2401 wrote: | Can someone explain what this means to a finance noob? Does this | mean it will be possible to purchase stock in Unity soon? | KerrickStaley wrote: | Yes, it means that they are going through the paperwork | required to do an IPO. https://en.wikipedia.org/wiki/Form_S-1 | formalsystem wrote: | How long does this process usually take? | silicon2401 wrote: | Thanks | mijoharas wrote: | Essentially yes. | silicon2401 wrote: | Thanks | PopeDotNinja wrote: | They are disclosing information that must be disclosed before | conducting the initial public offering (e.g. making their stock | available for purchase to you and others in the public). You | can assume an IPO is coming up in the not too distant future, | but there are reasons it might not happen, such as lower than | expected desire for the stock they'd like to offer. | silicon2401 wrote: | ah good summary. thanks! | bonestamp2 wrote: | Pretty much. If a company wants to issue securities (such as | stock) in the US, they need to submit one of these forms first. | It's no guarantee that stock will be issued, but it's highly | likely. | silicon2401 wrote: | Thank you | scott31 wrote: | How can I short this? | DudeInBasement wrote: | Usually, there is a 'no short' window after IPO. It is better | to buy put options as it limits your downside risk. Unless you | are a big dog (can actually effect the market). Then shorting | is better because you can force the price in your favor. | scott31 wrote: | put options are fine too, do you know where I can buy them? | hmate9 wrote: | You can only get them after they eventually IPO. | TomGullen wrote: | I believe there is a wait time before options are | available on new listings also | qwert-e wrote: | > do you know where I can buy them | | Good luck | ffggvv wrote: | as a counterpoint to all the complaints, i still think unity is | by far the easiest game engine to pickup even for people who've | never coded before. and there's so many resources out there to | pick it up that there isn't really a strong competitor imo | despite any potential misteps | jshaqaw wrote: | What's their plan to someday turn a profit? | madrox wrote: | Unity's done great things in its space. I worry about its long | term prospects against the likes of Epic, who are going to be | able to vertically integrate Unreal Engine with the epic games | store and thus compete in ways Unity can't. I think a better | business strategy would've been acquisition that could've given | them that synergy, but I can also understand that, for the | owners, the biggest cash out may not be what they're going for. | ptrmthv1 wrote: | Web developers are learning it's all pointer math on arrays. | | Which game engines happen to be heavily optimized for. | | SRE tools could be VR based. Omg lookit me pretending to manage a | real server. Meanwhile its just sending something that conforms | to an API spec. | | There's your singularity | serverholic wrote: | Unity has completely destroyed my faith in their ability to | deliver on anything other than marketing. | | - It took them YEARS to deliver their new input system. Think | about that. A company with Unity's resources took YEARS to | develop a system that takes inputs from keyboards, mice, and | gamepads and routes them to C# callbacks. YEARS. | | - They completely abandoned their networking system (UNET) | without a replacement system... This was YEARS ago and we STILL | don't have a production-ready replacement. | | - They wrote a new render pipeline called the Universal Render | Pipeline (URP) and marketed it as a production-ready replacement | for the old built-in renderer. However, the new pipeline isn't | even close to feature-parity and the remaining features are still | in development. How in the world is that a "production-ready | replacement"??? | jayd16 wrote: | Its not that they can't build anything. URP is ok. It cuts out | features that made it slower so its not going to ever hit | feature parity. The problem is indeed that the marketing | oversold it. They should have never suggested devs "move" to | URP. For new games its alright. | zlsa wrote: | URP doesn't support casting dynamic shadows from point | lights[0], something which many games use and should really | be a feature in a production-ready game engine. | | [0]: https://forum.unity.com/threads/urp-point-light- | shadows.8819... | ordinaryradical wrote: | Having followed this space for some time, Unity made huge strides | at the beginning but has become notorious for punishing shiny | features while leaving things broken or half-supported, which | makes the developer's life hard if you happen to run into one of | those bugs. Closed source means you're stuck writing ugly | workarounds. | | My impression was that you can bootstrap some incredible stuff in | Unity, but demanding kinds of games will push you into its uglier | corners and leave you at the mercy of its updating schedule. | | This is very different from Unreal, or even Godot, which have | their own trade offs. But it seems to me like there is enough of | a "mid market" for all of them to coexist. | oblio wrote: | Hearthstone is built with Unity. I don't know if it's on | Blizzard or on Unity (though, comparing things to other | Blizzard games, I'd suspect Unity), but Hearthstone uses an | awful lot of resources and is quite laggy on mobile, despite it | presenting a pretty bare-bones 3D scene with barely any special | effects. | jayd16 wrote: | Card games use a lot of high res art. They take a surprising | amount of textures. | oblio wrote: | Have you played Hearthstone? It was released in 2013 and I | wouldn't call their graphics "high end" by any stretch of | the imagination. If racing games or FIFA run fluently on a | Galaxy Tab S4, so should Hearthstone... | | Even their PC version is laggy, check out streamers | restarting the game (!) before important and action packed | battlegrounds turns. | jayd16 wrote: | Racing games and FIFA can reuse a lot of texture data. | Same rock. Same uniform. Repeating crowd. That said, HS | just runs on mobile. It's not optimized for it. It's | obvious when you can only look at a chunk of your | collection at a time instead of smoothly scrolling that | the cards take up a lot of ram. | | Users also have a lot more control over what is shown on | screen. For a FIFA game everything is loaded beforehand. | In a card game that has to hide information, it has to | load as the game progresses. | hobofan wrote: | That's really not an excuse. Doing some back of the | envelope math shows that even the full collection of all | Hearthstone cards would easily fit into RAM: | | ~0.25MB (size of a sample original artwork from[0]) * | 3410 (number of playable cards in the game[1]) = ~850MB | | > For a FIFA game everything is loaded beforehand. In a | card game that has to hide information, it has to load as | the game progresses. | | During every single match of Hearthstone all the cards | are also known beforehand (to the device), and they are a | fraction of the full card collection. | | [0]: https://hearthstonejson.com/docs/images.html | | [1]: https://hearthstone.gamepedia.com/Card | jayd16 wrote: | Some things you might not be aware of: | | Hearthstone cards have several texture maps per card for | the foil card effects. When textures are stored in ram | they are not compressed (not as png or jpeg anyway). Its | closer to a full 4 bytes per pixel. Textures also use | mipmaps which take up an extra 33%. Not to mention the | animations, effects and and the texture memory they | bring. Its much more RAM than you think. Just look at the | (fully compressed) install size of over 3GB. The menu | textures do not take over 2GB. | | The game came out in 2014 when the latest iPhone had 1GB | of RAM (less than 512MB usable for the whole app, | essentially.) Its tuned to be under that cap, which | forces a lot of disk reads instead of keeping things in | RAM. | | >During every single match of Hearthstone all the cards | are also known beforehand (to the device), and they are a | fraction of the full card collection. | | This is actually false as some cards can spawn a random | card from the full collection. | hexaz wrote: | The restarting is independent from the games performance. | Battle times actually eat into the time you have after | the battle to update your team, and at some point | restarting the game is faster than watching the battle | unfold. | oblio wrote: | Animations are choppy and slow. | taken_username wrote: | > Our common stock is currently not listed on any securities | exchange. We have applied to have our common stock listed on the | NYSE under the symbol "U". | | U like Unity, not Uber or Unreal. | whywhywhywhy wrote: | In 5 years Unity will completely dominate the creative space, | even outside of games you're going to be finding this tech | everywhere and there is no double in my mind you'll be seeing the | unity logo at the end of summer blockbuster credit sequences. | delfinom wrote: | Unreal Engine is already very far ahead into the cinema space | and already being used in numerous works being produced. Epic | has been investing money into supporting toolchains and devices | built to support Unreal Engine in cinema to boot. I simply | don't see Unity catching up. | synaesthesisx wrote: | I'm bullish on Unity (especially with how it's positioned to take | advantage of the AR/VR boom). I know Facebook tried to buy them | at some point, and am glad that didn't pan out after watching | what they've done with Oculus. | | As someone who has invested heavily in SaaS stocks, I know the | current market is likely going to want to send this thing to | space. There has arguably never been a better time to IPO. | DonHopkins wrote: | Oh great, with all that money maybe they can get symlinks to work | in Windows. | MrLeap wrote: | I use Unity every day at work. This is a mixed bag for me. Unity | gives google a run for their money when it comes to abandoning | old features / letting them rot. | | The editor is kind of crashy, launch times get unwieldy fast. | Sometimes there's subtle differences between build version and | running in the editor, and solving the disparity is a death | march. | | All that said, it's still one of my favorite environments to work | in. I wonder if I have Stockholm syndrome. | | Hopefully all this public money will get them to make a saner | serialization format for their scene files. Unity's relationship | with version control is... tense. | Pfhreak wrote: | I use it a lot for hobby projects, and have used it and | Lumberyard in a serious capacity. | | Whew boy does Unity absolutely put Lumberyard to shame. Unity, | for me, is absolutely busted but also extremely approachable | and generally good to use. | speps wrote: | > Hopefully all this public money will get them to make a saner | serialization format for their scene files. Unity's | relationship with version control is... tense. | | They had money before, it's not like they were running at a | loss. The source control situation affects other engines (e.g | UE4) just as much. | nv-vn wrote: | > it's not like they were running at a loss | | Well looking at their income statement, they were actually | running at a loss haha | brundolf wrote: | I'm curious what issues it still has with version-control? I | know that for a while the default asset format was binary | instead of text, but I believe they made text the default a | little while ago (I've used Unity in a hobby capacity over the | years but never professionally) | MrLeap wrote: | Scene files are the biggest thing. They're merge conflict | magnets. You breath aggressively and they'll "change". Our | workflow tends to be based around prefabs, and a main scene | we _rarely_ change. Despite never touching it, everyone on | the team has to revert Main.scene before committing, pretty | much every time. | | VFX Graphs are also pretty nuts. Cut one line and it changes | 3000 lines of code. This isn't the biggest deal in the world, | but it makes for weird diffs. | | There was a memory leak bug with the videoplayer component, | and the only fix I found was to update to a newer-than-LTS | version. That version likes to strip public rendertexture | fields from the inspector every time you pull a scene down | from git. Hopefully they fix that before they call it an LTS | :) | andybak wrote: | Yeah. They managed to come up with an interesting innovation. | Non-human readable YAML... | franknine wrote: | You also need to make sure .meta files are set to visible and | get committed along with the assets, or the asset references | will be completely messed up. Unity also makes visible .meta | default now, and some would create a git hook to do a pre- | commit check. | brett-k wrote: | Plastic SCM is pretty great at handling Unity projects of all | shapes and sizes. | andybak wrote: | And they just bought the developer. | | I worry about all the good synergy I was getting from Unity | stuff using Github as a default is going to dry up if there's | a non-open, non-public VCS as the default. I love trawling | Github for interesting Unity projects. | xex70 wrote: | Game development historically and consciously does not use | Git so you're fighting a losing battle. There's good reason | for that. Git remains not a great fit for managing large | projects of assets despite extensions and work put in, so | I'd be cognizant of your projection of Web-centric | preferences on another vertical. That's a recurring theme | from the Web vertical (why don't you do things our way) and | I can tell you I've seen frustration with that firsthand. | | Perforce and systems like it are the competition here (pay | attention to how many games announce changelists in their | logs), and AAA studios are quite comfortable with what they | have. | | If your problem with Unity is how it does source control it | speaks more to your unfamiliarity with industry practice | than it does a deficiency in Unity. They added Git ability | because enough people complained about it, but as this | thread points out, it took gymnastics to implement because | it's simply not how that market operates -- web folks | operate on a pile of text files and games don't look | anything like that. I'm not just talking about graphics, | either. The AAA I'm working on has about 75 KB of code and | 46 GB of binaries and a few hundred actively committing, so | Git is very comfortably a nonstarter. | andybak wrote: | > so you're fighting a losing battle | | That's an odd way of putting it when I was stating "I've | always found tons of great Unity stuff on Github - and | I'm worried that might change". | | The rest of your answer makes sense in itself - it just | seemed to be responding to somebody else. | | I basically learnt by downloading Unity stuff off Github | and playing with it and I follow a lot of great accounts | which I check regularly. | xex70 wrote: | You hinted you're worried about the perceived and | hypothetical lack of synergy of GitHub and Unity | reflecting on your perception of the latter, and you | spoke about licensing concerns to reinforce that point. | You also expanded your position in nearby comments. I'm | advising you that the entire concern and approach you're | taking to source management, and your interpretation of | the same as well as your beliefs about free software, | reflects where you come from more than where you're | going, and you should loosely hold whatever conviction | brought you there if you're serious about pursuing the | industry. | | I was responding to you. The game industry is | fundamentally different from other industries, and | approaching it with questions like "why not Git?" or "why | no type safety?" or "what about GPL?" marks you as not | really understanding the industry, its product, or its | motivations. I realize there's a huge clutch of cash and | free time that lets the average Web dev schedule meetings | about and argue type safety and microservices and so on | among their peers, but game development is an industry | driven by a whip and is closer to Hollywood than San | Jose. We look to indie to innovate and put in our 80 | wishing we had the time. | andybak wrote: | I'm simply interested in continuing to find useful and | inspring stuff on Github or some similar open, shared | resource. I can see how it might be less than ideal for | large projects and the purchase of Plastic SCM might be a | great benefit to studio workflows - but I hope all the | strange, quirky, experimental stuff on Github that's a | real boon to learning doesn't disappear in it's wake | andybak wrote: | > approaching it with questions like "why not Git?" or | "why no type safety?" or "what about GPL?" marks you as | not really understanding the industry, | | Sorry - I'm trying to remember the contexts that I've | said stuff like that in. You must have delved quite far | back in my post history. Posting them as if they are | direct quotes without context is a little unfair. | | (Plus - I've got no interest in joining the mainstream | games industry) | defen wrote: | > The AAA I'm working on has about 75 KB of code | | Do you really mean 75KB of code or is that exaggeration | for effect? That comes out to, I don't know, about 2,000 | lines of code? I assume you're not including engine code | in here, but still - 2k just seems orders of magnitude | off from what I would expect a AAA game to have. Is most | of the logic not implemented using code, but rather some | other method? | [deleted] | setzer22 wrote: | Genuinely curious. You insist a VCS is not how the | industry operates. But then how _do_ those AAA devs | manage synchronizing changes across a team of several | hundreds of people? I imagine there must be some | equivalent to VCS that better fits the gamedev indurstry. | Or are people just throwing flash drives around the | office? | maccard wrote: | Perforce. You have an always online server, and binary | files can only be checked out by one person at a time | (enforced by the server). Its big, it's clunky, the UI | (p4v) sucks more than you could possibly imagine, but it | scales. | weaksauce wrote: | yeah the version control aspect of unity made me cool off on it | because version control is so very important. | hesdeadjim wrote: | Stockholm Syndrome is on my mind frequently with this engine. | I'm hoping their promise of 2021 being a stability and | productivity focus will come true. | | It's hugely frustrating to see how poorly planned their roadmap | is. I have access to core support and their private slack, and | you'd be surprised how short notice some of their decisions | have been. | reitzensteinm wrote: | I would not be surprised. | formalsystem wrote: | I started using Unity actively about 2 years ago so haven't | experienced the abandoning old features part, which features | are you thinking of here? | | 100% agree on the launch times, it gets nuts even for smaller | games - I'm not sure if they're working on this. | | Have you tried Unity Collaborate or Git LFS for version | control? What other improvements would you like to see? | | The Stockholm syndrome comment made me lol, It's just very | satisfying to make games with Unity that I'm willing to | tolerate/ignore the issues with it. | zemo wrote: | try using networking in Unity sometime. UNet has been | deprecated for years and the replacement is still officially | experimental. The networking situation is pretty bad in Unity | at the moment. | MrLeap wrote: | Their post processing stack has changed like 5 times in the | last 2 years, breaking old methods of post processing. | Hopefully now that SRP is getting more mature that particular | thing will slow down. | | The videoplayer component broke for a few months. Builtins | got pealed out into the package manager and it trivially | broke some code. I don't know how long shuriken is for this | world (good riddance imo, vfx graph is so much better.) | | Shadergraph adds and loses nodes every version. | | If you start a project in the same version you finish it in, | it's not too bad. If you upgrade because you want to use a | new-shiny, the surgery becomes more apparent. | Tossrock wrote: | Not to mention IMGUI => UGUI => UIElements/UIToolkit, | InputManager => Actions, Animation => Timeline, | GameObject/Component => ECS/DOTS, ParticleSystem => | VFXGraph, Legacy renderer => Scriptable Render pipeline, | etc etc | | edit: whoops didn't see you'd already mentioned VFX graph | chaostheory wrote: | How does it compare to Unreal in terms of ease of use and | getting the job done? (I'm thinking Unreal is better | performance wise; not very interested in that.) | risyachka wrote: | In these terms it outperforms Unreal. Ease of use and speed | of development is main points why I have been using Unity for | years. | boogies wrote: | What about Godot? The anecdotal evidence I've heard has | seemed to say that Godot is the best for rapid prototyping | because of GDScript, and maybe easier animation. | risyachka wrote: | Unity indeed abandons lots of its features, another part is | bad. | | Fortunately there are 3rd party solutions for many of them and | you can easily create your own for features you need that will | serve you for years to come. | | Also I have been using Unity with self hosted Gitlab and never | had any problems, though you need to get used to it for sure. | mlacks wrote: | > Industries Beyond Gaming: In industries beyond gaming, we | estimate the market opportunity for our Create Solutions and | Operate Solutions to be approximately $17 billion today, based on | the number of software developers, architects and designers our | solutions could potentially serve. | | There is a graphic I stumbled upon years ago - I haven't been | able to find it recently - that described Facebook's gameplan - | 10-20 years out. It basically described how the focus of the | platform would evolve with how effectively users would be able to | share their lives with their network, in progression with | technology, or - more specifically - the price of bandwidth. Let | me explain: | | FB early years was very text-centric. I recall not "getting it" | because it was effectively a tricked-out twitter. Kinda like | Asana vs Clickup today - more features doesn't directly translate | to "better". I of course didn't factor in the "network effect". I | digress. Early years was text-centric. | | When internet speeds picked up (without much of an increase in | price to the end user), photos became more of a focus. The | Instagram acquisition happened around this timeframe | | At the time I found this graphic, The same price/data speed | phenomenon was in effect and FB was transitioning to video as its | core sharing focus. Facebook acquires Occulus, which leads into | the last part of the graphic - | | VR. I remember MZ's Mark Zuckerberg's virtual Puerto Rico jaunt. | New tech is often akward, but knowing Facebook a player in an | industry typically "beyond gaming" is in line to blur that line, | is one good example of the viability of Unity as a real revenue | producing entity. | | This is getting a little long winded, but I think this next part | drives the point home. | | I'm a real estate agent, and I used to work at a brokerage called | Exp (NASDAQ: EXPI). Their pitch (to agents) is that they are a | "cloud-based brokerage". While not required - there is a Club | Penguin-esque "world" you log into, make an avatar, walk around | and an attend meetings in auditoriums. Its very cheesy, but as | mentioned above, all new tech is cheesy. Check out Exp stock | performance this year. Unity is in a prime position to work with | companies in "non-gaming industries" looking to keep current and | move with the pace of tech | formalsystem wrote: | Out of any software tools I use frequently, Unity is the one that | brings me the most joy. | | Any reasonably complex interface is essentially a game whether | it's a music composition app, simulator, MMO or even a basic | form. | | The basic abstractions of entities and components sometimes feel | like they could apply to any software project. It's seamless to | animate something, add physics, style in ways that would seem | mind boggling in other environments I've worked in like Python or | Javascript. | | You can learn so much going over basic Unity tutorials on Youtube | and disassembling Unity games on Steam. | | The asset store has many people aggressively experimenting with | better user experiences for doing certain tasks whether its | character skinning or node based programming, many of the best | assets end up added to Unity by default. | | Unity is not mostly used for mobile games, some insanely complex | games are made in Unity. You can check out this list on Steam | https://store.steampowered.com/curator/31285130-Unity-Engine... | | Unity ML agents is the single most exciting ML project out today | which helps you create the most complex Reinforcement Learning | environments you can dream of. | | Unity ate the indie game market but I think they will also eat | Robotic simulations, Animation, interior design, VR, Web apps and | Desktop apps. | | Can't wait to buy shares. | akersten wrote: | > Any reasonably complex interface is essentially a game | whether it's a music composition app, simulator, MMO or even a | basic form. | | I've been out of the game development arena for a while, but I | can't help but pause here. Are people really writing DAWs and | big desktop app interfaces in _Unity_? | | The last time I played with a game engine, I would have said UI | was its weakest aspect. Clunky, slow controls, visually | unappealing, and certainly lacking in accessibility. Without | researching more, I would feel pretty confident placing a bet | that if I pointed JAWS at a Unity Window, it would say "Game | Window" and that's about it. Windows accessibility hooks and | tab navigation certainly didn't work out of the box, and I | would say that is bare minimum for a UI toolkit. | | So while it's valid that Unity is a beast and game engines will | eat the world for games, I have a really hard time taking them | seriously for UI-driven application development. | sgustard wrote: | Unity's homepage lists four industries they target and Games | is only one of them. Seems clear they also want to sell into | Manufacturing, Construction, Film, etc. | 1f60c wrote: | I think GP meant that a lot of _patterns_ that are common in | game dev could also be applied to other kinds of software. | akersten wrote: | It doesn't read that way to me, since it ends with "can't | wait to buy shares" and is sandwiched between other | examples of how Unity brings them joy - implying Unity is | the platform on which all of these things will be built. I | guess OP can clarify if they desire, and my comment still | stands regarding Unity's UI toolkit. | specialist wrote: | _"...I have a really hard time taking them seriously for UI- | driven application development. "_ | | It's been a long time since I've done serious UI work, so am | not aware of the latest grievances. | | But it'd be great if stock UI frameworks were more like game | (simulation) engines. Scene graphs, composition, event loops, | command objects, etc. | | Just like sufficiently complex C programs become buggy | implementations of LISP, interesting UIs eventually recreate | a poorly conceived and terribly implemented simulation | engine. | Gibbon1 wrote: | Potential advantage to Unity is it was developed from the | ground up to do all that. Unlike the browser. | amirhirsch wrote: | For quickly making a cross-platform mobile apps, it is | definitely going to emerge as the new first choice. I've been | burned so much by cross-platform issues trying to do anything | complicated or graphical with | phonegap/cordova/electron/react... | Tossrock wrote: | I've made a node-editor based UI heavy application for real- | time texture synthesis in Unity[0], for which it is quite | good. Although I agree that it doesn't integrate platform | native UI patterns well. | | [0]: https://www.youtube.com/watch?v=9xU4Dtp7cV8 | formalsystem wrote: | This is an example of someone who has built a robotic | simulator in Unity | https://www.youtube.com/watch?v=AvZgbB71yb8&feature=youtu.be | risyachka wrote: | For MVP you can't beat speed of development with Unity. You | can create a complex UI with full logic in a matter of days. | trynewideas wrote: | > Are people really writing DAWs and big desktop app | interfaces in Unity? | | Arguably the biggest non-game applications are in virtual | cinematography, architectural visualization, non-game | simulations, and immersive art installations. Most of those | uses don't result in discrete "apps", though, they're just | workflows within Unity designed to produce a specific type of | output. | | One prominent example of a discrete pro app made from Unity, | though, is Digital Monarch Media's filmmaking toolsuite, | which is built on Unity.[1] But it fills some unusual | hardware and interface needs that Unity is built, or has | plugins, to provide (touchscreen interfaces, motion tracking, | color grading). | | That said, I see non-game apps in the vein of content | creation or productivity pop up more frequently now in Godot | development than Unity. There are some proof-of-concepts, | like the Godello[2] Trello clone that was posted here a while | back, but more useful examples are Pixelorama[3], an open- | source pixel-art editor built with Godot, and Heavypaint[4], | a painting/sketching app. | | [1] https://www.vfxvoice.com/instant-feedback-expozure- | expands-i... | | [2] https://github.com/alfredbaudisch/Godello | | [3] https://orama-interactive.itch.io/pixelorama | | [4] http://www.heavypoly.com/heavypaint | formalsystem wrote: | Just wanted to say thank you for the excellent resources | panopticon wrote: | According to Bloomberg[0], non-gaming clients make up 10% of | Unity's business. | | > _[Unity] helps Volkswagen AG train employees, was used by | filmmakers to shoot the recent "Lion King" movie and by the | Hong Kong International Airport to simulate changes in | passenger volume._ | | I don't know enough about these domains to say whether it's a | good (or bad) idea, but I've also heard of Unity being used | for other kinds of modeling and simulations too (climatology, | traffic, etc). | | [0]: | https://www.bloomberg.com/news/articles/2020-05-07/unity- | tec... | boarnoah wrote: | > Lion king | | I'm fairly sure this is incorrect. | | Unsure about Lion King specifically but all of the other | recent Jon Favreau titles (The Mandalorian, The Jungle | Book) have done virtual production with Unreal Engine. | panopticon wrote: | From Engadget[0]: | | > _The workflow of The Lion King was vastly different to | The Jungle Book. MPC worked on 'master scenes' in London | with industry-standard tools such as Maya. It then | developed an "asset management system" that could | translate the scene into something that was compatible | with Unity, a popular game engine._ | | Also, this YouTube video[1] goes over the process in more | detail. | | [0]: https://www.engadget.com/2019-07-29-lion-king- | remake-vfx-mpc... | | [1]: https://www.youtube.com/watch?v=KCnayCnM6Zk | boogies wrote: | > Are people really writing DAWs and big desktop app | interfaces in Unity? | | I'd love to know if Unity is made in Unity. The Godot game | engine's development environment is made in Godot (which is | why it was able to be run in web browsers using WebAssembly | https://news.ycombinator.com/item?id=23354286). | Tossrock wrote: | Unity is not really made in Unity - the core engine is in | C++ that is separate from the userland C# scripts. However, | it uses the same UI library that's available to users | (IMGUI, and being upgraded to UIToolkit), which makes it | easy to extend. | altharaz wrote: | Unity has also a lot of potential in the Cybersecurity | industry, for people that wants to train themselves on | Industrial Systems. | | The only thing that makes industrial Cybersecurity really hard | for students is the industrial systems laboratory requirements. | | With Unity, some people are trying to build completely virtual | pentest labs on industrial systems, such as GRFICS | (https://github.com/Fortiphyd/GRFICSv2). | alexbanks wrote: | This is my first time being involved in a game. Is there a way | to make dependency/package management not abysmal? I was | legitimately shocked when I realized that if you wanted to | install a .net standard 2.0 library, you had to manually walk | the dependency tree of that library and download/copy every | single DLL into your app. Did I miss something? (probably) | jayd16 wrote: | You can get nuget to work by having it put the packages under | the Asset folder but you'll need to manually clean up targets | you don't want. Unity has its own (a few actually =/) package | system. | debacle wrote: | My only real complaint with Unity is that they are kind of | mired in GameObject and ECS/DOTS are not quite first class yet, | despite being universally better (with only slightly more | code). | foobarian wrote: | Press one button and presto: you have a game running on all the | environments one could possibly want today. This alone is worth | putting up with a lot of deficiencies in the UI, or the API, or | whatever. | | I remember this boat in early 2000s, when engines were less | capable, and I was younger and more arrogant. The thought of | using some crappy engine with last gen graphics would make me | laugh. Of course I was going to make my own thing in C hand- | optimized to squeeze every last triangle from the hardware. | Good luck if you didn't have that exact hardware configuration | :) | jfim wrote: | To be fair, back then, engines were far more limited and | there were much fewer platforms to support (only supporting | D3D back then was viable). | | Plus it's a lot of fun to write your own engine. Sure, | texture loading or managing sound buffers won't make your | game better than others, but it's definitely fun to write | that code. | jayd16 wrote: | The pain comes after you finish 80% of the game and start to | work on the 2nd 80%. | linuxftw wrote: | This was the type of information I was looking for in the | comments. I don't know if what you're saying is accurate, but | it speaks to the entire reason for a company to go public: | Raise capital to expand the business. | | Looking into the S1 highlights a Volvo customer info graphic. | Unity seems to be proficiently expanding into other segments. | They can really solidify their position in these other markets | by having a vast breadth of talent available that knows their | tooling across various industries. Unity experience will be | valued as a skill set, not just game experience. That will | drive further adoption of the platform. | | This seems to comport with what you're saying. I think there's | real opportunity here. | gentleman11 wrote: | I was a fan of unity until they retroactively changed their | asset store license. They revoked some of your usage rights in | a cash grab in February (specifically, the right to let | freelancers use your assets, so now you have to buy them their | own copies). How can you depend on a company like that for the | crux of your business when they use their "we can modify these | terms at any time" clauses in a predatory way against you? | movedx wrote: | > I was a fan of unity until they retroactively changed their | asset store license. | | Pretty certain you can't do that. | vmception wrote: | reading most of these comments, its clear and odd that people | view "going public" or filing an S-1 as a coveted position, | something that someone "deserves" or "doesn't deserve" | | and to me that is a very odd side effect of companies not going | public often | nv-vn wrote: | I think it has to do with the fact that HN has many users who | are employed at startups. When you get paid in what is | essentially monopoly money, you're going to be envious of | startups which are able to turn that into cash. It seems to me | like it's just the side effect of people having 90% of their | net worth tied into a private company's equity and wanting the | golden ticket to actually redeem it. | vmception wrote: | Tragic, but not really, either way I would like to see more | nuanced discussions just about its under or overpricing, or | something more overt like its "pumpability". | | Or maybe a discussion about how to get price discovery at | lower valuations instead of just dumping on everyone's 401ks | at high valuations. | BoysenberryPi wrote: | Unity filing for an IPO is very interesting. I use both Unity and | Tableau and they have always seemed very similar to me in terms | of marketing. They have massive communities and excel at getting | people up to speed and making you feel powerful. However, once | you get passed the "beginner-intermediate" phase you realize this | isn't really all its cracked up to be but at that point you | invested time into learning them and they technically get the job | done so you stick with it. | minimaxir wrote: | Interesting given the current issues with their primary | competitor Unreal Engine/Epic, although the timing of this IPO is | 100% coincidental. | adamnemecek wrote: | I wish them the best, they have transformed the landscape of | indie game development really drastically and forced others | (Unreal) to follow suit. | jkinudsjknds wrote: | I'm surprised by this perspective. I see Unreal as leading the | charge for indies and Unity struggling to follow suit. | | * Vastly better free content to throw in your games | | * Source available engine | | * No fees on the first million dollars of gross revenue | | * Clear communication on roadmap for engine development and | what's going to stay vs. change | DizzyDoo wrote: | Like some others who are commenting, I use Unity for my job every | day, and it's not been a great experience these last few years, | each 'part' (graphics pipelines, documentation, Editor and | tooling, and so on) has been steadily deteriorating over the | versions. This article from Garry (from Garry's Mod, Rust and so | on) from earlier in the year is still all accurate: | https://garry.tv/unity-2020 | | Sadly, I wonder how much the last few years of very obviously | aiming at Going Public has led the company and Unity as a | software to this state. When the forums are full of "what is | going on with Unity" threads and the company blog is full of | "we've bought this cloud company" and "we're investing in AR for | automative engineering", something isn't matching up. | brundolf wrote: | What I've heard is that many of the problems are growing-pains; | Unity has some really deep technical debt and they're (perhaps | too hastily) ripping it out and updating things, which is | causing angst for devs when a) their existing projects break, | and b) in some cases the old system actually gets deprecated | _before_ the new one reaches parity. But it also sounds like | all of the completely new stuff that doesn 't involve scorched- | earth deprecation is generally well-received (and in some | cases, a long time coming). | | Does that line up with your experience? | DizzyDoo wrote: | I really, really wish it did. | | Here's just one concrete example: real-time point-light | shadows in the Universal Render Pipeline. URP is the new | 'default' way of rendering, the old renderer is being phased | out, this is the new way of doing things - as you say; | technical debt as they re-engineer. But how horrid has this | process of eliminating technical debt been? You've got Unity | proudly announcing that URP was 'production ready' in | February 2019, but you still can't have a point-light cast | real-time shadows. Currently that (let's face it, really | basic) feature is planned for Unity 2020.2, which is still in | alpha, but even if you download the alpha you can't access | that feature yet, _and_ they 've announced they're not going | to backport it, so bad luck if you're using 2019 or even | 2020.1 for your game. | | It's actually making me a bit sad to go into detail on what | watching the URP fiasco, so I'll spare any other examples | involving post-processing stacks, or 'camera stacking', or | Ambient Occlusion, or... | brundolf wrote: | That's pretty bad, but I'd still file that under "too- | hastily deprecating things before the new version is at | parity". Not that it isn't a huge issue, but could it be a | temporary issue? Is the newer one, in theory, on a good | track for the long-term? | DizzyDoo wrote: | I mean, I've been watching this unfold over multiple | years, and I fully expect this to continue over the next | two at the very least, and it applies across every slice | of the engine that I'm aware of, and some that I'm not | intimately familiar with (I hear second-hand that | networking is somehow in a worse state?) | | I guess everyone has different tolerances for what may | technically be a 'temporary issue.' Yes, I have no doubt | that all this engineering will lead to a better, more | stable Unity, but for _right now_ I actually have to | somehow write real software and ship something to paying | customers. | squeaky-clean wrote: | The newer one (URP) is already in its second rewrite | after ditching the initial version (LWRP). They also | completely split the post-processing stack into two | incompatible stacks depending on whether you're using URP | or HDRP, then backtracked and are attempting to merge | them into a single stack again. | | So while maybe they'll get it all fixed soon, based on | their track record I'm pretty cynical and bet it's more | likely in 2021 or 2022 they'll announce yet another | overhaul of the rendering stack(s), probably unifying | them back into one stack or something. | DizzyDoo wrote: | Absolutely. One more additional thing: the latest back- | track has been the URP-is-not-a-standalone-package | anymore, URP package versions going forward are going to | be tied to a specific Editor version. I imagine this is | going to make the ability to backport features and bug | fixes incredibly difficult because the dependencies are | going to be so tightly enmeshed. | Vermeulen wrote: | It's not - they didn't deprecate the 'built in' render | pipeline, and said they don't plan to until the new one | has feature parity. They have odd marketing for their new | features - where they want developers to use them so they | call them production ready - but they do that so they can | get feedback and continue to fix them | yokto wrote: | I've tried to customize their open source HDRP to add a | shader feature and the whole pipeline was astonishingly | messy and super convoluted. I'm really not optimistic on | their chances of shipping a decent production ready | pipeline before the end of 2021. | kaesar14 wrote: | "We have experienced rapid growth. Our revenue grew from $380.8 | million to $541.8 million for the years ended December 31, 2018 | and 2019, respectively, representing year-over-year growth of | 42%, and from $252.8 million to $351.3 million for the six months | ended June 30, 2019 and 2020, respectively, representing period- | over-period growth of 39%. We generated net losses for the years | ended December 31, 2018 and 2019, and six months ended June 30, | 2019 and 2020, of $131.6 million, $163.2 million, $67.1 million | and $54.1 million, respectively, which included $20.9 million, | $44.5 million, $14.8 million and $21.7 million, respectively, of | stock-based compensation expense. We reduced our net cash used in | operating activities from $81.1 million to $67.9 million for the | years ended December 31, 2018 and 2019, respectively, and from | $19.8 million to $15.4 million for the six months ended June 30, | 2019 and 2020, respectively." | | Promising financials! | nabla9 wrote: | Rapid growth software company with most of the sales coming | product should have price/sales to be abowe 10-20 at least. | | Should we expect $5 -10 billion market cap? | tempsy wrote: | But growth is already slowing from 2018-2019 vs 2019-2020 | period. | | 40% YoY growth for SaaS is par for the course, and the revenue | figure is a bit light. | | Not necessarily a home run in the public markets though if | there's a time to do a tech IPO it's now given the frothiness | of the market. | jkinudsjknds wrote: | Sounds kind of mixed to me. What's going to enable them to turn | an annual loss of ~$150M into a profit? | nabla9 wrote: | Unity turns into profit in the instant they stop seeking | growth. Their annual losses are growing in line of their | annual sales and marketing. Unity has year-over-year growth | of 42%. ___________________________________________________________________ (page generated 2020-08-24 23:01 UTC)