So I’m currently looking to move my game design project(s) over to Rust because I do truly like the language (albeit being frustrated when I tried using it the last time, but I think that was because I let things get complicated without blackboxing them). However, I’m looking for a good framework or engine before diving in with OpenGL/Vulkan and getting my hands dirty with that system (which is what I was using initially).

For the record, one of my games is going to be in the style of Octopath Traveler and the other I’m looking at either doing the same or doing a voxel game. Game 1 is a JRPG and Game 2 is gonna be a combo Tactics/Puzzle game.

I’ve bounced back and forth a bit with both game engines in Rust but also just implementations for this project in general (Game 1, that is). I’ve moved from C to C++ to Unreal Engine to Rust back to C, then to C++ then now back to Rust again. Within Rust specifically, like I said, I did use I believe it was glium and egui to for my OpenGL calls and GUI respectively, but this time around, I’ve looked at specifically Bevy and Fyrox, but I’m not too settled on either. Fyrox seems like a lot to deal with for the projects I’m going for (which is one of the reasons I switched off of Unreal Engine), but Bevy is a little bit difficult to get a handle on with my project (Game 1).

Does anyone have any advice for me on how to go about this? Thanks in advance!

Edit: Per this comment, I do agree that it’s a good idea to find something to work with and stick with it to make something good. I like Bevy and its modular plugin system but outside of the tutorials (which are quite small and focused) and examples from plugins, I don’t really know how the engine works. I also don’t really have any idea how to combine these plugins (e.g. I have a plugin for embedding assets in my executable, a plugin for animating sprites from a sprite sheet, a plugin for loading 2D sprites into a 3D scene, etc.) into what I want to do. I’ll try to do some more reading, but if anyone has a better option, let me know.

  • Hexorg@beehaw.orgM
    link
    fedilink
    English
    arrow-up
    7
    ·
    2 years ago

    I’m saying this because I’ve done the exact same mistake - if during your game development you are debating switching your game engines/programming languages - you’re not in the right mindset. Making a game is not about having the perfect language or the perfect engine or the perfect library. It’s about pipelining whatever you have available to make something fun. Make something viable first - something your friends can play and say “This is slow and stutters and has a ton of bugs but I’m having fun playing it”. You can do that in terminal if you want (see dwarf fortress). And once it’s in a fun playable state then you can decide technical aspects for it like what language/library/engine to use.

    • Cass.Forest@beehaw.orgOP
      link
      fedilink
      English
      arrow-up
      1
      ·
      edit-2
      2 years ago

      You do make a good point, but to be fair, Game 1 is a fan game for something.

      Edit: on that same coin, I do have the know-how to make a game in Minecraft.

  • grouvie@lemmy.help
    link
    fedilink
    English
    arrow-up
    3
    ·
    edit-2
    2 years ago

    In my opinion restarting with rust is currently not the best idea. There are a lot of more polished tools available for other languages. But if you are sure about using rust, you can check out arewegameyet. It lists a lot of tools and crates to start game development with rust. I tried out bevy once, but couldn’t really figure it out in a time I was happy with. Doing stuff like this in rust includes a lot of reading (auto generated) documentations and just trying stuff out again, again and again.

    • Cass.Forest@beehaw.orgOP
      link
      fedilink
      English
      arrow-up
      1
      ·
      2 years ago

      I believe the first time I used Rust, it was because I wanted to practice the language I had just learned but this time, I think it’s spurred on by seeing the development of Veloren.

  • e8d79@feddit.de
    link
    fedilink
    English
    arrow-up
    2
    ·
    2 years ago

    Have you considered Godot? It supports a custom language called GDScript that is similar to Python and C# out of the box. There is also a community that maintains rust bindings.

    • beatnik86@lemmy.world
      link
      fedilink
      English
      arrow-up
      2
      ·
      2 years ago

      I am a big fan of Godot, but using Rust with Godot 4 through Gdextension is not in a very stable place yet, and I haven’t been able to figure it out yet. Godot 3 with Rust Gdnative bindings was workable but a bit painful to set up.

  • aksdb@feddit.de
    link
    fedilink
    English
    arrow-up
    2
    ·
    edit-2
    2 years ago

    I can’t help you, but I can maybe make your decision a bit harder… what do you think about Go? If you have no hard feelings against it, Ebitengine could be to your liking.

    • Cass.Forest@beehaw.orgOP
      link
      fedilink
      English
      arrow-up
      1
      ·
      2 years ago

      I’ve heard of Go but I haven’t really looked into it. Also, Ebitengine only works with 2D games, so I wouldn’t be able to use it for either project I’m working on.

      • aksdb@feddit.de
        link
        fedilink
        English
        arrow-up
        1
        ·
        edit-2
        2 years ago

        Isn’t Octopath Traveler or many JRPGs 2(.5)D?

        Edit: basically this, which is developed using Ebitengine.