Les membres ayant 30 points peuvent parler sur les canaux annonces, projets et hs du chat.
La shoutbox n'est pas chargée par défaut pour des raisons de performances. Cliquez pour charger.

Forum Casio - Projets de programmation


Index du Forum » Projets de programmation » Asci : un moteur pour jeux de rôles en Python
Shadow15510 Hors ligne Administrateur Points: 5503 Défis: 18 Message

Asci : un moteur pour jeux de rôles en Python

Posté le 13/08/2021 11:36

Bonjour à tous !
Avec la Graph 90 et son Python très… limité pas simple de faire un jeu de rôle… Asci est un moteur conçu pour vous simplifier la vie !

En terme d'utilisation, Asci est assez ergonomique avec notamment des choses plutôt agréable comme la détection des entités par leur nom, ou la gestion de Tiled qui permet de créer des cartes très simplement. Mais si vous voulez exploiter le moteur au maximum, il y a quelques points un peu plus délicat…

Concrètement, à quoi sert ce moteur ? Asci a avant tout pour but de rendre plus simple la création de jeux de rôles en Python. Ainsi, le moteur va se charger en grande partie de l'affichage, de l'avancée du scénario et de toute l'interface utilisateur. Vous de votre côté, il faudra que vous fournissiez une carte et un scénario sous forme d'évènements.

>> Documentation complète <<

>> Télécharger Asci <<

>> Le dépôt gitea <<


La carte du monde
  • c'est à vous de la faire dans une variable à part, mais il faut respecter quelques règles
  • vous évoluez dans le monde façon pokémon : la carte bouge tout autour de vous


Les mécaniques
  • les combats sont laissés au développeur du jeu
  • une liste des données du moteur est modifiable, sauf si vous savez ce que vous faites, n'y touchez pas, ce n'est, en général, pas nécessaire.
  • une liste de statistique est laissée libre, vous pouvez l'utiliser comme vous voulez. Ces statistiques peuvent être modifiée par les dialogues, bien que ce ne soit pas toujours la solution la plus élégante
  • les touches 1, 2, 3 et 5 sont prises pour les déplacement, vous ne pouvez pas y associer de fonctions.


La mise en place du scénario
  • les évèvements se découpent en catégories, à chaque catégorie correspond une fonction dans le code et un (ou des) symbole(s) qui déclenche(nt) ces évènements lorsque le joueur le(s) rencontre
  • les évènements ne sont pas très dur à prendre en main, il s'agit de liste : [XP_gagnée, "texte"].
  • vous pouvez tout à fait mettre en place des dialogues complexes dans lesquels le joueur choisit sa réplique dans une liste



Les entités
  • il s'agit d'une liste de tuples stockée avec la carte ; chaque carte a sa liste d'entités
  • toutes les entités sont repérées par un identifiant (à vous de faire en sorte qu'il soit unique)
  • les entités peuvent être animées et vous pouvez modifier les entités comme vous le souhaitez



Mb88 Hors ligne Rédacteur Points: 1211 Défis: 3 Message

Citer : Posté le 21/02/2022 11:37 | #


Avec une version pour calculette monochrome ça serait parfait !
(Je préfère clairement le Python au Casio Basic)
Shadow15510 Hors ligne Administrateur Points: 5503 Défis: 18 Message

Citer : Posté le 21/02/2022 12:56 | #


J'ai jamais essayé parce que je n'ai pas de modèle monochrome avec le Python officiel, mais Asci doit être compatible avec le Python de la Graph 35+E II. Les tailles d'écran sont les mêmes (en terme de ligne / colones)
"Ce n'est pas parce que les chose sont dures que nous ne les faisons pas, c'est parce que nous ne les faisons pas qu'elles sont dures." Sénèque

Shadow15510 Hors ligne Administrateur Points: 5503 Défis: 18 Message

Citer : Posté le 27/02/2022 10:00 | # | Fichier joint


Version 1.7.3

Pas beaucoup de changements, mais ça me semblait pertinent de faire une nouvelle version. Au programme : une nouvelle gestion des entités. Concrètement :
  • Dans le jeu, chaque entité doit avoir un identifiant unique (ce qui n'était pas le cas)
  • Les entités sont maintenant centralisées dans un dictionnaire alors qu'elle étaient gérées séparément par carte avant (ce qui explique le point ci-dessus)
  • Grâce à cette nouvelle gestion des entités, on peut maintenant téléporter des entités où on veut dans le monde


Vous pouvez télécharger la nouvelle version sur la page de téléchargement ou directement en fichier joint.
"Ce n'est pas parce que les chose sont dures que nous ne les faisons pas, c'est parce que nous ne les faisons pas qu'elles sont dures." Sénèque

Shadow15510 Hors ligne Administrateur Points: 5503 Défis: 18 Message

Citer : Posté le 27/02/2022 13:50 | #


Version 1.8.0

Attention : cette version n'est pas compatible avec la précédente (le format des cartes est différent, avec les entités stockées à part).
  • Correction des bugs sur les entités
  • Mise à jour de la conversion Tiled
  • Refonte du chargement des entités et du système de carte


Téléchargez la nouvelle version depuis la page de téléchargement ou directement en fichier joint.
"Ce n'est pas parce que les chose sont dures que nous ne les faisons pas, c'est parce que nous ne les faisons pas qu'elles sont dures." Sénèque

Shadow15510 Hors ligne Administrateur Points: 5503 Défis: 18 Message

Citer : Posté le 28/02/2022 14:51 | # | Fichier joint


Version 1.8.1

Désolé pour les version aussi rapprochées, vous l'aurez compris, IDK me sert aussi de premier test à grande ampleur, du coup pas mal de subtilités au niveau du moteur sont en train de se rôder. La bonne nouvelle c'est que ça avance.

Donc, au programme, pas mal de nouveaux types d'animations pour encore plus de possibilités (la phrase est con, vu que vous pouvez programmer vos animations vous-même, il y a déjà une infinité de possibilités ) disons "Pour encore plus de simplicité !".
Bon, en bref, deux nouvelles animations à découvrir :
  • walk to : l'entité se déplace jusqu'à la case donnée
  • follow by player : comme walk to mais si le joueur est trop loin, l'entité stoppe son mouvement pour permettre au joueur de la suivre.


L'ancienne animation walk qui correspondait à une marche "en boucle" a été renommée en walk between. Et l'algorithme de déplacement a été revu : vous pouvez dès lors directement préciser les points de départ et d'arrivée, l'entité se déplacera ensuite en ligne droite et / ou en diagonale pour rejoindre sa case d'arrivée. Néanmoins, il ne s'agit pas d'un algorithme de pathfinding, donc, si il y a un obstacle, l'entité restera coincée.

Comme d'habitude, le téléchargement peut se faire :
depuis la page de téléchargement
ou directement depuis ce lien
@RDP
"Ce n'est pas parce que les chose sont dures que nous ne les faisons pas, c'est parce que nous ne les faisons pas qu'elles sont dures." Sénèque

Shadow15510 Hors ligne Administrateur Points: 5503 Défis: 18 Message

Citer : Posté le 17/04/2022 22:28 | # | Fichier joint


Version 1.8.2

Une petite mise à jour dont KikooDX est à l'origine.

On peut donc utiliser la barre en bas de l'écran. Par défaut, la carte est affichée, mais vous pouvez aussi créer une fonction qui prend en argument les listes data et stat et qui renvoie une chaîne de caractère de 15 caractères maximum. Cette chaîne sera alors affichée en bas de l'écran.

Vous pouvez retrouver Asci sur la page de téléchargement et en fichier joint.
"Ce n'est pas parce que les chose sont dures que nous ne les faisons pas, c'est parce que nous ne les faisons pas qu'elles sont dures." Sénèque

Shadow15510 Hors ligne Administrateur Points: 5503 Défis: 18 Message

Citer : Posté le 18/04/2022 12:25 | # | Fichier joint


Version 1.8.3

Une toute petite mise à jour qui finalise une fonctionnalité déjà pensée depuis le début mais qui n'étais pas encore fonctionnelle : la taille variable de l'écran. C'est maintenant chose faite, on peut ajuster la taille de l'écran comme on veut, ce qui permet, entre autre de pouvoir jouer sur ordinateur avec une bien meilleure vision de la carte. L'intérêt étant aussi de s'ouvrir aux autres plateforme dans le monde de la calculatrice comme la Graph 35+E et le port MicroPython de Zez ou la Numworks (encore qu'Asci n'est pas adapté à la Numworks qui, elle possède une gestion du clavier).

La nouvelle version est disponible sur la page de téléchargement et en fichier joint.
"Ce n'est pas parce que les chose sont dures que nous ne les faisons pas, c'est parce que nous ne les faisons pas qu'elles sont dures." Sénèque

Shadow15510 Hors ligne Administrateur Points: 5503 Défis: 18 Message

Citer : Posté le 12/07/2022 11:11 | # | Fichier joint


Version 1.9.0

Une mise à jour assez mineure qui ajoute deux fonctions tierces (i.e. des fonctions qui ne font pas partie à proprement parler du moteur, mais qui peuvent aider à côté) :
  • la fonction center qui permet de centrer une chaîne donnée en argument en complétant à gauche et à droite par un symbole donnée jusqu'à avoir une chaîne de la longueur souhaitée ;
  • la fonction enumerate qui n'existe pas sur calculatrice, cette version se comporte exactement comme l'originale.


La nouvelle version est disponible depuis la page de téléchargement et en fichier joint.

@RDP
"Ce n'est pas parce que les chose sont dures que nous ne les faisons pas, c'est parce que nous ne les faisons pas qu'elles sont dures." Sénèque

Shadow15510 Hors ligne Administrateur Points: 5503 Défis: 18 Message

Citer : Posté le 15/07/2022 22:51 | # | Fichier joint


Version 1.9.1

Encore une mise à jour, sur les déplacements des entités maintenant ! Dans le second opus d'IDK, j'ai envie d'exploiter à mort les fonctionnalités sur les entités notamment les PnJ qui montrent le chemin au joueur ou qui le suive. Bref cela a mis en évidence quelques faiblesses maintenant corrigées.

Sur les prochaines avancées, je n'ai toujours pas d'idée de ce que je pourrais rajouter, mais je pencherais à l'occasion sur la documentation pour en faire une nouvelle plus claire, notamment au niveau des Entités. Au début c'était vraiment un point anecdotique qui est devenu un peu plus gros que prévu, et je pense que ça mérite une page complète dans le wiki.

Vous pouvez retrouver Asci sur la page de téléchargement ou en fichier joint.

@RDP (à fusionner avec le message précédent)
"Ce n'est pas parce que les chose sont dures que nous ne les faisons pas, c'est parce que nous ne les faisons pas qu'elles sont dures." Sénèque

Shadow15510 Hors ligne Administrateur Points: 5503 Défis: 18 Message

Citer : Posté le 19/11/2022 21:21 | #


Coucou par ici !
Pour une fois ce n'est pas pour une update ou une annonce de feature mais pour un truc beaucoup plus bête : je viens de me rendre compte que je n'avais jamais donné de lien explicite pour la documentation du projet.
Du coup je vous le donne (c'est le wiki du dépôt gitea btw) :
Documentation complète


Enjoy~
"Ce n'est pas parce que les chose sont dures que nous ne les faisons pas, c'est parce que nous ne les faisons pas qu'elles sont dures." Sénèque

Shadow15510 Hors ligne Administrateur Points: 5503 Défis: 18 Message

Citer : Posté le 20/12/2022 11:32 | # | Fichier joint


Version 1.9.2

Une mise à jour mineure qui factorise les dimensions de l'écran. Avant il fallait préciser à chaque fois la taille de l'écran :
- lors de la création du jeu
- à chaque affichage
etc

Maintenant il suffit de modifier deux variables globales : SCREEN_WIDTH et SCREEN_HEIGHT et la taille de l'écran est modifiée pour toutes les fonctions.

Par défaut, la taille est ajustée sur les CASIO avec le Python officiel. (21×7)

page de téléchargement
"Ce n'est pas parce que les chose sont dures que nous ne les faisons pas, c'est parce que nous ne les faisons pas qu'elles sont dures." Sénèque

Shadow15510 Hors ligne Administrateur Points: 5503 Défis: 18 Message

Citer : Posté le 05/01/2023 15:59 | # | Fichier joint


Version 1.9.3

Il restait un petit bug avec la mise à jour précédente, c'est maintenant réglé.
"Ce n'est pas parce que les chose sont dures que nous ne les faisons pas, c'est parce que nous ne les faisons pas qu'elles sont dures." Sénèque


LienAjouter une imageAjouter une vidéoAjouter un lien vers un profilAjouter du codeCiterAjouter un spoiler(texte affichable/masquable par un clic)Ajouter une barre de progressionItaliqueGrasSoulignéAfficher du texte barréCentréJustifiéPlus petitPlus grandPlus de smileys !
Cliquez pour épingler Cliquez pour détacher Cliquez pour fermer
Alignement de l'image: Redimensionnement de l'image (en pixel):
Afficher la liste des membres
:bow: :cool: :good: :love: ^^
:omg: :fusil: :aie: :argh: :mdr:
:boulet2: :thx: :champ: :whistle: :bounce:
valider
 :)  ;)  :D  :p
 :lol:  8)  :(  :@
 0_0  :oops:  :grr:  :E
 :O  :sry:  :mmm:  :waza:
 :'(  :here:  ^^  >:)

Σ π θ ± α β γ δ Δ σ λ
Veuillez donner la réponse en chiffre
Vous devez activer le Javascript dans votre navigateur pour pouvoir valider ce formulaire.

Si vous n'avez pas volontairement désactivé cette fonctionnalité de votre navigateur, il s'agit probablement d'un bug : contactez l'équipe de Planète Casio.

Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 220 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements

Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd