Download

Live Coding vs Hot Reload?

4.22 introduces live coding into the editor.

On the limited info available (random small google snippets) I understand that it allows minor code updates at runtime but can not be used for class structural changes.
Is this it’s only benefit? Regular hot reloading can reload just about everything (apart from enums and structs) which seems superior.

Or are there more/other benefits I’m not seeing from Live Coding?

Edit: Just realized both can be used! Livecoding for small changes, hot reload for everthing else.

While Live Coding you can’t change structure of classes, you can do extensively code changes (methods) and you are fine and this means a lot because when you need to restart the editor during certain changes takes a lot of time, even more if you are debugging. So, this is more about speed up things on your daily coding.

This is a very good step on right direction.
dotNET devs always snob on Unreal’s iteration times, things are becoming interesting for this topic now :smiley:

You mean adding/removing classes or adding/removing methods inside class?

I always found Hot Reload to be pretty fragile. Structs get broken so easily.
I’m interested in Live Coding but I just started shutting down the engine for safety reasons whenever I compile. Since it doesn’t take a lot of time it was fine. I’ll see if I will change that in the future.

I didn’t try add or remove classes, but adding/removing methods or adding/removing properties will fail. In theory, the live coding patches code data in-memory with the compiled version of the code you just created, so changes on code as method contents it seems to work properly. New classes should be possible, since they are not referenced yet anywhere, but I didn’t test that.

There are methods to exclude files temporarily when editing, so maybe an exclusion on class creation can be managed. They did they it they were working on it. It’s just a v1.0 version right now and its gonna be limited in some ways to the actual product presumably. There is a bucketload of options and things to consider when using Live++ though. Check out more info here. https://molecular-matters.com/docs/livepp/documentation.html#API_disabling_optimizations