• VitoRobles
    link
    fedilink
    English
    arrow-up
    8
    ·
    1 day ago

    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.

    • Natanael@infosec.pub
      link
      fedilink
      English
      arrow-up
      1
      ·
      12 hours ago

      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)

    • umbrella@lemmy.ml
      link
      fedilink
      English
      arrow-up
      2
      ·
      1 day ago

      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?

      • AdrianTheFrog@lemmy.world
        link
        fedilink
        English
        arrow-up
        6
        ·
        17 hours ago

        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