Page 1 of 1

Le jeu Orlog sur la NumWorks

Unread postPosted: 02 Jun 2024, 20:30
by Afyu
Tu te souviens peut-être de cette interview dans laquelle je parlais d'adapter le mini-jeu de plateau Orlog que l'on trouve dans le jeu vidéo Assassin's Creed : Valhalla et qui consiste à affronter un adversaire en lançant puis sélectionnant des dés et en invoquant le pouvoir de divinités nordiques.

Eh bien, pour ta plus grande joie, la voici, cette adaptation tant attendue ! :D
Et pour te la faire découvrir, profitons-en pour expliquer le principe et le déroulement du jeu :

19992Le principe du jeu est le suivant :
  • À chaque partie, chacun des deux joueurs a 15 pierres de vie (que l'on peut appeler très commodément "PV" :D ) et le but de la partie est de réduire le nombre de PV de l'adversaire à 0. Les manches se succèdent jusqu'à ce qu'un des joueur n'ait plus de PV ; la partie est alors terminée.
  • En début de partie, chaque joueur choisit jusqu'à 3 divinités qu'il pourra invoquer en cours de partie, en échange de Jetons.

19993La partie se déroule en plusieurs manches dont le déroulement est le suivant :
  • Chacun des deux joueurs lance 6 dés dont les faces représentent au choix : une hache, une flèche, un casque, un bouclier ou une main. Chaque hache et chaque flèche enlève 1 PV à l'adversaire mais chaque casque protège contre une hache et chaque bouclier protège contre une flèche. La main vole un Jeton à l'adversaire. Chaque face de dé entourée d'un liseré doré donne un Jeton.
  • La phase de lancer est répartie sur 3 tours : à chaque tour, le joueur lance ses dés puis choisit les faces qu'il veut verrouiller et conserver. Les dés restants seront relancés au tour suivant.
  • Ensuite vient la phase de choix de la divinité à invoquer, ainsi que du niveau d'invocation (il y a 3 niveaux par divinité). Le choix de chaque joueur se fait en fonction des faces qu'il a verrouillées et de son nombre de Jetons. Il est également possible de ne pas invoquer de divinité.
    1999419995
  • 19996Enfin, vient la phase de résolution. L'éventuelle divinité choisie par chaque joueur est invoquée suivant sa priorité d'invocation. Les dés des deux joueurs sont associés suivant leur correspondance attaque-défense. Le décompte du nombre de PV enlevés est fait, dé par dé. Puis les mains volent les Jetons correspondant. Enfin, les divinités les moins prioritaires (priorité supérieure à 5) sont invoquées, si le nombre de Jetons est suffisant.

Une fois la manche terminée, si aucun des deux joueurs n'a été éliminé, c'est une nouvelle manche qui commence, en conservant le nombre actuel de PV et de Jetons de chaque joueur. La nouvelle manche commence par le lancer des dés.

Mais les pouvoirs des divinités sont variés et les divinités sont nombreuses, tandis que la mémoire de stockage (pour les scripts) de la NumWorks n'est pas considérable et sa mémoire de travail est encore plus limitée. Si la mémoire de stockage ne semble pas être un facteur limitant dans ce cas précis (le script fait environ 15 ko), ce fut cependant un véritable défi de faire rentrer toutes les informations et toutes les règles dans un nombre restreint de variables et sous une forme optimisée pour ne pas saturer le peu de mémoire de travail de la NumWorks.

Il a fallu ruser, et même rogner sur certains contenus, comme le nom complet des pouvoirs des divinités. Par exemple, "Vol de Thrymr" est réduit à un simple "Thrymr". Toutefois, aucune information importante n'a été retirée et la description du pouvoir de chaque divinité n'a pas été tronquée.

Mais au prix de ce (modeste) sacrifice des noms complets des pouvoirs des divinités, certaines fonctionnalités ont pu être ajoutées et on a finalement :
  • 19991Une IA assez sommaire mais qui a le mérite d'exister.
  • Un écran d'accueil permettant justement de choisir entre un mode Joueur contre Joueur et un mode Joueur contre IA.
  • 19994Un affichage compact du plateau lors du choix de la divinité à invoquer ainsi que son niveau d'invocation. Ce qui permet de savoir si le choix est pertinent et si on a (ou aura) assez de Jetons pour lancer l'invocation.
  • Une animation basique mais colorée des différents dés traités lors de la phase de résolution (l'affrontement des dés).

Au fait, comment joue-t-on ?
  • Les flèches gauche et droite permettent de naviguer entre les dés ou entre les divinités.
  • Les flèches haut et bas permettent d'ajouter ou retirer une divinité lors du choix initial des divinités à utiliser durant la partie (jusqu'à 3 divinités) et permettent ensuite de verrouiller ou déverrouiller des faces de dés à conserver. Elles permettent également de choisir le niveau d'invocation d'une divinité lors de la phase de résolution.
  • La touche EXE (ou Entrée, sur le simulateur) permet de valider le choix effectué (pour les divinités ou pour les faces de dés à conserver) et de passer à l'étape suivante du jeu.

19991Si tu as une calculatrice NumWorks, alors tu peux y transférer cette version.

Si tu n'as pas de calculatrice NumWorks, alors tu peux tout de même tester cette version du jeu, en utilisant les 4 flèches et la touche Entrée du clavier.

Par ailleurs, si tu cherches une version avec le nom complet des pouvoirs des divinités, tu peux regarder par ici, mais en contrepartie, il a fallu supprimer l'affichage compact du plateau en bas d'écran durant le choix de la divinité à invoquer.

L'aventure aurait pu se terminer ici, avec un jeu épuré et vraiment sobre graphiquement, et à regret sans aucune décoration, faute d'espace suffisant dans la mémoire de travail de la NumWorks.
Mais c'était sans compter sur le travail formidable de la communauté de développeurs qui a produit le firmware alternatif Upsilon qui peut être installé sur certaines NumWorks, à certaines conditions, et qui permet de bénéficier d'une mémoire de travail augmentée.

19997Le gain de place a permis de rétablir le nom complet des pouvoirs des divinités et d'ajouter un peu de décoration sur l'écran d'accueil, comme illustré ci-contre. Ici encore, il a fallu optimiser l'encodage des motifs, et ruser en utilisant des (successions de) symétries.

Si tu as une calculatrice NumWorks sur laquelle tu peux installer le firmware Upsilon, alors tu peux y transférer cette version.

19998Si tu n'as pas de calculatrice NumWorks, alors tu peux tout de même tester cette version du jeu, en utilisant les 4 flèches et la touche Entrée. Ceci est rendu possible grâce au formidable Workshop Upsilon de Yaya.Cout. :favorite:
20000200012000220003


Et qu'en est-il des autres calculatrices ? La légende raconte qu'un add-in permet de lancer des jeux Python pour NumWorks sur les Casio Graph 90+E. Et si... ?

Liens et ressources :

Re: Le jeu Orlog sur la NumWorks

Unread postPosted: 03 Jun 2024, 09:02
by SlyVTT
Merci Afyu,
Pour y avoir beaucoup joué et avoir souvent fait le béta testeur (à ne pas confondre avec le testeur béta, même si parfois ...), je peux vous dire que le jeu est topissime.
Afyu, tu as fait un boulot de fou avec cette adaptation.
Et mon petit doigt me dit qu'il y a du lourd qui se prépare, vu le teaser de fin :D

Re: Le jeu Orlog sur la NumWorks

Unread postPosted: 03 Jun 2024, 11:12
by parisse
Logiquement, ça devrait déjà tourner sur le portage d'Upsilon sur les graph90 et les TI Nspire.

Re: Le jeu Orlog sur la NumWorks

Unread postPosted: 16 Jun 2024, 18:10
by Afyu
SlyVTT wrote:Merci Afyu,
Pour y avoir beaucoup joué et avoir souvent fait le béta testeur (à ne pas confondre avec le testeur béta, même si parfois ...), je peux vous dire que le jeu est topissime.
Afyu, tu as fait un boulot de fou avec cette adaptation.
Et mon petit doigt me dit qu'il y a du lourd qui se prépare, vu le teaser de fin :D

Ouiii, il faut y jouer et y rejouer, encore et encore !

Un grand MERCI à toi, SlyVTT, pour ton soutien, tes conseils et tes idées. :) :favorite:

Il y a eu un immense travail d'optimisation du code, pour que tout puisse rentrer dans la mémoire réduite de la NumWorks.

Oui, il y a du lourd par ici : viewtopic.php?t=26707
Et du encore plus lourd par ici : viewtopic.php?t=26725

parisse wrote:Logiquement, ça devrait déjà tourner sur le portage d'Upsilon sur les graph90 et les TI Nspire.

C'est fort possible. Je n'ai pas vérifié. En revanche, j'imagine qu'on ne peut pas profiter de l'intégralité de la largeur de l'écran de la Graph 90+E ou de la TI Nspire pour l'affichage en Python...

Bon jeu ! :D

Re: Le jeu Orlog sur la NumWorks

Unread postPosted: 16 Jun 2024, 20:29
by parisse
Afyu wrote:
parisse wrote:Logiquement, ça devrait déjà tourner sur le portage d'Upsilon sur les graph90 et les TI Nspire.

C'est fort possible. Je n'ai pas vérifié. En revanche, j'imagine qu'on ne peut pas profiter de l'intégralité de la largeur de l'écran de la Graph 90+E ou de la TI Nspire pour l'affichage en Python...

Je viens de vérifier, il n'y a aucun problème pour afficher tous les pixels sur la 90 avec le Python d'Upsilon(donc 396x206 au lieu de 320x222, les 18 lignes supérieures servant à la ligne d'état). Assez normal vu que le SDK utilisé pour le portage d'Upsilon est gint. Donc il y a un petit travail d'adaptation à faire si on veut y utiliser un script prévu pour la Numworks, probablement le même que pour PythonExtra.
La Nspire a le même écran que la Numworks donc le script Numworks devrait tourner sans aucune adaptation avec Upsilon.