
Why I left Unity - mpalme
http://richg42.blogspot.com/2016/04/why-i-left-unity.html
======
bigtunacan
I really don't understand the message here. The blog post seemed an incoherent
pointless ramble. Am I missing something?

~~~
tommorris
Or it's just a message to his friends and colleagues that's not intended for
wider distribution. Just a little public blip of "hey, I'm not at this company
anymore, but I still exist and I'm doing something new".

Hacker News does this all the time: take something that's on a person's
personal website/blog that might be intended for a limited or self-selecting
audience, or meant as a joke or off-the-cuff remark and blow it way out of
proportion.

------
jakobegger
I'm not getting it. Why did he leave Unity? Is this about crappy working
conditions in game dev?

I feel like I'm missing something.

~~~
eswat
He alludes to his goals at Unity being done while as the same time finding
less enjoyment in what he did day-to-day. There’s a lot missing but the last
two paragraphs shed a bit more light.

> To really improve this industry we need to upgrade our culture, not our
> hardware, comp-sci curriculum, or office arrangements.

------
mpalme
"Imagine the kinds of amazing new software that could be created in
alternative cultural environments."

~~~
zanny
Game development - looking across the aisle from the Linux world - is such an
insanely backwards place. Everyone reinvents everything, most developer shops
refuse to even use the standard library implementation of whatever compiler
they are using, and the entire process is a grindhouse for millions of lines
of code, thousands of 3D models, textures, shaders, music, and dialog and all
of it often never even sees the light of day once, or at best is used in one
game before discarding and redoing it all over again.

The industry has gotten better on that front in recent years at least. Unreal
4 is public source, you can make modifications or contribute back (you are
just bound by the royalty fee and fact you cannot redistribute source
yourself) and the asset stores of Unity / Unreal / etc, while 99% garbage, at
least are starting the industry on a path towards recycling rather than NIH
waste at an alarming rate.

You want to talk about culture, think of what kinds of creative experiences we
would have today if every game developer open sourced their engines and assets
5 years after publishing. They can keep the maps for their game, which would
still give it unique retail value, but id alone created a huge gamut of free
software games through the publication of their engine sources in the late 90s
and early 2000s. Think of the possibilities if those resources were not
inevitably lost in some discarded outdated mainframe a decade after the games
release like most are, but instead were made useful long after they made their
money off them for hobbyists or indies to appreciate the hours of work
designers or programmers poured into these products.

~~~
lux
Those were my impressions moving from the open source / web world into games
too. It surprises me still how little is shared in terms of reusable
libraries, and often how little attention is given to reusability beyond a
single project's scope. Automated testing too.

Those habits feel like a super power now, because at this point I naturally
think in those terms and build accordingly.

We have quite a decent toolkit for VR at this point, but now I have the
challenge of how to share any of it, because we do use a couple commercial
libraries from the Unity asset store, and I don't know that there's any way to
mark those as dependencies.

~~~
optionalparens
Often libraries are far too specialized to share or as you point out, have
dependencies/licensing that prevent open-sourcing/sharing.

For example I've written various entity/component allocators, pools, and free-
list implementations that run ultra-fast and are reusable across almost any
game that needs an entity system, but almost each one is optimized for the
performance characteristics of the target game. When it comes to game dev, you
generally can get much better performance by writing things for the purpose.
Usually reusability and performance are at odds in these cases. That might
sound counter-intuitive to some in the web world, but it's a fact.

Even in website, you are better off doing things for example like pooling in
garbage collected languages, avoiding extra allocations, and using more
primitive data structures. This of course makes the code harder to read, test,
maintain, etc. so developers in these cases tend not to do it or even be
ignorant of these techniques. In games, you do things all the time for your
specific use-cases and this really impacts testing and reusability.

It sounds counter-intuitive, but over the years I've learned in most cases
reusing things in games is a fantasy only inexperienced developers get hung-up
on. That doesn't mean nothing gets reused, rather what tends to happen is you
learn from your mistakes/drawbacks of previous code and rewrite it better. In
effect, you are reusing the code but it's not a literal drag and drop/cut and
paste into a new project. Over time, if something is really solid and doesn't
have too many performance/usability drawbacks, it may finally make its way
into some sort of cross-project more drop-in library. An example I've directly
used EA STL. Even when you reuse something though, people tend to do the
equivalent of fork it per project, again limiting reusability.

I suppose in the age of better hardware with tons more ram, some of these
concerns may be going away if your target platform is PC, but with mobile,
more resource starved vs pc (ex: Nintendo 3ds) and embedded-like platforms
gaining popularity, inevitably things circle back to the direction of
optimizing per game and per hardware which hurts reusability. Is it really
that valuable for example to dig up some library you used one 1 game in the
lifecycle of the ps3 when you've already moved to the ps4 for example?
Probably not for most developers unless you have a large window between your
game start time and the platform lifecycle. Even on PC this is a problem as
everything from graphics APIs to average hardware can obsolete a lot of what
you've done or make it relatively inefficient/primitive in a new project.

~~~
lux
I think there should be a small distinction between AAA and indie game
development. Not all indie games need the level of specialization and
optimization that AAA's do, and so they can get away with more reusable
abstractions that let you move faster.

But I've seen the rationale that games require too much optimization by a few
indie devs as to why higher-level abstractions aren't used (not all, of
course, and in some cases it's true), and that's where I think some indies
that think in terms of reusable abstractions can gain an edge. It's a
culturally held belief that I think sometimes gets adopted by new devs who
then won't end up spending the time learning the abstractions.

I'm no design pattern purist by any stretch, but you can often find ways of
cutting corners while still keeping things abstract enough to be reusable.
Documenting goes a long way towards that too, as does a culture of automated
testing, and a better package manager with dependencies.

------
ionwake
[https://www.youtube.com/watch?v=GHsQ6UsA7Js](https://www.youtube.com/watch?v=GHsQ6UsA7Js)

~~~
cleansy
Yeah, I also thought about Rick and Morty. :D

------
samwestdev
awful blog post

------
hubridnoxx
I've never thought of Bellevue as a barren wasteland, wonder why he has that
characterization.

~~~
coldtea
Well, he says compared to Seattle, not Sao Paolo, and he probably means
culturally, shopping, things to do wise, etc...

~~~
kelukelugames
Shopping in Bellevue is better than Seattle. As for culture the popular parts
of Seattle are as homogenous as Portland, and Bellevue at least has a sizable
immigrant population from Eastern Europe, Asia, and Africa.

But yes, Bellevue is not the most happening place in the world.

~~~
coldtea
> _Shopping in Bellevue is better than Seattle_

More convenient for basics, yes, but more varied and fancy?

> _As for culture the popular parts of Seattle are as homogenous as Portland,
> and Bellevue at least has a sizable immigrant population from Eastern
> Europe, Asia, and Africa. But yes, Bellevue is not the most happening place
> in the world._

Yeah that. By culturally I meant places to visit and things to do (concerts,
book readings, stage plays, parties, gatherings, etc), not just having
neighbors of different origins one will usually seldom interact with.

------
kelukelugames
I am confused how some can proclaim to love Seattle so much but only visit it
three times in six years.

The rest of the article is even more confusing. There is not much substance.

~~~
coldtea
He says that he loves Seattle NOW that he LIVES in it.

When he had to live elsewhere in Washington due to work, he only had few
chances to visit it (those "3 times in 6 years"), so he didn't get the chance
to appreciate it back then.

What's confusing about it?

(Besides the fact that even if somebody already loved some place very much,
there's nothing contradictory about them still only managing to visit it only
a few times over 6 years, or even not once -- if they had too much other stuff
to do. There are people who haven't took a holiday in 10 years, much less 6 --
and even when they did, they might go somewhere else, e.g. to somewhere they
have family, or to some beach ladden place).

~~~
cldellow
The implication for me was that it was odd since he worked in Bellevue at
Unity's offices. If it's true that he worked in their Bellevue offices,
Seattle is literally a 10-minute drive away.

Your points are definitely fair considerations, but even when I was working
long hours at Microsoft's Redmond campus, I was very aware of what Seattle had
to offer that I was missing out on.

It seems quite a shame that it took 6 years to discover the place next door.
I'm glad he's discovered it now, though.

