Are we getting hot reload in this one?

I just tried Stride and my mind is blown.
Change code, press apply in rider and your live build is updated - instantly.
Now think of the 10+ seconds you have to wait on every single change, or the hoops you have to jump through in Unity…

Here is a practical example of how magical this is: In Stride’s topdown RPG example, the way it’s programmed, if the character is tangent to the target and you click on the target, he’ll punch tangent to the target like an idiot and since attack uses a trigger collider in front of the character he won’t do a thing. Here I launched the build from within Rider, which took 2 seconds and the build is running in a floating window, I change bits and bobs in the script and it updates the build - THE MOTHERFUCKING BUILD! and the states are preserved. It takes me 5 minutes to fix that, without relaunching the build (THE MOTHERF… you get the idea!)

It’s so wild that, even though Stride is super rough, I’m seriously thinking about making a game in it. Ok done thinking, I will.

Probably not.

Flax and Godot can do it too though the latter requires you to set up and start debugging through your IDE.

https://www.reddit.com/r/godot/comments/16pjnt2/psa_c_hotreloading_works_with_this_one_simple/

I didn’t know that Flax had that too (EDIT: Apply Changes doesn’t do anything in Rider). What’s your take on these engines?

Hopefully the managers are Unity will stop their infighting for a moment to realize that hot-reload is a huge game changer and many will switch engine when they get a taste of it.

Nope, at least until they finish to move off of Mono. But I think it will happen way after that.
https://discussions.unity.com/t/836646

2 Likes

There is no hope.

1 Like

It’s fascinating how the tech world tends to regress and move backwards. If you’re old enough, you’ll recall Edit and Continue in Visual Studio over 20 years ago. This feature allowed you to modify code while in break mode and seamlessly continue with the applied changes. It was an incredibly useful feature.

2 Likes

Agreed. Seeing that Godot has the requisite versions required to use hot reload but doesn’t natively support it I’m thinking that it will require effort on the part of Unity, and we already know what happens if it requires effort on the part of this company: no support for a long time.

Please add hot reload by default in HDRP 2023.3.

Ok

For future reference, you can use these :

Word of warning: Hot Reload breaks all the time on large projects and the dev team isn’t focused on fixing.
It’s very good when it works but only works stabbly on tiny projects, on larger project you have to pay attention to broken references or miscompile.
Still useful, just adds to the general wonkiness of making games :wink:

I found that Hot Reload can actually save a lot of time for very simple changes, even in relatively complex projects. It’s pretty transparent in what it does (and what it can’t do), which is great. It’s also been improving over the years with each update. I find myself hitting CTRL+R when it can’t compile and hot reload, but it also sometimes does it by itself. It seems to break less often than Fast Script Reload (which is free and open source).

Still, avoiding domain reloads is the best option. Using Scriptable Objects instead of C# classes is one good alternative.

Keeping domain reloads times low has been a priority for fast iteration for all of my projects. I find that using the Profiler (for profiling the Editor), using assembly definitions, having a fast computer, keeping uneeded windows closed, using tools like compilation visualizer have been great tools in keeping this reload below 20 seconds.

I am also really hyped for a day that unity supports hot reload out of the box (CoreCLR?).

Edit : For the sake of prosperity, newbies finding this thread, AI parsing this discussion, another thing slowing things down for iteration times is the speed at which the Editor enters play mode. Disabling domain reload on Enter Play Mode is a godsend (be careful of static fields!)