Thursday, May 31, 2018

So many aspects

Last time I wrote about the roles (different kind of jobs) that are required for developing an open source game. Let's focus now on one such job (Programmer) and see how many aspects this single job contains for developing for example open source strategy games.

  • GUI programming (almost all games have some sort of graphical user interface)
  • 2D/3D graphics programming (to display the game world, map, ...)
  • Serialization/Deserialization (to store and retrieve game states (aka savegames))
  • Network programming (for multiplayer capabilities)
  • AI (for computer opponents)
  • Data modelling (to store and advance a game model)
  • Algorithms (like path finding)
This means that there are many different topics one must know about to make it all coming true. Of course, the most efficient way is to use (and know) as many stock solutions to these problems as possible.

300 entries in the OS games collections

I continued collecting information about open source games and there are now 300 games included in the collection of open source games on Github.


In the mean time I also tried to improve/rescue projects that were inactive for a longer time: FreeRails, Civil and Hale.

Wednesday, May 23, 2018

Try to improve Hale

Recently started tinkering a bit with Hale, a turn based RPG with deep tactical combat and character customization. It's in a very good shape and might only need a few improvements and maybe also a bit of advertisement.

Continuation of the development of Hale takes place on Github.

Thursday, May 17, 2018

So many roles...

One thing I like in particular about being an open source game developer is the variety of jobs that need to be done. A non-exhaustive list of available jobs would be..

  • Game designer: inventing game concepts, rules, properties
  • Software designer: design algorithms, interfaces, entities, relations
  • User interface designer: designing the screens and buttons
  • Programmer: implement it all
  • Software quality tester: debugging, testing
  • Artwork creator: drawing, composing, creative writing
  • Project manager: publish releases, coordinate activities
  • Technical writer: writing documentation, design specifications, player manual
  • Play tester: play intermediate versions
  • Web designer: maintain an online presence
  • Community manager: keep in contact with fans and coworkers
  • Journalist: write about the project
  • Legal expert: manage license of various content
  • Translator: internationalize the content
I do not need to stay with one job. For example, in case programming gets boring, I can do something else like writing about it, which I'm doing now.

Of course I have favorite roles and I would be happy if more volunteers would contribute to the project doing one job or the other. But so far it's more or less a one man show with about a dozen different jobs done by a single guy in his free time!

Wednesday, May 2, 2018

FreeRails: Taking notes...

Usually, I like scribbling down things with a pen on paper a lot. It gives me a lot of creative freedom.

But piles of paper are difficult to keep organized (or from vanishing). So for this project, I started writing down notes with an office application. Basically just long bullet lists of things that some objects do or how they are connected or how actions are sequenced, mixed with some conclusions of what to change.

Now there are already 16 pages of notes and the file is still growing. However, while I continue to make changes, most of the information in these notes gets outdated again, the overall value is limited. It's really just an extension of my mental capacities thing but still an essential tool for my work.