3 ms·
Does Crystal support Hot Reloading? The slow compilation speed is a non-starter for me.
by celdon25 2y ago
Does Crystal support Hot Reloading? The slow compilation speed is a non-starter for me.
- hi-v-rocknroll 2y agoHaha. Nope. Maybe Nim, V*, Go*, or Elixir would be a better choice for such a use-case. * So fast, they really don't need HCR.
- celdon25 2y agoI haven't tried it yet but I've wondered if Elixir might be a good choice for a game server with many concurrent players.
- hi-v-rocknroll 2y agoDefinitely and for chat. BEAM/HiPE VM allows native linking using NIFs so it's possible to integrate Erlang or Elixir with C-compatible projects for critical code sections, library interfacing, and perhaps even the majority of a performance-critical game engine as native code. Rustler also exists to write NIFs in Rust. Recall how VMware ESXi core tech was implemented mostly as Linux kernel modules and heavily-modified Linux to turn it inside-out as a type-1 hypervisor.
- misswaterfairy 2y agoNim does, when tied in with Unreal Engine 5. https://github.com/jmgomez/NimForUE https://github.com/jmgomez/NimForUE https://www.youtube.com/watch?v=Cdr4-cOsAWA https://www.youtube.com/watch?v=Cdr4-cOsAWA
- nox101 2y agoHCR provides changing things while th game is running in it's current state. fast recompile does not. Start game, wait for engine to initialize, select level, wait for it to load, move player or camera to desired location. Now iterate on something at that location via HCR. If you have to recompile and restart the game you're not going to have fast iteration
- sam0x17 2y agoThey have an interpreter mode now that is quite good and should be well-suited for these situations
- neonsunset 2y agoGamedev industry already settled on almost perfect language for this task (C#) so there is little profit in trying to reinvent the wheel. And by perfect I mean not the way Unity uses it but the way pure C# engines use it.
- pizza234 2y agoCrystal doesn't support parallelism[1], which is a dealbreaker in this context (and for performance sensitive programs in general). [1]=production grade; additionally, it seems that no work has been done on it for years.