I am working on a fairly complex module(s) and could do with some advice/pointers on which way to take the development.
The module allows the creation of tournaments and tournament fixtures, where one tournament can have many fixtures associated with it. In version 1, the module was hard-coded for the scores and attributes of one single game, but for version 2 I want to extend this to an open architecture to allow for more game types to be added.
I see this happening as follows:
- the 'core' module handles all the generic things to do with the tournaments and their fixtures, the event's duration, whether the event is a ladder, league, etc.
- game-specific sub-modules that have their own db tables for storing results specific to that game, algorithms for determining the order of results.
- additional sub-modules can be added whenever a new game needs to be accommodated.
A game could be any type of computer game (FPS, RTS, RPG) or even a real-world game (tennis, football, etc.). In each case, different stats and results need storing and the way players are ranked is different.
I would like the interface to behave as follows:
a - create a new tournament node, on the create node form, they select the game type from a list.
b - once the game type is specified, select the conditions for ranking.
c - create tournament fixtures, that are now specific to the game type.