Skip to content

Roadmap

Gwilim Owen edited this page Aug 6, 2017 · 3 revisions

The software is fairly stable, functionality is good, and it's even starting to look nice. There are some gaps that still need to be bridged (which will be documented elsewhere), but looking ahead, there are new features to add.

Playback mode:

Games played for competition 207 and competition 208 have been recorded, but there is as of yet no playback mode.

On the server side, recordings should be kept in per-game subfolders where character dumps are located, and sent to the client in the files list. The server's respond() will handle a new eventtype 'playback' or such and start ttyplay (or similar).

Spoiler files:

Host all the html docs for each game in the public folders, and spoiler files to look up.

Static pages:

There should be a site faq and a links page.

Game wikis:

Not necessarily a wiki, but any kind of user-editable repository of game info. We could steal the learndb functionality from crawl's sequell instead, for example.

Tiles support:

Offer a seperate display mode interpreting the terminal output to draw to a canvas, providing a basis for tiles support. Attempt to translate on-screen mouse clicks to appropriate keystrokes.

IRC chat:

Turn the chatroom into an irc server.

File browser:

Have the files tab become a small browser with the ability to expand, collapse and navigate through directories.

UI for playing from Tablet

Tablets do not have hardware keyboard so ui should be usable and flexible to be able to play from tablets.

Active Database

Currently the list of active games, chatlog, and other temporary data is held inside runtime variables. These should instead be represented in a database. Once having done so, we will be able to share a single backend between the angband server in Europe and the roguelikes server in the US, for both sites. It will also be possible to write a terminal frontend to select/watch games for users wanting to play over ssh.

Standalone client executables

It should be rather straightforward to compile using electron to untie the site from the browser, freeing up possibilities about playing locally and broadcasting to the site, or using the user's disk space to store game recordings. Later, following work on a touchscreen UI android and iOS builds should be somehow possible.

Misc additions

  • attempt to reconnect socket after close event with configurable retry ammount
  • new account activation only after email verification
  • notification if someone starts to spectate your game or stopped spectating your game
  • small info test saying how many people spectating you now
  • extract core runtime variables to mongodb, create CRUD (Create, Return, Update, Delete) functions to operate with matches. This will help to recover after possible crash.