Improvement proposal

I wasn’t at my computer when this got posted, so here’s my a bit late reply, a huge post incoming…

After thinking about the points a bit, I think most of the criticism is towards the lack of structure inside the graphics team. As the programming team lead, I review all the code going into the game (master branch), and working with our game designer I setup the issues on github for the next release. Though, I did know that we don’t have many good tasks for new people:
Good first issues: Issues · Revolutionary-Games/Thrive · GitHub
Easy issues: Issues · Revolutionary-Games/Thrive · GitHub

That makes it a bit difficult to get into it. But we haven’t had new programmers joining recently. Though, some of the latest programmers to join haven’t gotten started well.

I think there is room for improvement here. One idea I have is that me or @Untrustedlife could mentor new programmers (even more than currently) through a few tasks to help them get started. That would basically almost be pair programming, the way I envision it working, so it takes a ton of time. Not sure how possible that is, but the truth is that we need more programmers to join and be productive. @Untrustedlife coming back to the project has been a huge factor in getting 0.4.0 and subsequent releases done.

Anyway, back to the lack of structure for the graphics. @Narotiza is the current graphics team lead, but he isn’t super active. At least I haven’t seen him comment much on the art things happening lately. Maybe we just need a more active graphics team lead who can set out tasks for the graphics team? As I said, I think the programming side is structured enough, we are just short on people doing work. Lean methods are a big thing in software development and I think they are the right choice for a huge project like Thrive, they allow us to plan one release at a time and then do a “sprint” towards it. I don’t think we have any capability to make long term plans that would stick. Even 0.4.2 is delayed because suddenly there wasn’t any programming being done on the game. That’s just a thing we need to deal with as long as we don’t have anyone working on the programming side full time or even part-time (Untrustedlife has a patreon, but that hasn’t reached a level where he could work on part time).

I agree with @tjwhale that any improvements to the way the game is made should be made gradually and fully aware that this is a volunteer project. I think the current way works quite well, getting graphics done is a bit chaotic, I admit.

Now I’ll reply to some specific parts I feel like replying to:

I don’t think it’s possible to know how a game will turn out in the end. It’s an iterative process. Overwatch was going to be an MMO but then Blizzard realized it was going to be bad late in development and they repurposed the world and characters into a shooter (or so I remember it going, I might have the details a bit wrong). My point is that even huge game projects can’t be designed up front, they need iterative feedback from the designers as the game gets implemented.

Currently only way to really know who is working on what is to check the discord and with programming also the commits as we aren’t really using the “assigned to” feature on Github very actively. It would take time to have some kind of list. I think it works well enough that I know what each programmer is working on and can say if someone is thinking about doing something that is already being worked on.

This is a concern. We need to collect information somewhere regarding how things work to lessen this impact. Also known as the:

I think we have a release process outlined on the wiki but it is a bit out of date.

The current process that has been followed for the past few releases is that we have a big discussion for a few days about which features will be included in the next release (this is the agile workflow which has been adopted by the software industry). I think it is perfect for Thrive. The downside is that if someone is not active (even after @everyone) in the planning process the ideas will be just left out. Someone could promise to champion ideas that people have submitted to alleviate this problem.

@tjwhale is our designated microbe stage game designer. So there is someone whose word is final regarding the design of the microbe stage. I think that works fine as is. @NickTheNick is the overall team lead but he pops in very rarely.

Would the sending ideas be open to the public? We have the community forums for people to talk about their ideas for Thrive. It is that way because a lot of the ideas are bad. It’s been that way for a long time that there is a separate forum. I try to be active there in order to reply to the community’s questions. I’d like some help with that…

I also answer many questions on our discord that people post. But the quality of discussion is even lower there. And the same topics get recycled many times. At least on the forums we can keep tell people to reuse inactive threads.

I think this is a very important thing. Thrive won’t survive if someone becomes a dictator and makes the project not fun for others (granted many software projects have a single maintainer who does whatever they want even if no one else contributes to the project).

That’s why the official workflow says, ideas should be discussed on the forum: Workflow - Thrive

The workflow still mentions slack so it should be updated.

I feel like this does not apply to programming related things. I offer comments on possible approaches. I also sometimes say that this is definitely the way something should be programmed.

It would help if people posted progress on the forums here and people could comment. Like the new planet pictures by @QuantumCrab would be a good candidate to share here.

I feel like this is specific to the graphics team (and also the sound team when @Oliveriver is too busy to comment on a new piece).

The early game should have major impact on the later game. Meaning that it is not possible to concretely design the later game before the earlier game is done. This is also related to the agile working method, which I covered earlier.

Even with the best project management you can’t make something with 0 available programmers. Right now there’s a huge bottleneck with the number of active programmers. With the graphics engine change there will be an influx of a ton of graphics work as many of the models were lost and the organelles will (likely) be able to use a full PBS material on them, meaning a bunch of material maps are missing for the organelles.

For reference here is the discussion thread:

Maybe it was closed a bit early (only a day passed before finalizing the selected features). But even then people didn’t flock in with their ideas, which means that the ideas are not made into issues that are then in the queue for actual implementation.

I think we should more freely allow discussion about the next 1-2 years on here (instead of really out there far off ideas which I think are suitable for the community forums) with a push then to get some features people want into the release planning process.

One can always hope that we can start raising a couple grand a month in order for me (or someone else) to work on Thrive full time…

I don’t think most people just are able to devote a significant amount of time to Thrive no matter how well the leadership structure is planned. Also pressuring people too much may lead them to leaving the team entirely.

It’s perhaps too convenient. I’d like to make an effort to have more stuff going on here. But many people don’t actively check these forums, so I think that pinging people on discord is a lot more effective for many things.
Relevant discussion:

I’d like more opinions about this. Should we also include non-programming tasks on Github?

Also I just remembered we have this for project management tasks (anyone is free to update it):

I agree that we should make the website more engaging. There is a link to email us there (I think) but only a few people regularly check the email…

This is the huge issue with programming, it’s very hard to get into a big project.

With the “do whatever” approach I think we can better attract people who are very interested in making their dream game (just ask @Untrustedlife about microbes)

So you are saying that we should decide on an art style? And we need a more active graphics team lead to enforce style and hand out tasks?

Ouch. I’m not going to rehash my previous posts about these topics, but we have a ton of working code, reimplementing things without causing a ton of new bugs that take a long time to work out, doesn’t happen. As I’ve gained experience I’ve realized that rewriting things is often not worth it. So that’s why we are stuck with a game engine that works the way thrive is coded. The previous renderer is just too difficult to use. The new one will be easier. They are also planning to release an editor that graphics people could use to preview and work on their models.

Issues with previous scripts will always happen, there’s always bugs and things to tweak.

Totally agree. Those things would take a ton of time from someone familiar with the project.

This is how we currently accept new team members.

has shown pretty conclusively that in a software project planning too much will ruin the entire thing. I’m not entirely against planning ahead, but I like agile software development where things are decided just a bit before they are done, it works very well when you don’t know what the finished thing is going to be.

You are underestimating the number of ideas (and terrible ideas) they would be bombarded with constantly. Even I have to take breaks from trying to reply to all ideas on the community forums:

Right now it is quite certain that if both me and @Untrustedlife leave at the same time there is no one to pick up the programming and the project has a high chance of fizzling out as it turns out to be incredibly difficult to find volunteer programmers (we haven’t had anyone new join in half a year, I think).

@Oliveriver and @tjwhale are probably the oldest currently active members. I joined a bit after Untrustedlife went away, so in total time being active, I think I have the lead on him.


I’ll just finish off with some random points:

  • @lavathor’s title is now “Outreach person” because I wasn’t sure what the proper form for someone doing outreach is
  • I think updating the titles of ex- or inactive members might be beneficial (if someone is reading through old threads).

Time spent on this post and not working on Thrive: a little over 60 minutes

3 Likes