In this release, we’re updating the engine from SDL to SDL2, and there are many optimizations to go along with it. Aside from the optimizations, SDL2 is also the stepping stone to ports. We have Linux compiling and playable; it just needs some testing.

Moreover, there is now a(n experimental) multithreading option in the game settings that makes the game even faster!

We also have some new individual tree graphics, and an update to grass ramps as well.

This has been mostly the hard work of Putnam! Meanwhile I’ve started up on adventure mode - the long work of updating menus and adding audio has begun! Hopefully we’ll have some progress to show their soon, as we continue updating fortress mode as well.

  • Dragonseel@lemmy.sdf.org
    link
    fedilink
    English
    arrow-up
    4
    ·
    1 year ago

    Wow. That is a cool. My limited experience working with single-threaded game-stuff tells me it is exceptionally hard to port stuff that is written without threading in mind, to multi-threading. Getting the behavior to stay the same while still actually getting better performance requires some really deep insight into how stuff works in the program. On a (program-)global scale. Mad respect if it works out. This should make huge maps or huge fortresses possible.

    I haven’t yet played the steam version (it is on my todo-list though), but sank quite some hours into the “legacy” version. It can become laggy if you play on big maps with a lot of dwarfs/critters etc on it. I am excited to have even more stuff possible in this already very complex and huge game.

    • soundasleep@kbin.social
      link
      fedilink
      arrow-up
      0
      ·
      1 year ago

      I’m really curious how they’re doing it, too! I’m making a multithreaded simulation game and the parts that can’t multithread well are related to AI / character logic / tasks and errands / pathfinding, and anything to do with rendering.

      • Tarte@kbin.social
        link
        fedilink
        arrow-up
        1
        ·
        edit-2
        1 year ago

        Would you mind explaining to me why you would include “anything to do with rendering” in that list? I haven’t tried myself at multithreading yet, but rendering was easy enough (in my limited experience) to completely decouple from the actual game state or game logic.

        I’m simply curious, because I’m toying with the idea to utilize multithreading in my next project.