Helping the project

Genesis is mainly developed by me (Stefan Prelle) alone with occasional contributions by other people, for which I am grateful.

No matter what you decide to do: Please stay in touch while you do it.
It sometimes happens that people agree to work on a task, successfully do that for days/weeks and then fall into radio silence. It is perfectly okay If you can't muster enough time to keep working, but please let me know, so that eventually someone else can take over - or that I know that I must not plan with your results any longer,

As a tester

My problem as a developer is that I usually only make thorough tests with new code, so after a while I don't look into the older regions of the app anymore. Also I am testing the code in a way I meant it to work - which is not necessarily the way most users do it - or I have a specific test case, that doesn't cover all. Also I am working on Linux, so my tests for Windows are infrequent and for OS X not existing.

There are two kinds of tests necessary:

  1. Tester of patch versions (e.g. from 4.1.3 to 4.1.4)
    Usually the changes in such versions are minimal, so I only need to know that Genesis still works on your system. So simply create, modify, print a character for the RPG you are testing.
    I need a fast feedback here - usually with 24-48 hours. Happens approx. every 2-6 weeks.
  2. Tester of minor versions (e.g. from 4.0 to 4.1)
    Such versions introduce new features or new supplements that needs testing before being released. Feedback time is similiar to patch versions (1-2 days) for just new supplements, but higher for new features.
  3. Tester of major versions (e.g. from 4.1 to 5.0)
    Major versions usually include a new RPG (new GUI, new generator code, new PDF generation ...) that needs extensive testing. Before a release there are several build before that only provide partial functionality.
    Major versions only occur once a year over a time of several months. In the later phases I require people who are willing to test the new RPG - or at least, that the old RPGs still work as expected.
    Usually I can wait approx. a week for feedback, before I generate a new build.

As a data contributor

Some RPGs release a rulebook and that's it - others release a supplement every second month. A supplement usually means more data for gear, spells, whatever to be made available in the application.

You don't need any programming knowledge to help here, but you should

  • know how to edit XML files
  • know the Git versioning system or be willing to learn the basics
  • probably be able to organize your work with other contributors

I also recommond to use a integrated development environment (IDE) application, like Intelli-J, Eclipse or others.

As a developer

Every now and then a person able to write code wants to help. This is great and the project could really profit from that. So, some specs about Genesis:

  • Genesis is written in Java. We switched to Java 11 and made the transition to a modular application
  • Genesis uses JavaFX as a GUI framework. Over the time some specialized GUI components have been added.
  • Genesis uses Maven
  • Features are added via Java ServiceLoader functionality
  • Logging is done via Log4J2

Now you need to decide what you like to do.

  • Add support for new RPGs.
    This option does not need to dive deep into the existing code. You just need to implement some interfaces and extend some classes and the rest is up to you. Of course, it would be wise to discuss which libraries you can depend on on your code, so your build will work into Genesis.
  • Just bugfixing
    This can be anything from errors in the XML data to layout errors in the GUI. You need to know your way around the code to at least locate the class you need to work on. You could limit your help to a specific RPG.
    A list of open tasks (not just bugs) can be found here. I recommend that you start by cloning the repositories you are interested in (see below)
  • Add new features to existing RPGs
    This is the most interesting option, since it actually evolves the applications capabilities. On the other hand, this requires the most effort on your side, because you need to know the code real good and often need to consider impacts to other RPGs as well. This will definetly require to work closely with me. I recommend that you start with just bugfixing for some month, before you start more complex projects.

Relevant Git-Repositories are:

As a help desk member

We do work with a professional ticket system (JIRA) to process questions and bug reports from users. This is time consuming and I could need a helping hand here.

Your main job would be to be interface between users and developers.

  • Verify the data in a bug report is sufficient. If necessary ask the user for more data (Character data, Log files)
  • Try to answer user questions
  • If a reported error is new, answer it and open an internal ticket and connect it with the users ticket
  • If a reported error is already known, connect it to the internal ticket and answer the user.
  • If an internal bug ticket is closed, inform the users and close the respective user tickets.

Ticket frequency is sometimes several 2-3 new tickets per day, sometimes 2-3 days without a ticket. You should be able to respond to new tickets within a day.

To make your job easier, you can document known effects or problems in our Confluence wiki, which will be automatically searched as soon as users use the web frontend to report a new ticket.