Monday, January 25, 2021

An incredibly humbling experience

In December 2017 I started to collect information about open source game projects with the goal to build them and finally improve some of them. I thought about a one year project and maybe 200 games I would look at.

Now, over three years later, the open source games list (OSGL) contains information of ~1300 games and thousands of developers and I hardly started building and improving the games. But I can already say that I will be able to only work on a few of them, a tiny minority of all projects, which are out there. And it will take years, if not a decade. And lots of new projects will be started in the mean time.

Reflecting on this gave me the following (maybe familiar) feelings

  • We are so small! 
  • The world is so big!
  • And so complex!
  • Only by working together we can actually achieve something significant!
  • We are like ants!
  • Organization is everything!
  • It's so humbling!
  • It's not the individual, it's all team work!

Ant nest - Taken from Andrew Gustar on Flickr (licensed CC BY-ND)

I will continue to plow that field, but with a renewed sense of what it means to work together and what can be achieved really (need to prioritize even more). One thing becomes clear however: Organizing ourselves is the key to make use of us most efficiently. Open source game developers should strive to even better connect themselves.

Saturday, January 16, 2021

The frustration that inevitably follows the initial euphoria

So I had this 10-15 year old open source game projects written in Java (AntiChess, SpiceTrade, Domino On Acid, 4DMaze) and I could quickly get them to run again and build with Gradle and I could do easily some static code analysis and throw out redundant stuff, fix deprecated code usage and reduce the overall amount of code, all without changing anything how these games looked or worked.

But now I have spent something like 20-30 hours (not really counted, could even be more) and frustration sets in. Mostly because

  • There is no visible progress. I simplify the code base and write documentation and tests, but the resulting game itself does not change even a single bit. I realize how far I'm from making substantial edits.
  • Real understanding of the code takes so much time. I have only gained superficial understanding of 4DMaze and Domino On Acid, no understanding of SpiceTrade and half-understanding of AntiChess so far. It really takes time to read the code, to understand possible side effects and to plan and conduct meaningful changes.
  • I realize how much work it would be to make substantial changes (not only minor fixes). I do not plan substantial changes for 4DMaze and Domino On Acid, so these two might see an official new release sooner. AntiChess is more work than anticipated, the 4 player mode is only doing random moves and the 2 and 4 player modes do not harmonize very well currently. SpiceTrade I would like to do something, but it has this inbuilt scripting engine that is outdated.
  • With this speed (which is probably a much more realistic estimate of how much time it takes to "improve" old games) I will never finish the hundreds of games I would like to engage with. I might need to give up on that dream and do some serious prioritization.
  • It's easy to break things and the test coverage is far below 100%. More often than I would have liked, I need to go back and revert changes in order to not break the apps badly. Generification is a potential source, adding final is another one (when reflexion is used somewhere else in the game).
 That's all not really a reason to give up and there is still hope that I will get faster over time and can use synergies. I'll surely become a better Java programmer in this phase.

Thursday, January 14, 2021

Added 10,000 developers to the OSGL

 I finished gathering data automatically from the Sourceforge and Github projects in the open source games list and that greatly expanded the number of developers listed.

 With more than 11,000 developers now I could even crosslink some names (if the names are similar and they work on the same game or have similar nicknames) but mostly it's guesswork to follow accounts over different code hosting platforms like Sourceforge, Bitbucket, Github and Gitlab. The Git commit emails might give me more insight, but since an accurate account of the developers of open source games was never really the main aim, I think I will leave it at that for the moment.

The main goal here was to fill the planned static web page with as much content as possible with reasonable effort before finishing it.