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.
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
If you are serious about this, my advice to you:
- Get a legal advisor in your jurisdiction who can help you draw up a company constitution that describes how your cooperative works, your organisational structure and how profit sharing is structured, and register the company.
- Consider how workers will be compensated before you have any revenue. Are you going to look for private funding? How will equity be split between investors and worker shares?
- If you aren’t taking private funding, are you expecting members to work for free up until you start to turn a profit?
If you are still going to look for collaborators before registering the company with a written constitution, make it clear whether those collaborators will have equal rights as co-founders along with you and your existing members. Any ambiguity here is likely to cause serious problems down the road which could completely tank the effort (i.e. lawsuits). This is why I would advise you to start with a registered company constitution right off the bat.
If you’re more inclined to work as a loose anarchist collective without a formally defined organisational structure, you need to lead with that. Don’t describe the project as aspiring to be a worker-owned coop. The best way to do this is to create an open source project and allow open contributions. However, if you want to keep your work closed and proprietary then you need to realize that as soon as you create something that has value, you will need to have an agreed way to share ownership of that value. This will require either a registered company or some kind of foundation.
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.
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?
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?
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?
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.
I’m also very curious on time-comittment and technology choices.
I do find this proposal interesting; I’ve been considering how to grow more cooperatives and this would be a nice first-hand case study. But between extracting value from the capitalist system for my own survival (aka, day job) and my solo gamedev work I don’t have tons of free time.
My game is in Rust, not using an engine, but I’ve looked at and tinkered a little with Bevy and Godot. One huge thing you might not expect is that compile time in Rust can be limiting for iteration speed. It isn’t a problem with my little roguelike, but for bigger games you’re going to want data-driven designs and visual editors so iterating on game play is faster. Compiled code you’ll end up saving for critical engine pieces. Bevy is getting there on this, but Godot has first-class editor support and plug-ins for things like 3d tools and level designers (quake levels can be used as a native godot format). All that tooling support is what will really accelerate development and help with polishing and actually releasing the game. Investing heavily in a developing ecosystem like Bevy is fun and exciting but you will spend a lot more of your dev time working on engine things and building tools. That can be time well spent up front if you plan to do a lot with those tools long term, but with an experimental business/social structure you may find that also navigating a lot of technical challenges is going to make things too unstable and chaotic.
I might do a first game in godot or whatever is easiest to collaborate with, then see where the team’s strength and interests lie before trying to scale out to a more ambitious project.
I can definitely see why you’re looking for someone with PM experience, and find that an interesting challenge as well. A typical business IT today works under either a “waterfall” organizational pattern like the Software Development Lifecycle (SDLC) where you do a lot of upfront planning and focused development; or else they use some model of Agile, which are focused on small teams and fast iterations of the complete SDLC in miniature.
For a cooperative game dev team, you have models like Valve’s Cabal to look at, but not a lot of details. Also, they don’t release a lot of games, so without Steam’s infinite money cheat, it’s hard to say how effective that model is for a new team.
I would probably start by implementing something based on Kanban, which I admit I have a bit of a golden hammer problem with. But you treat each phase of dev as a silo (Engine, AI, Physics, Art, Testing, Design, Multiplayer/Networking, and so on). Features are defined as tickets, then broken down into work units needed to finish. Work units are distributed to silos, workers in those silos pull tickets to work and move them to the next silo when finished.
There would also need to be a way to distribute and collect information asynchronously. Agile usually functions by using lots of meetings to make up for bad communication. With a distributed autonomous collective, something like a Matrix chatroom and a wiki probably become the backbones of communication. You see the ticket system communicates the state of features and how “done” the game is, but you need higher level tools to build out the roadmap, build consensus on the high level roadmap, prioritize features, and coordinate assignment of work to silos.
Ah anyway, sorry, rambling! But yeah, obviously this idea has given me a lot to think about!
I’ll refer you to my other reply to answer the bits about technical choices for the most part. The extra expense on dev time is a big part of why we are looking for additional developers. We probably wouldn’t strictly need them if we were dealing with a mature engine (though I would appreciate at least one more skilled developer on the team anyways, as right now I am the only active senior dev).
I might do a first game in godot or whatever is easiest to collaborate with, then see where the team’s strength and interests lie before trying to scale out to a more ambitious project.
We’ve done a lot to figure out strengths and weaknesses, and a big part of this recruitment push is to cover some identified weaknesses. We’re not dead-set on any particular engine or project at this moment (though probably we’ll try to make sure that the space racer gets finished). It’s just that our evaluation of the situation turned up Bevy as being the likely best-fit engine for our future project ideas.
I am the dev who is familiar with software process, but in a solo context. A big part of what we need really is the skills to wrangle other people. We’ve got a couple of juniors on board who aren’t super good about communicating what they’re doing/thinking. I know what a good process and useful documentation would look like, but I don’t know the best way to go about guiding everybody else into the process.
We have a Zulip instance set up for our asynchronous communication backbone (and it does really well for this), but it isn’t getting near enough use because most of the team doesn’t really understand what the process is supposed to look like.
We’ve also got a Forgejo instance set up, which can do the Kanban process you’re describing (and probably other things as well with creative use of the issue system). Forgejo also supports wikis in a way similar to GitHub.
Regarding Codex’s mention of the compile times, it might be worth checking out some option for “rust script”, like this one https://rust-script.org/