π
<-

Mandragore, 1er jeu en C pour ta TI-83 Premium CE

:32ti73: :32ti73e: :32ti73e2: :32ti76f: :32ti80: :32ti81: :32ti82: :32ti85: :32ti86: :32ti82s: :32ti82sf: :32ti82sfn: :32ti83: :32ti83p: :32ti83pb: :32ti83pr: :32ti83pfr: :32ti83pse: :32ti84p: :32ti84pse: :32ti84ppse: :32ti84pfr: :32ti84pcse: :32ti83pfrusb: :32ti82p: :32ti82a: :32ti84pce: :32ti83pce:

Mandragore, 1er jeu en C pour ta TI-83 Premium CE

Unread postby critor » 18 Oct 2015, 16:57

Dans plusieurs articles précédents, nous avions traité de la programmation de jeux avec des graphismes couleur en langage TI-Basic sur ton extraordinaire TI-83 Premium CE.

Même si nous avions réussi à faire des choses assez sympa, nous ne pouvions que constater diverses limitations:
  • la zone dessinable par les programmes ne fait que 265x165 pixels, contre un maximum de 320x240 pixels pour l'écran :'(
  • seules 15 couleurs sont utilisables par les programmes, alors que l'écran 16-bits permet un maximum de 216=65536 couleurs :'(
    (on peut certes aller plus loin, mais là encore avec nombre de contraintes et limitations)
  • les fonds d'écran que l'on peut utiliser pour enrichir graphiquement des programmes comme Bougies ne sont certes eux pas limités en couleurs, mais le sont en résolution avec seulement 133x83 pixels :'(
  • et dans tous les cas, les jeux en question sont impactés par la lenteur d'exécution du Basic, particulièrement dans le contexte où l'on dessine des 'sprites' et où l'on ne peut donc pas bénéficier des instructions accélérant le dessin des formes géométriques usuelles :'(
Créer de bons jeux graphiques en Basic nécessite de jongler astucieusement entre ces différentes limitations, et nous avons certes clairement démontré que c'était possible.



Mais, peut-être certains d'entre vous souhaiteront aller plus loin avec leur TI-83 Premium CE. ;)

C'est possible en langage assembleur, un langage dit de bas niveau car interagissant directement avec la couche matérielle.
Mais c'est hélas bien autre chose qu'un langage de haut niveau comme le TI-Basic et son apprentissage n'est pas à la portée de tout-le-monde; je ne m'y suis moi-même jamais véritablement mis.

Mais une autre alternative beaucoup plus abordable existe, c'est d'utiliser un langage de haut niveau non pas interprété comme le TI-Basic, mais compilé. C'est-à-dire qu'à partir d'un code source lisible pour un être humain exactement comme du TI-Basic, un compilateur va générer du code machine directement exécutable par le matériel de la calculatrice. :o
De tels langages intermédiaires permettant de mettre toute la puissance du matériel à la portée de tous ont déjà existé pour les TI-83+/84 monochromes, comme l'Axe ou encore plus récemment le kwyxti.

L'équipe TI-Planet (particulièrement Adriweb) est en train de te développer un compilateur TI-83 Premium CE en ligne utilisant le langage C, une référence en informatique. Nous l'avions déjà utilisé avec succès dans un article précédent pour un afficheur de QR Code, mais il restait encore à l'exploiter pour un projet conséquent. ;)



Je répondais récemment sur notre forum que les jeux pouvant être portés sur TI-Nspire CX étaient en gros ceux compatibles avec les ordinateurs du milieu des années 90.
(Et il n'y avait rien de honteux à cela, nombre de jeux disponibles pour les plate-formes mobiles actuelles que sont les smartphones et tablettes sont des refontes graphiques de jeux existant déjà au siècle dernier.)
Relativement à sa puissance, pour la TI-83 Premium CE il faudrait cibler en comparaison des jeux compatibles avec les ordinateurs du milieu des années 80.

Voici donc aujourd'hui le tout premier jeu en C pour TI-83 Premium CE et également le tout premier projet conséquent réalisé avec notre compilateur en ligne, Mandragore, adaptation partielle du jeu éponyme de Marc Cecchi sorti en 1984 chez Infogrames pour ordinateurs Commodore 64, MSX, Thomson MO5, Thomson TO7/70, Thomson TO9, ZX Spectrum 48K et Amstrad CPC.
Notons pour l'annecdote que le jeu reçut à l'époque le "1er prix arcade" créé pour l'occasion par le Ministère de la culture français dans le contexte du lancement du plan IPT (informatique pour tous).

Il était une fois un lointain pays où ne régnait que calme et bonté. Une pluie d'étoiles filantes s'abattit sur la contrée et l'une d'elles foudroya le bon roi Joriand du pays de Mandragore. Aussitôt, un seigneur venu de nulle part, Yarod-Nor s'empara du pouvoir et fit régner le mal et la terreur sur ce pays paisible. Pour libérer le pays du joug de cet infâme tyran, vous devez affronter Yarod-Nor dans son propre donjon. Pour cela, vous devrez auparavant amasser les trésors détenus dans les neuf autres donjons du pays de Mandragore, et les revendre dans les différents villages afin d'obtenir de quoi vous construire un bateau.

Si tu es sous le charme de cette prose, sache que tu peux continuer la découverte du pays de Mandragore à travers la nouvelle inédite "la geste de Syrella" sortie pour l'occasion par Christian Ballandras et téléchargeable ci-dessous avec le jeu, une nouvelle qui n'a rien à envier à un roman de Tolkien. ;)

60326027Finalement le jeu tourne très bien sur TI-83 Premium CE, sans aucun problème de stabilité. :bj:
Mieux que ça il est même beaucoup plus rapide que l'original, comme te le montre Adriweb dans la vidéo ci-dessous :

Au vu de ces performances extraordinaires auxquelles nous ne nous attendions pas, nous pourrions peut-être espérer adapter des jeux plus récents pour une prochaine fois. ;)

Le temps de développement a été de seulement deux jours et demi (mercredi après-midi, vendredi après-midi, samedi et ce matin). Il aurait pu être bien moindre, mais dans le contexte de ce gros projet il s'agissait surtout de découvrir et contourner les limitations du compilateur en ligne, et je tiens à remercier pour cela Adriweb qui a été en permanence à mes côtés, et sans qui ce jeu ne serait pas sorti aujourd'hui. ;)
Ces limitations seront détaillées publiquement si toujours présentes lors de la sortie publique du compilateur mais rien de bien méchant, il s'agit juste d'écrire certaines choses différemment.




Bref, si quelqu'un comme moi ne connaissant rien à l'assembleur arrive à faire un jeu aussi performant que les jeux directement développés en langage machine, tu en seras toi aussi capable avec notre compilateur C en ligne, l'outil qui met toute la puissance de ta TI-83 Premium CE entre tes mains ! :bj:

En attendant, pars dès maintenant dans ta croisade pour libérer le pays de Mandragore avec ton extraordinaire TI-83 Premium CE, et tente d'arriver à la fin du jeu en parcourant le moins de distance possible en t'aidant éventuellement de la carte ci-contre ! :bj:




Téléchargement : https://tiplanet.org/forum/archives_voir.php?id=328137
Image
User avatar
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Level up: 47.2%
 
Posts: 41954
Images: 15660
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
MyCalcs profile
YouTube: critor3000
Twitter: critor2000
GitHub: critor

Re: Mandragore, 1er jeu en C pour ta TI-83 Premium CE

Unread postby Ti64CLi++ » 18 Oct 2015, 19:29

Génial, on attend tous la sortie publique de ce compilateur ;)
Image
User avatar
Ti64CLi++Modo
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 32.5%
 
Posts: 3446
Images: 75
Joined: 04 Jul 2014, 14:40
Location: Clermont-Ferrand 63
Gender: Male
Calculator(s):
MyCalcs profile
Class: ENS Rennes
GitHub: Ti64CLi

Re: Mandragore, 1er jeu en C pour ta TI-83 Premium CE

Unread postby Commando12345 » 19 Oct 2015, 10:45

fini en 6062km (ne me frappez pas) :D bon 2ème essai 1368km
User avatar
Commando12345Premium
Niveau 9: IC (Compteur Infatigable)
Niveau 9: IC (Compteur Infatigable)
Level up: 84.4%
 
Posts: 42
Joined: 03 Aug 2015, 18:20
Location: près de Paris
Gender: Male
Calculator(s):
MyCalcs profile
Class: Master 1 Ecole d'ingé Aéronautique et Spatial

Re: Mandragore, 1er jeu en C pour ta TI-83 Premium CE

Unread postby Zelink » 19 Oct 2015, 13:05

Beau travail :D.
Mais vu que c'est une "adaptation partielle" y a des différences avec la version d'origine ?
User avatar
Zelink
Niveau 7: EP (Espèce Protégée: geek)
Niveau 7: EP (Espèce Protégée: geek)
Level up: 34.4%
 
Posts: 12
Joined: 21 Sep 2015, 14:58
Location: Quelque part
Gender: Male
Calculator(s):
MyCalcs profile
Class: 2nd

Re: Mandragore, 1er jeu en C pour ta TI-83 Premium CE

Unread postby critor » 19 Oct 2015, 17:11

Dans le jeu d'origine, tu peux rentrer dans les donjons et villages.
Mais c'est un affichage complètement différent (3D isométrique) qui aurait nécessité ici de développer un 2ème moteur d'affichage.
Image
User avatar
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Level up: 47.2%
 
Posts: 41954
Images: 15660
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
MyCalcs profile
YouTube: critor3000
Twitter: critor2000
GitHub: critor

Re: Mandragore, 1er jeu en C pour ta TI-83 Premium CE

Unread postby Zelink » 19 Oct 2015, 17:23

Du coup les objectifs sont différents entre la version d'origine et ce portage ?
User avatar
Zelink
Niveau 7: EP (Espèce Protégée: geek)
Niveau 7: EP (Espèce Protégée: geek)
Level up: 34.4%
 
Posts: 12
Joined: 21 Sep 2015, 14:58
Location: Quelque part
Gender: Male
Calculator(s):
MyCalcs profile
Class: 2nd

Re: Mandragore, 1er jeu en C pour ta TI-83 Premium CE

Unread postby Adriweb » 19 Oct 2015, 18:46

Ce n'est pas un portage, dans ce cas, le code de la version d'origine n'ayant même pas été regardé :)
Juste une adaptation libre de la partie 2D d'exploration de la carte.

C'est déjà un bon début qui a permi de correctement établir les règles de codage pour être compatible correctement avec ZDS et la 83PCE/84+CE :P

MyCalcs: Help the community's calculator documentations by filling out your calculators info!
MyCalcs: Aidez la communauté à documenter les calculatrices en donnant des infos sur vos calculatrices !
Inspired-Lua.org: All about TI-Nspire Lua programming (tutorials, wiki/docs...)
My calculator programs
Mes programmes pour calculatrices
User avatar
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 78.9%
 
Posts: 14737
Images: 1119
Joined: 01 Jun 2007, 00:00
Location: France
Gender: Male
Calculator(s):
MyCalcs profile
Twitter: adriweb
GitHub: adriweb

Re: Mandragore, 1er jeu en C pour ta TI-83 Premium CE

Unread postby Zelink » 19 Oct 2015, 19:31

Adriweb wrote:Ce n'est pas un portage, dans ce cas, le code de la version d'origine n'ayant même pas été regardé :)

En effet x).
En tout cas c'est très propre, gg ^^.
User avatar
Zelink
Niveau 7: EP (Espèce Protégée: geek)
Niveau 7: EP (Espèce Protégée: geek)
Level up: 34.4%
 
Posts: 12
Joined: 21 Sep 2015, 14:58
Location: Quelque part
Gender: Male
Calculator(s):
MyCalcs profile
Class: 2nd

Re: Mandragore, 1er jeu en C pour ta TI-83 Premium CE

Unread postby critor » 19 Oct 2015, 22:11

Les objectifs ainsi que le déroulement de la partie du jeu sur carte restent exactement les mêmes. :)
Juste que les phases de combats dans les donjons et d'achat/vente dans les villages sont sautées.
Image
User avatar
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Level up: 47.2%
 
Posts: 41954
Images: 15660
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
MyCalcs profile
YouTube: critor3000
Twitter: critor2000
GitHub: critor

Re: Mandragore, 1er jeu en C pour ta TI-83 Premium CE

Unread postby critor » 19 Oct 2015, 22:45

Commando12345 wrote:fini en 6062km (ne me frappez pas) :D

Normal quand on découvre la carte pour la première fois :)

Commando12345 wrote:bon 2ème essai 1368km

Cela me fait très plaisir que tu aies testé le jeu qui nous a pris tant d'heures de développement, que tu te sois donné la peine de le terminer, et en prime d'améliorer ton score ! :bj:

Je viens de réussir en 1086km.
Mais rien ne prouve que c'est le plus court chemin...
Image
User avatar
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Level up: 47.2%
 
Posts: 41954
Images: 15660
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
MyCalcs profile
YouTube: critor3000
Twitter: critor2000
GitHub: critor

Next

Return to News TI-z80 (TI-73, 76, 80, 81, 82, 83, 84, 85, 86)

Who is online

Users browsing this forum: No registered users and 10 guests

-
Search
-
Social TI-Planet
-
Featured topics
Comparaisons des meilleurs prix pour acheter sa calculatrice !
"1 calculatrice pour tous", le programme solidaire de Texas Instruments. Reçois gratuitement et sans aucune obligation d'achat, 5 calculatrices couleur programmables en Python à donner aux élèves les plus nécessiteux de ton lycée. Tu peux recevoir au choix 5 TI-82 Advanced Edition Python ou bien 5 TI-83 Premium CE Edition Python.
Enseignant(e), reçois gratuitement 1 exemplaire de test de la TI-82 Advanced Edition Python. À demander d'ici le 31 décembre 2024.
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
1234
-
Donations / Premium
For more contests, prizes, reviews, helping us pay the server and domains...
Donate
Discover the the advantages of a donor account !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partner and ad
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
711 utilisateurs:
>668 invités
>33 membres
>10 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Other interesting websites
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)