Remix.run Logo
thurn 6 hours ago

What I really want is the ability to do more operations which are decoupled from the editor. Even just being able to reliably type check Unity C# code without a running editor would be great, or running unit tests. Would really improve things like CI as well as the ability to run parallel development sessions.

bob1029 4 hours ago | parent | next [-]

Headless execution exists and is one of the simplest ways to get at this experience.

The biggest issue with unity is that the editor (even when headless) is designed to take an exclusive lock over the physical project directory. This can be solved by doing a robocopy of the project to a temporary path, deleting any lock files, and then running headless execution there. You can keep the same temp path(s) over many iterations with incremental sync so it's not copying the entire universe each time.

This works for CI, LLM automation, etc.

0x1ceb00da 2 hours ago | parent [-]

How long does the headless unity take to boot?

jayd16 3 hours ago | parent | prev | next [-]

Rider and Visual Studio do this but you mean outside an IDE that's doing incremental builds on change?

Hmm I guess yeah you're going to need multiple separate workspaces to work on multiple large changes in parallel. For games that can be a large cost.

Multiple sandboxes on the same workspace wound be nice.

embedding-shape 5 hours ago | parent | prev [-]

I did that for my Unity games like a decade ago, you can too :) Requires a design that has one core and then using Unity basically as a renderer/viewer though, but is a relatively easy design actually. And yes, automation and DX gets so much easier. I think Captain of Industry is built like this too, remember reading about it here on HN from the developers in some comments.

BowBun 5 hours ago | parent [-]

Same here, in Godot! This is a common practice for games with performance/networking constraints too. For example building a deterministic sim in a regular engine tends to fail without custom primitives or a nice library to handle some of the intricacies. By moving non-display code out of the engines you can reliably build and control all of this.