C++ hot reloading - Any news?

Earlier this year, I asked about hot reloading C++ code. I got the following answer:

“Our teams have recognized the need for hot reloading of C++ code since we started working with the engine. We have thoughts about the best way to achieve this, but haven’t finalized a decision yet. Our hope is that using C++ as a language for “scripting” should be have iteration times similar to Lua or Flow Graph.”

Any news on this?

If I can’t get Recode, I build my own :wink: Not really, just toying around with the idea https://github.com/kterhorst/HotReloadTest (not integrated into lumberyard).

Hey @xdopamine, there has been no movement on the hot reloading of C++ at this time. Thanks for posting the link to your test!

Why we can’t simply use use the “EditAndContinue” feature of VS for the “Game” project? Is it possible to adjust the WAF flags a bit to enable this feature? Hot reloading is nice, but I think its also important to debug your changes. Don’t get me wrong, LUA is nice but as a C++ developer its like being a writer. :slight_smile:

Today I´ve come across this nice library https://github.com/RuntimeCompiledCPlusPlus/RuntimeCompiledCPlusPlus. It sounds very promising to me. The only drawback is, that its a bit intrusive to your code, because you have to derive from certain interfaces and so on. But for me its a nice solution.

+1 edit and continue, never used it in big projects like lumberyard, but when I used it years ago in a small project it was almost instantaneus and very productive.

Thanks for sharing this information with us! This one is interesting because it only takes into account source files that actually changed. The system detects the source files that changed, recompiles them and creates a tiny (compared to a full build) DLL, linked from the just compiled object files. This approach is really nice because it overcomes the slow linking performance and leads to less wasted space due to unmodified code that gets relinked every time you change something. Cool.

Please make a specific thread about this and keep us updated about your progress and discoveries.

You’re welcome! :slight_smile: Exactly! It’s far more productive than having to recompile the whole Game.dll every time you change a source file. I’m currently working on a Lumberyard Gem for runtime compiled components which I will release soon. It’s based on RCCP but it’s specifically designed for rapid component development. I also added support for pre-compiled headers to further improve compile times. I will keep you up to date about the current status.

Better late than never… Here you can find a demo video about our current progress on that topic: https://www.youtube.com/watch?v=izc_vuctt44 Currently our Gem is in “beta” state and we’re evaluating our distributing options.

Late to the party, but you might be interested in Live++: https://molecular-matters.com/products_livepp.html