I had a long list of reasons why, but my impulse blocker cut me out. Oh well. Here's a much smaller list:
- You have to jump through many hoops to run Unity in headless mode
- I cannot separate out build processes into discrete stages
- Linux version is behind. Windows is slow. Macs require you to use specialized cloud (such as MacStadium)
- License server is unreliable. It always goes down with a 500 error, every day for most of the evening (California time). That means I cannot easily elastically scale build servers.
- WebGL target means running emscripten, which means running a compiler in Python. It is slow. We sped it up by using a really expensive AWS instance size to run it.
- We built our own pipeline because Unity Cloud is even slower
I think it is like this because:
- We're not Unity's core market. We're a team that can afford expertise on CI
- Unity doesn't dogfood their own tools and build a game with it. They don't fix the bugs that come from having to build a game.
- Unity Cloud probably cheats and uses a special version of the binary that does not talk with their license server. So there is no pressure to fix their license servers, and make it reliable enough to run elastic loads. (They probably don't run it elastically because they use Macs for their build servers)
I look enviously on the folks who work with Unreal Engine. I also hear that Defold is now open source. Maybe people can use that instead.