Another random idea: your OS (and maybe your engine) keeps track of all memory you allocated. In theory you can backup memory before hot reloading so if a bug made your character stuck in the wall you can rollback everything.
If I understand Your idea correctly, this works kind of like this. I'm already using pools for objects, and allocate them in engine part of code. So DLL code can freely instantiate/destroy objects/entities as no allocation is happening there. I'm using Zig, it uses explicit allocators, so idea with arena also should be pretty easy to implement.
It will crash or produce garbage if you change data layout, won't it? Theoritically you can mess with you language tools to check if changes were safe to reload. Also it is probably too hard to do.
Thanks! This is game specific engine only for this project. Made with SDL + Zig. So unforunately, it won't be public. Previous game (Pumpkinman) also had custom engine (MonoGame, C#).
@@undermountain_dev sure :) and why are you creating your own engine instead of using something existing? It sounds for me like and overkill, as long as your focus is to create a game, not engine
@@Kasyx Engines contain lots of stuff you dont need, so if you already know how to create a basic engine for a small game, development can become much faster as you also dont need to deal with GUI.
@@mando5279 from my experience, using some sort of framework to develop any application is always a good practice which saves a lot of time. There are really a few situations when it's worth creating your own engine/framework
Few reasons. Mostly, because I enjoy making it. Also, I'm terrible at reading docs so I often end up fighting with the engine and that becomes annoying quickly. Also, I like some pros about making my own engine: 1. no need to worry about licensing 2. I'm learning how games are made in principle, not in specific engines etc.
This dude is wild, Zig and Emacs with a custom game engine. Living the life!
Thanks! Trying my best.
Really interesting topic, thank you!
You're welcome!
Hotrealoading time. I can smell it
That's right
Another random idea: your OS (and maybe your engine) keeps track of all memory you allocated. In theory you can backup memory before hot reloading so if a bug made your character stuck in the wall you can rollback everything.
THATS SO COOL. Imagine a self evolving game with any Llama!
Interesting idea! I think, technically it's doable. Limitng factor is only the LLM itself.
Honestly that's wild
Yeah, that's pretty cool, also language agnostic.
7:40 Can't you make a lightweight memory manager that allocates memory from OS in your engine code and code in DLL messes only with arena/free list?
If I understand Your idea correctly, this works kind of like this. I'm already using pools for objects, and allocate them in engine part of code. So DLL code can freely instantiate/destroy objects/entities as no allocation is happening there. I'm using Zig, it uses explicit allocators, so idea with arena also should be pretty easy to implement.
It will crash or produce garbage if you change data layout, won't it? Theoritically you can mess with you language tools to check if changes were safe to reload. Also it is probably too hard to do.
Next video should be coding while running IRL 😂
Not quite, but maybe one day :)
Noice. You've mentioned you're doing your own engine. Anything more about it?
Thanks! This is game specific engine only for this project. Made with SDL + Zig. So unforunately, it won't be public. Previous game (Pumpkinman) also had custom engine (MonoGame, C#).
@@undermountain_dev sure :) and why are you creating your own engine instead of using something existing? It sounds for me like and overkill, as long as your focus is to create a game, not engine
@@Kasyx Engines contain lots of stuff you dont need, so if you already know how to create a basic engine for a small game, development can become much faster as you also dont need to deal with GUI.
@@mando5279 from my experience, using some sort of framework to develop any application is always a good practice which saves a lot of time. There are really a few situations when it's worth creating your own engine/framework
Few reasons. Mostly, because I enjoy making it. Also, I'm terrible at reading docs so I often end up fighting with the engine and that becomes annoying quickly. Also, I like some pros about making my own engine: 1. no need to worry about licensing 2. I'm learning how games are made in principle, not in specific engines etc.