this post was submitted on 10 Jun 2023
2 points (100.0% liked)

Programming

13368 readers
1 users here now

All things programming and coding related. Subcommunity of Technology.


This community's icon was made by Aaron Schneider, under the CC-BY-NC-SA 4.0 license.

founded 1 year ago
MODERATORS
 

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.

top 4 comments
sorted by: hot top controversial new old
[–] Hexorg@beehaw.org 3 points 1 year 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.

[–] e8d79@feddit.de 0 points 1 year ago (1 children)

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 0 points 1 year ago (1 children)

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.

[–] drh@lemmy.one 1 points 1 year ago

I spent some time a few weeks back to figure this out, and I’ve got a bare-bones repo that uses rust through gdext to create a custom player node in rust:

https://github.com/drhaynes/godot-gdext-rust-example

Might be useful as a reference or starting point for further exploration.