Oche
Prototype jouable
Visez, laissez le cercle se resserrer, relâchez au bon moment. Le vent pousse, la main tremble, le public chahute. Jouez une manche complète en 501, fermeture au double.
Restant
501
Visez la cible
Déplacez le curseur sur la cible, puis cliquez pour figer la visée.
1
Le réticule ne tient jamais en place. Deux oscillations de fréquences différentes se superposent, ce qui donne un mouvement organique plutôt qu'un cercle régulier. L'amplitude grandit avec la fatigue du bras.
2
Il se contracte vers le point visé puis repart. Le rayon au moment du relâchement devient le rayon d'erreur du lancer. Relâcher au plus petit donne une fléchette qui part droit, relâcher trop tôt l'envoie n'importe où.
3
La fléchette atterrit dans le disque d'erreur, puis le vent la pousse. Son effet est proportionnel à l'erreur : un lancer propre y résiste presque, un lancer relâché part avec le courant d'air.
Toutes les deux ou trois secondes pendant la visée, une secousse déplace le réticule et l'écran tremble. C'est court, c'est imprévisible, et cela oblige à relâcher entre deux secousses plutôt qu'à attendre le moment parfait.
Dès que le score restant est finissable, le cercle se contracte plus vite. La fenêtre de relâchement se réduit exactement au moment où la fléchette compte le plus. C'est là que le jeu devient un jeu.
Le prototype ci-dessus fonctionne sans serveur. La suite dépend entièrement de la réponse à cette question, et l'écart entre les deux voies est important.
Voie légère
Chacun joue ses volées de son côté, les scores remontent, le classement se met à jour. Une API classique suffit, avec comptes et historique. Le serveur revérifie les scores pour que le téléphone ne fasse pas foi.
Voie lourde
Les deux joueurs se voient jouer, chacun attend son tour, la connexion peut sauter en plein lancer. Il faut un serveur autoritaire, une reprise de partie après coupure, et un appariement. C'est un autre projet et un autre budget.
Un score calculé sur le téléphone est falsifiable. Dès qu'il existe un classement public, le serveur doit recalculer la manche à partir des lancers plutôt que d'enregistrer un total transmis par le client. Cela se décide au moment du modèle de données, pas après.
Livré en 5 jours, sur une base de code Flutter qui tourne sur iOS et Android. Ce que vous voyez au-dessus est la démonstration de la mécanique, pas une image de présentation.
Sous le capot
Le mode en ligne se chiffre une fois tranchée la question de la section précédente. Annoncer un prix avant cette réponse serait un chiffre au hasard.
Vingt minutes suffisent à trancher la question du mode en ligne et à caler les règles de jeu. Je réponds en moins de quatre heures les jours ouvrés.
Vous préférez rester sur la plateforme ? Répondez-moi directement, ça marche aussi.