Mythfall Devlog: Hacking Go Plugins for hot code reloading

Поділитися
Вставка
  • Опубліковано 24 гру 2024

КОМЕНТАРІ • 25

  • @thatonekidreef
    @thatonekidreef 4 місяці тому +1

    We need more MMO RPGs i love what you are doing keep the uploads going

  • @Claucker7
    @Claucker7 4 місяці тому +1

    wow that's awesome
    I loved go the first time I looked at it, to see it being used for game dev is so cool
    Keep up the nice work

    • @UnitOfTimeYT
      @UnitOfTimeYT  4 місяці тому +3

      Thanks! Go is a pretty cool language. I agree!

  • @laskdjlaskdj12
    @laskdjlaskdj12 4 місяці тому +1

    What a nice job! By the way, can i ask what software you are using when you draw a graph in that video?

    • @oskar7063
      @oskar7063 4 місяці тому

      obsidian

    • @UnitOfTimeYT
      @UnitOfTimeYT  4 місяці тому +2

      Thanks! Yeah I use obsidian for a lot of my note taking and graph drawing. It's pretty nice

    • @laskdjlaskdj12
      @laskdjlaskdj12 4 місяці тому

      @@UnitOfTimeYT Thanks for letting me know!

  • @kingcole_thered
    @kingcole_thered 4 місяці тому

    wow, this is cool!!!

  • @gungun974
    @gungun974 4 місяці тому

    I know it’s maybe to complex for what it could be worth but I find your research and implementation fun. That remember time when I try solution to interconnect vite bundling and live restart with my golang applications, this was complex but fun.
    For mods I think you should more focus on LUA. I really like the factorio moding way where the core games was written in c++ with adapter for lua scripts that’s other core features and mods can used.
    After don’t forget people are crazy, never forget Minecraft mods loader are in reality big JVM bytes codes hacks to change the behavior of the game so everything is possible xD

    • @UnitOfTimeYT
      @UnitOfTimeYT  4 місяці тому

      Haha yeah very true! Thanks for the suggestions!

  • @nellfs
    @nellfs 4 місяці тому +1

    niceeee!

  • @TheQxY
    @TheQxY 4 місяці тому +1

    Very cool! Do you have any idea about the overhead of loading code from static libraries like this?

    • @UnitOfTimeYT
      @UnitOfTimeYT  4 місяці тому +1

      Thanks! If I had to guess, when i dynamically link my plugin library it probably runs pretty close to native performance. I'd assume that some compiler optimizations (like inlining across the plugin library boundary) would be impossible, but I'm not 100% sure.

  • @NathanYoungman
    @NathanYoungman 4 місяці тому

    This looks awesome. After looking around, I found that ebitengine/purego has dlopen and dlclose. I wonder it would be possible to cleanup the old version of the plugin, and whether that would cause any issues? It also has LoadLibrary for Windows.

    • @UnitOfTimeYT
      @UnitOfTimeYT  4 місяці тому

      Oh that's a cool idea. I was aware of ebitengine/purego but I never though about using it for this purpose. but I'm pretty sure the go plugin system just uses dlopen under the hood. So I guess purego would probably work too

    • @UnitOfTimeYT
      @UnitOfTimeYT  4 місяці тому

      Also, thanks for the Github sponsorship! Means a lot!

  • @SimGunther
    @SimGunther 4 місяці тому +1

    Have you considered an interpreted version of the game during development while the final release is just a single binary? Maybe it'd be too much trouble for what you could gain out of it, but you never know, right?

    • @UnitOfTimeYT
      @UnitOfTimeYT  4 місяці тому +1

      Yeah I don't think interpreters are necessarily a bad thing. I do think it would push me into separating my core game "engine" away from a scriptable layer on top. Which is maybe a good thing to do in general. But the negative side is that It'd probably be a bit more work to develop that "engine" layer. The interpreter package "Yaegi" that I mentioned in the video had some shortcomings that made it hard for my use case, but if it worked fine then I might have ended up going that route. It was kind of my first idea/attempt at doing something like this.

  • @rohithreddy75
    @rohithreddy75 4 місяці тому +2

    What was the reason you made a web game?

    • @UnitOfTimeYT
      @UnitOfTimeYT  4 місяці тому +7

      Web games are nice because they have a low barrier of entry for people. So anyone with a computer can immediately go to my website and play. That said, I can also compile it as a desktop app - So I'm planning to eventually release Mythfall on steam too!

    • @rohithreddy75
      @rohithreddy75 4 місяці тому

      ​@@UnitOfTimeYT does it mean your game doesnt have any requirements to run or its about the ease of just opening a website and playing? Love how the indie dev vlogs scene is going 😁

    • @UnitOfTimeYT
      @UnitOfTimeYT  4 місяці тому +2

      For me, it's mostly about how easy it is for people to just go to the website and instantly be able to play. But it also helps that its a pixel art game, so most computers can probably run it - so that helps too!

    • @rohithreddy75
      @rohithreddy75 4 місяці тому

      @@UnitOfTimeYT thank you. I am trying to understand the game dev scene specially pixel part and it can be done solo with limited budget.

  • @PowerBeetle-c9w
    @PowerBeetle-c9w 4 місяці тому

    Why can't you get your stuff back when you die

    • @UnitOfTimeYT
      @UnitOfTimeYT  4 місяці тому

      Right now the game is perma-death: so every time you go on an adventure you risk losing your character and items