Zistack

joined 1 year ago
[–] Zistack@lemmy.sdf.org 2 points 4 months ago

I’m more curious about the choice for Rust-Bevy. I agree that Godot has a number of problems (am making a solo game there), but can you name some of those that got in the way more than they should? Also, with options like fyrox (rust), libgdx (java), monogame (c#), as well as more “full” engines like stride or armory, why exactly bevy?

The #1 issue with Godot is probably that it effectively cannot do multiplayer games, because the physics engine cannot support lag compensation. You wouldn't need this for something like a multiplayer card game, but for anything where precise timing or physics gets involved, you want lag compensation or your netcode is going to feel bad.

The big issue with most other game engines (including Godot) is really one of performance - in particular, the way that they handle multi-threading. They basically don't, and this is a problem if you want to do anything with significant simulation elements or or physics rollback (as in lag compensation). Godot attempts to do multi-threading a bit, but it does so very poorly - it's clear that the devs don't really know what they're doing. Modern computers are multi-core machines and they have been for over a decade now. We gotta stop pretending that we can get away with single-threading for games.

Bevy uses an async programming framework in its very core, so everything is multi-threaded if it can be. Combine this with a good ECS implementation and Bevy's performance should absolutely shred compared to what pretty much any other engine can do (at least when it comes to CPU-bound things - they're still working on the renderer, but it's getting to be pretty good).

I have to admit, I did not find Stride when I went looking for multi-threaded/async game engines. I'll give it a close look.

Regarding the art, what kind of 2D and 3D art is expected? UI, characters, backgrounds, sketches? Cutesy, post-apoc, some other style? Low, medium, high poly 3D objects? Rigging and animation?

We need various art things in various styles, so basically everything you just said. The artist we currently have can do all those things, but they're only one person. We don't need every artist to be omni-capable, though. If someone only has a subset of those skills it's fine.

Lastly, I suppose this will be all work from home, how many hours a week would you expect people to have for this? How would foreign workers fit in, legally speaking? Adding to the latter, how would you deal with significant timezone differences in case of needed virtual meetings?

We already have people from around the world. Most of us have either school or a job, so this is something we're all just working on in our spare time. Legally, this is a hobby project until we can actually do enough to justify incorporation. When we incorporate, we'll just be an entity that happens to have employees internationally. We won't likely care to impose much in the way of hours requirements until we incorporate and start thinking about paying people, but having a few hours a week (around 10?) would be good to start with. Significant timezone differences haven't been a huge issue for meetings? We are mostly in the US and Europe so far. Things would probably get tricky if someone from Asia joined, but we do have asynchronous methods of communication, and we can schedule meetings for subsets of the team if we need to.

[–] Zistack@lemmy.sdf.org 2 points 4 months ago

We are quite aware of the importance of incorporating. There are some open questions about the appropriate jurisdiction, since we have people from all over the world in our group. We are not looking for private funding. This is effectively a hobby project until it is able to make money.

The initial plan is to make a game and probably give it away for free, for the purposes of getting our act together and proving that we can actually produce any kind of value at all. There's no real point in spending the time/money/effort to incorporate if we can't actually do anything.

After we prove that the group can function (which will be evident probably before the first game is even finished), we can actually go through the process of incorporation. We can also make some decisions about our licensing and monetization strategies. This is ultimately a group that is looking to make games for the fun of it, with profit being only a secondary goal.

 

We are Ludo Ex Machina. We are a group of aspiring game developers with leftist political beliefs; we are mostly anarchists or anarchist-adjacent. Ultimately, we’d like to incorporate as a worker-owned cooperative.

Since forming, we’ve written a code of conduct and established some barebones internal moderation procedures. We’ve set up some services on one of our member’s personal servers for the group, and we could set up more/different services if we decide we need to. Currently, some of our members are putting together a single player space racing game in Godot.

While we already have a lot of relevant and complimentary skills in the group, we find that there are a few gaps that could stand to be filled.

  • We need 2D and 3D artists. We have one artist, but their time is split between this and another project, and they will have to disappear for a while after they are done with school.

  • We need at least one developer with project management/software development process experience. The one developer we have who currently has this experience in a collaborative context has been too busy to help us with this. We have one other developer who is familiar with software development process, but they have primarily done solo development work previously.

  • We would like to recruit a couple of developers who are comfortable with engine-level development, preferably in Rust. The game engine situation is kind of bad for indie devs right now. Unity and Unreal come with licensing agreements that large corporations can change whenever they want (and Unity has recently made clear that the enshittification has begun in earnest). Godot has technical problems all the way down to the core and a hostile contributor environment. Bevy is technically and culturally the right thing, but it is young and under-developed. Ultimately, we would like to invest in Bevy as our long-term engine pick for game development, but to do that effectively, we’d like to have a development team which is capable of working around the engine’s immaturity.

  • We could use an experienced creative writer. Although various members of our group do have some creative writing skills, none of us have experience working on any large creative writing projects. Some of us have expressed an interest in doing some sociological storytelling in our games, so experience with this style of writing would be a plus.

Feel free to comment if you have any additional questions. Anyone who is interested should send me a DM.

[–] Zistack@lemmy.sdf.org 3 points 8 months ago (1 children)

I was actually not aware of the RFC or those other crates. Ambassador and portrait seem kindof similar in their overall approach to how they accomplish things, though portrait appears to be solving a very different problem. My crate allows for forwarding based on conversions and not just delegation to members, which appears to be new (and this turns out to be important for my use-case.). It doesn't have anything for dealing with code that isn't in traits, but I wasn't intending to solve that problem.

I absolutely see why it would be nice to put delegation in at the language level. Most libraries aren't going to want to annotate their trait definitions just for this (std included), and having the compiler take care of things solves not only that, but also the annotation data format version issues that come with using proc-macros to do it.

It's a bit weird, though, because my conversion forwarding is actually strictly more powerful than delegation in some ways (but a little less flexible - mixing them grants the best of both techniques). Conversion forwarding allows for traits like FromIterator to be forwarded automatically for wrappers on containers, for example. You can't do that with delegates. It feels to me like you'd want both if you added either one of them in. The issue with trying to put something like conversion forwarding in is that the compiler either needs to know about the conversion traits (From, Into, AsRef, and AsRefMut)(As I write this, I realize I may have made a mistake in my crate... can guess what it is?) or it would need to be told how to do the conversions, complete with all additional generic parameters and trait bounds that would be required in the trait implementation. That's either violating some important abstraction boundaries in the language tools, or just extremely verbose.

 

I'm building up to a new idiom for dealing with generic numeric types and traits, but this is the first step. I made it more general than I probably needed for my purposes, but it seemed like a good idea to just solve the whole problem given that I was going to do much of the work anyways.

Credit to the hereditary crate for inspiration on how to do it.

I'm very new at this software publishing thing, so lemme know if I messed something up.

[–] Zistack@lemmy.sdf.org 1 points 10 months ago* (last edited 10 months ago)

I actually recently just did research on this for my own purposes.

  • Ardour isn't really for MIDI. It technically supports it, and people do use it with some success, but the implementation is buggy and somewhat limited compared to other DAWs. If you're primarily doing recording and working with audio clips, though, Ardour works great.
  • LMMS only does MIDI, and basically doesn't handle recording audio at all. The interface is known to be a bit archaic. I don't know exactly how it compares feature-wise to other DAWs. It might be great if MIDI/synthesizers is all you want to do.
  • zrhythm looks really good, but unless you wanna pay for an installer, building it from source is a wee bit of a pain due to dependency version issues. There is an AUR package, but it failed to build for me.

Those are the FLOSS options that I know about. There may be others, I didn't really look at them. They would be even less popular than the ones that I've listed above.

In the end, I chose REAPER. It's not free, but the trial period is effectively indefinite (the software does not cripple itself after the 60 day period officially passes). The personal license is quite reasonably-priced ($60 USD), and the commercial one ($225 USD) is still not too bad if you want to use it professionally. It's a one-time purchase. You don't need new licenses for updates. It's Linux-native, and it does all the things.

As far as plugins go, the FLOSS software has got you covered. Zynaddsubfx is kindof famous, and Cardinal is a really good modular synth (inspired by VCV rack, which is also free and available). Vital is also quite reputable. There's a whole pile of things available: https://wiki.archlinux.org/title/List_of_applications/Multimedia#Audio_synthesis_environments

As far as installation goes, all of this is available from either extra or the AUR.

[–] Zistack@lemmy.sdf.org 2 points 1 year ago (1 children)

I'm vaguely interested. IDK that I have loads of time to spare, but I'm an experienced software dev who knows how to make the magic that is required for a lot of different kinds of games. I could at least advise. I'm kindof curious what your vision for this organization is. Are you looking for founders for a company? Are you just looking to have a group project that makes something cool? To what degree do you expect money to be involved?