If it’s a type of enemy you see just one of at a time but see it often, sure. If there’s many, cost of copy/delete is definitely not that high relatively speaking.
(random sidenote: in the first Mirror’s Edge game, you can sometimes hear enemies you passed scream as they fall when you pass from one part of a map to another, as the ground in the map is unloaded before the enemies unload)
im not very versed in game engine design, but dont they dynamically stream them into memory before they will be needed, and discard them when they wont nowadays?
Dynamic streaming is common nowadays, as games have gotten large enough that not everything in a level can fit into memory.
I don’t know about what is actually done in industry but I feel like most of the time you wouldn’t bother with keeping dead instances unless instancing is shown to actually be a performance problem, which will probably not happen all that often
Godot for example doesn’t have built in dynamic level streaming yet or a built in way to cycle through dead instances as far as I can tell, although I’m sure that wouldn’t be hard to do with code
This is how it works in many game engines.
You set up the monsters and just hide them/disable them. They’re already allocated to memory.
And it’s a performance cost to create/delete versus just moving a dead enemy out of view, then respawning that enemy later in the level.
If it’s a type of enemy you see just one of at a time but see it often, sure. If there’s many, cost of copy/delete is definitely not that high relatively speaking.
(random sidenote: in the first Mirror’s Edge game, you can sometimes hear enemies you passed scream as they fall when you pass from one part of a map to another, as the ground in the map is unloaded before the enemies unload)
im not very versed in game engine design, but dont they dynamically stream them into memory before they will be needed, and discard them when they wont nowadays?
Dynamic streaming is common nowadays, as games have gotten large enough that not everything in a level can fit into memory.
I don’t know about what is actually done in industry but I feel like most of the time you wouldn’t bother with keeping dead instances unless instancing is shown to actually be a performance problem, which will probably not happen all that often
Godot for example doesn’t have built in dynamic level streaming yet or a built in way to cycle through dead instances as far as I can tell, although I’m sure that wouldn’t be hard to do with code