nsensfel / tacticians-design

Design document(s) for Tacticians Online.
BSD 3-Clause "New" or "Revised" License
0 stars 0 forks source link

Integrate Tonkadur #6

Open nsensfel opened 4 years ago

nsensfel commented 4 years ago

As a scenario driver

Parallel execution of Tonkadur scenario on server and client, with initial data being sent by the server to the client, number corresponding to user choices sent by the client to the server, an special random event separate from Fate/Wyrd rand and is implemented by the server (the client needs to send a query to get the value). The standard rand function should then only be used for stuff that doesn't need to be protected against cheating, obviously. In the case of a translation, the server runs the original Tonkadur scenario while the client runs the translated version. As the synchronization points should still be the same, it makes no difference from the server's point of view.

As an interface tool:

Any rich text description can be done through Tonkadur instead.

nsensfel commented 3 years ago

In order to reduce storage, the server only stores the current state of battles, with a sequence of events that describe what has been done in each player's turn. In order to restore the state of a battle to what it was when the player last saw it and play the whole sequence of events, the client applies the reverse of each event in turn. Because of this, each event type has to be reversible. This is going to make using Tonkadur as a scenario driver much harder: all its effects must be applied through reversible events.