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
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)
libMicrofx : https://www.planet-casio.com/Fr/forums/topic17259-2-libmicrofx-remplacez-fxlib-pour-faire-des-add-ins-tres-legers.html !
Racer3D : https://www.planet-casio.com/Fr/programmes/programme4444-1-racer3d-mb88-jeux-add-ins.html
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)
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 :
Vous pouvez télécharger la nouvelle version sur la page de téléchargement ou directement en fichier joint.
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).
Téléchargez la nouvelle version depuis la page de téléchargement ou directement en fichier joint.
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 :
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
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.
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.
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 nouvelle version est disponible depuis la page de téléchargement et en fichier joint.
@RDP
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)
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) :
Enjoy~
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
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é.