Mamer enhancements - ideas for discussion

Mamer is a FICS bot used to organize chess tourneys between the FICS players. This document discussess some potential enhancements to this - already very useful - piece of software.

I am not the mamer author, I am just the FICS player who thinks that such a design sketch can be useful for discussion and for the author consideration.

This document gathers many independent ideas which can be treated separately.

Let anybody manage the tourneys - but watch their performance

The current method of manually selecting tourney managers has some drawbacks: it is currently not clear how to check who is 'good' and who is 'poor' tourney manager, it happens that the manager do not wish to organize the tourney of type people would like to play, it also happens that sometimes no manager is online or the logged manager is busy and not organizing the tourneys. Therefore I would recommend a bit different method, in which everybody could be the tourney manager - but his or her performance would be measured (and rewarded or penalized).

To have this measure and to avoid the '100 tourneys a minute' sindrome I would recommend creating manager points measure, working as following:

  • normal tourney costs 1 manager point
  • if the tourney fails to start or fails to end (everybody forfeits), this point is lost,
  • if the tourney ends succesfully, the manager gets the prize according to the number of participants who finished (not started!) the tourney and maybe according to the tourney time (exact rules to be discussed but I imagine something like: blitz tourney for 4 people gives just this 1 point back, standard tourney for 4 or blitz for 6 gives 1.5, standard for 6 or blitz for 8 gives 2 - one can imagine some formula based on the game clock and the number of participants),
  • every new FICS player is granted 1 point after playing 100 games on FICS (or after playing with 30 different opponents, or after attending 20 mamer tourneys, or ...), people who get their first point obtain the message with instructions,
  • the person who has lost his last point gets it back after some time (rules similar like those above),
  • for higher prices one could setup special tournaments (like pre-advertised tournaments with fixed start date, or tournaments with manually accepted participants).

The price could also vary depending on the clock and size.

People with very good score would be good candidates to become normal (unlimited) TMs.

Additional note regarding the tourney failure: the tourney fails if it does not start within some reasonable time since created (5 minutes for lighning, 15 minutes for blitz, 30 minutes for standard), in case of pre-scheduled tourneys the time is measured from the scheduled date, not from the creation date.

Mamer should probably forbid to create two identical or very similar tourneys simultaneously, but it need not be perfect (in such case the manager will probably loose his poinst nevertheless).

Fixed time round start - better support for the long time tourneys

I love standard time tourneys (15 0, 20 0, 15 15 etc) but when they are organized in the normal mamer style, there are at least two important problems with them: for many people it is hard to commit spending 2 or 3 consecutive hours on the tourney and for others it is not pleasant to wait for the next round when they finished their match but somebody is still playing (not to mention getting bye in such tourney). This is sometimes worked around (like in 90 30 tourney) by giving people a week (or so) to play their game, but here huge problem of resolving conflicts related to game time negotiation occurs.

I suggest the following solution: arrange the tourney with a day (or a week) for a round but specify fixed round start date and time (for instance a tourney played each Sunday 17:00 or tourney played daily at 10:00 or tourney with rounds starting at 12:00, 15:00 and 18:00 today).

Of course such rules can be (and sometimes are) enforced manually (like in Sunday 45 5), but it seems that it requires a lot of work for the tourney manager. It seems to me that mamer could enforce such rules without manager intervention according to the following criteria:

  • the round either starts as soon as the seeding is done or at the time specified in the tourney definition (both cases has their advantages, in the former people can arrange to play earlier if they both prefer to, in the latter all games proceed simultaneously what allows for pretty tourney kibitzing so maybe it is good idea to give tourney administrator a choice),
  • the game must be started no later than a few minutes from the round start (the exact number can vary from 1 to 5 minutes depending on the tourney type), starting the game later is not possible,
  • if the game is not started within this period of time:
    • if one of the players is logged in, while the other one is not, the logged one wins by forfeit (by is logged in we can understand the round start + 3 minutes time - the moment when the round startup ends and mamer starts resolving not started games),
    • if no one of the players is logged in, they both loose by forfeit,
    • if both players are logged in and one of them is playing non-tourney game, he looses by forfeit,
    • if both players are logged in and both of them are playing non-tourney game, they both loose by forfeit,
    • if both players are logged in and ready, they got notification that they have 30 seconds to start the game or will be forfeited, if the game starts, so good, otherwise the person who first issued mam playgame command wins by forfeit (if no one issued it, both loose).

Fight 'game started but not played' sindrome

There sometimes happen people who start their tourney game quickly but do not execute the first move for a long time (most likely employing autoplay but leaving the computer for other tasks).

The best method to avoid this would be to start the white clock immediately after the game started and the black clock as soon as white made the first move. But I do not know whether it is possible.

If not, mamer could itself employ the simple rule like you have 30 seconds to play the first move or you will be forfeited (the number of seconds varying from - say - 10 seconds in lightning, through 30 seconds in blitz, to 2-5 minutes in standard tourneys). In the simplest form it could work so:

  • mamer remembers the time each game started and 30 seconds later checks whether white moved, if they did, it stores the time, if they did not, game is aborted and white forfeited,
  • at the 'white move time + 30 second' mamer performs similar
    check for the black move.

To avoid confusion I would also add extra check 5 or 10 second earlier with notification 'you have 5 seconds to move or you will be forfeited from tourney' sent.

Support for closed tourneys

Simple: allow people to organize closed tourneys. Closed tourney is:

  • not advertised automatically,
  • available only for people invited by the manager (or opposite: requiring manager to accept the people before they join).

Two sample usages:

  • playing tourneys between friends or colleagues on FICS (for instance I'd like to organize my organization championship and having mamer to seed it and calculate rules would be nice),
  • playing limited-area tourneys on FICS (say 'FICS Polish championship, manager accepts people able to ask for participation in Polish).

Customizing mamer notifications criteria

Allow people to set some kind of formula variable to select which kind of tourney notifications they would like to get. For example I would set:

mam SetTourneyInfoFormula time >= 5

The formula syntax could be probably very similar to the normal formula setting (with variables like time, inc - but also type or rounds - available).

If we implement the let anybody manage tourneys idea described above, I would also consider something like mamer censor variable, which would allow to censor tourneys organized by some people.

Offline notifications

For some kind of tourneys (especially those longer, maybe just those scheduled) it would be nice to have offline notification (message) sent. I'd like to get FICS message from mamer with don't miss the 20 0 tourney starting Sunday 12:00...

If this mechanizm is implemented, the criteria should be probably gathered by separate (from the mentioned above) formula.

Team tourneys

The title tells all: allow for the tourneys between the teams. I do not have the exact details thought out but it seems that the seeding and scheduling can be easily generalized from the normal tourneys (including the rule of ordering the people in team according to the rating), only the join process is more complicated. I imagine that anyone can join as 'wish-to' team manager and then he or she can accept or decline people attempting to join this team.

Note: there are organisations which make such tournaments in slow controls, but it would be also nice to play team blitz...

Join normally late-joiner

Frequent situation: we have 15 0 or 15 15 tourney, it started 30 seconds ago and two late joiners came (or we have one late joiner and one person having bye because of opponent withdraw or two people withdraw and their opponents must wait or ...). It would be nice if in such situation manager could match those people and have them playing one against another in the current round instead of have them both waiting. Obviously it breaks a bit swiss rules but is worth it...

Mamer info in user time

It would be nice if the information in mam help schedule could contain user local time (sideways to server time which is useful too).

Emailing and publishing results

Mamer could have an option to send email with tournament results (standings, grid, maybe also all tournament games in PGN) to the people who played in the tournament. I imagine it working similarly to automail feature - anybody who executes:

mam set automail 1

would get such email after each tournament he or she played.

Results of the tournaments (standings, games) - at least of those scheduled - should be published on FICS website.


Mamer needs tie-resolving algorithm. Implementing Bucholz would be a good idea.