The App¶
The App is papyDeck's service: accounts, a project space, publishing, and a verified leaderboard. The public site, www.papydeck.eu, presents the console; the App is where a game is written, stored, published and ranked.
The simulator that the App serves is the same one you run in your browser, and the App links the same engine to replay traces: same Lua, same rasteriser, same budget model. That is what makes everything below possible.
The two pages that follow describe what a project, a bundle and a release are, and how each tab is used.
What an account unlocks¶
The simulator is public. No barrier: it is the simulator that gets games written, which is the whole point of the project. What an account unlocks is depositing, publishing and appearing on the leaderboard.
A score is not taken on trust¶
A submission carries the trace of the inputs, not a number. The server replays it with the simulator's engine, the same Lua, the same rasteriser, the same budget model, and a score that does not reproduce is rejected.
The leaderboard is a sport, not a security system¶
A signature from the console's secure element (an ATECC608) proves that a real papyDeck produced the submission; it does not prove that a human played. The firmware is public, so a trace optimised by a robot will replay perfectly. The answer is plausibility, human review, and banning by public key, never a promise of invulnerability.
Publishing freezes, and the leaderboard demands it¶
A draft can be modified and belongs to its author alone. A release is a snapshot that will never move again.
This is not elegance: the trace carries a fingerprint of the game, folded over the sorted names and the contents of the game folder. A score is therefore attached to one version of a game, and if the author retouches a sprite, yesterday's trace no longer replays.
Cloning¶
Cloning records the exact release the copy comes from. If the original author modifies or deletes their game, the clone's ancestry is not rewritten behind its back, and a published version survives the deletion of its project.
There is no branch, no merge, no diff, no history of the draft. A clone is a copy that remembers where it comes from, and that is all.
The identity of consoles¶
The site knows one thing about each papyDeck: its public key, entered in the registry when the board is assembled. No certificate authority, no chain to validate: a self-signed certificate and a public key carry the same information.
Submissions are signed offline and posted over ordinary HTTPS: you play on the train, and the console empties its queue when it finds Wi-Fi again. The monotonic counter of the secure element serves as an anti-replay nonce, and nothing more: it is the firmware that chooses the value it signs, and the firmware is public.
A software key pair replaces a board for development. It is marked as software in the registry, and production does not rank it: without hardware protection, its key can be copied and its counter can be turned back.
Licence¶
MIT, like the firmware and the simulator.