Pages: [1]   Bas de page
Imprimer
Auteur Fil de discussion: AGE: Adventure Game Engine pour créer des Point n Click 2D  (Lu 1853 fois)
0 Membres et 1 Invité sur ce fil de discussion.
lagw Hors ligne
Jr. Member
**
Messages: 83


Voir le profil
« 10 Mai 2012, 13:15:29 »

Hello,

Je suis en train de développer un logiciel qui permettra de créer des jeux d'aventure point n click à l'ancienne en toute simplicité... avec la possibilité pour le scénariste de créer des branches à l'infini (DESTINY) et de les faire rejoindre afin d'avoir une ou plusieurs fins possibles.

Il sera possible de gérer plusieurs personnages comme dans Day of the Tentacle.


AGE: Adventure Game Engine


Ce qui est deja fait:

- L'editeur principal: un graph avec des differents types de boites pour scénariser son jeu. On peut associer deux scripts par boite (un quand on entre, un autre quand on en sort). Les scripts sont executés directement dans l'éditeur pour simuler une situation. C'est la force et l'originalité du soft... c'est à dire de pouvoir consulter les états de tous les élements à n'importe quel moment de l'histoire sans lancer le jeu. On pourra aussi lancer le jeu à partir d'une boite précise.

- L'éditeur d'objets (et perso car c'est aussi un objet au sens large): une boite de dialogue pour gerer ses anims. L'avantage du soft c'est que tous les elements graphiques/sonores sont externes. Il suffit de placer ses anims (image PNG) dans des dossiers et de faire IMPORT pour générer les assets. Si on a besoin de modifier une frame, rien de plus simple, il suffit de remplacer ou modifier l'image png concernée et de relancer une importation de l'asset.... ou de tous les assets. Ca evite de rajouter des étapes intermediaires entre les data et le projet. Pour renommer une animation, il suffit de renommer le dossier car aucun path n'est stocké dans les assets.

- L'éditeur de scène: pour placer ses objets (et perso). Un systeme de spots permet de gérer les déplacements des persos. On peut y appliquer un scale. Les objets peuvent avoir une hauteur (3D) pour gérer la profondeur. On peut aussi placer des portes (des zones).

- L'interpreter: pour écrire ses mini scripts très simplement à l'aide de commandes.


A faire:

- L'éditeur de dialogues pour gérer les conversations.

- Les évenements présents dans les éditeurs pour intercepter les actions du joueur.


Exemples:

Une petite video du soft en action (ne pas oublier de passer en HD)
http://www.youtube.com/watch?v=NFzlXKudibQ

La doc du langage pour coder ses scripts (c'est un bien grand mot) est ici:
http://age.seccia.com

Une première version disponible:
http://age.seccia.com/age.zip

L'éditeur sera compatible Windows uniquement, mais le runtime tournera sur un maximum de plateformes.
Tout ca gratuit...


Les Graphistes

Je recherche un graphiste qui pourrait réaliser l'exemple officiel du soft. L'exemple serait une mini histoire tres simple, avec 3/4 scenes, 2/3 persos, quelques objets, quelques énigmes pour mettre en avant les fonctionnalités du logiciel. Avec deux fins différentes...
Journalisée
Reyhn Hors ligne
Jr. Member
**
Messages: 95


Voir le profil
« Réponse #1 : 11 Mai 2012, 13:12:59 »

Wow joli projet et déjà bien avancé !

Je connais pas les autres soft du genre (s'il y en a) mais le scénario sous forme de graphe, l'éditeur de scènes etc, ça a l'air bien pratique ! Hâte de tester tout ça, bien que le scénar ou les graphismes soient pas mon ffort  Grin
Journalisée
lagw Hors ligne
Jr. Member
**
Messages: 83


Voir le profil
« Réponse #2 : 12 Mai 2012, 09:30:49 »

merci

je suis en train de coder l'éditeur des dialogues pour gérer les conversations. J'espre pouvoir sortir une beta de l'éditeur fin mai.
Journalisée
Zipler Hors ligne
Full Member
***
Messages: 106


Voir le profil
« Réponse #3 : 13 Mai 2012, 10:59:38 »

ça a l'air costaud, bonne continuation Smiley.
Le scénario sous forme de graphe ça doit être bien pratique!
Journalisée
lagw Hors ligne
Jr. Member
**
Messages: 83


Voir le profil
« Réponse #4 : 17 Mai 2012, 19:05:19 »

La version 0.1.1 est dispo ici:
http://age.seccia.com
Journalisée
lagw Hors ligne
Jr. Member
**
Messages: 83


Voir le profil
« Réponse #5 : 01 Juin 2012, 21:04:22 »

Je vous explique comment fonctionne le pathfinding dans AGE... Oubliez les spots verts... ils n'existent plus.

Maintenant je gere une grille fixe de 16x16, sur toute la surface du background de la scene. Il y a une grille par objet présent sur scene. Pour editer cette grille il suffit de double cliquer sur un objet de la scene. Pour montrer à l'utilisateur qu'on est en mode grille et mieux voir les elements de la grille, le decor passe en noir et blanc, ainsi que tous les objets excepté celui qu'on édite. Chaque cellule possede ses proprietes éditable. Comment?

Pour ajouter des cellules "walkable", il suffit de rester appuyer sur SHIFT et cliquer sur une case. La manip cool c'est de pouvoir déplacer la souris tout en restant appuyé sur SHIFT et le bouton gauche (pas besoin de faire d'autres clics comme si on dessinait). Un contour vert permet d'indiquer les cases "walkable". SHIFT+CTRL permet de supprimer les cases (comme une gomme).

Pour éditer une cellule il suffit de cliquer dessus sans presser SHIFT. Un petit carré bleu s'affiche. Ca permet de selectionner plusieurs cellules et d'éditer les proprietes rapidement.

Le perso se déplacera de case en case (centre). Quand le joueur clique sur la scene, je cherche la case correspondante et je lance le pathfinding pour trouver le chemin le plus court.

Il y a une autre notion importante: les cases events dessinées en rouge (qui doivent porter un nom). Ces cases sont utiles si on souhaite recevoir des events lorsque le perso se déplace dedans.

Pour les scales, ce n'est pas les cellules qui les déterminent. J'ai rajouté des labels que l'on peut monter ou descendre pour definir une zone de profondeur. Par default il y a en a deux (min) de 100% à 100%, mais il est possible d'en rajouter. Ces étiquettes sont dépendantes de l'objet et non de la scene comme pour les cellules.

Enfin et afin de voir un apercu du scale du perso, il suffit de passer le curseur de la souris sur les cellules remplies...

La video...
http://www.youtube.com/watch?v=H3d1FyMM59w
Journalisée
lagw Hors ligne
Jr. Member
**
Messages: 83


Voir le profil
« Réponse #6 : 09 Juin 2012, 13:17:15 »

Enfin le runtime... win32 pour l'instant... J'ai programmé la gestion des discussions, le deplacement  à la lucasarts, la gestion des evenements automatique via les proprietes. Par exemple lorsqu'on clique sur un objet... par defaut on recoit immediatement un evenement SELECT... sauf que dans la pratique on veut que le perso se rapproche d'abord de l'objet pour le prendre ou pour parler avec lui. On peut le faire facilement avec les CELL. Il suffit d'associer une cellule. Ainsi l'evenement est appelé lorsque le perso atteint la cellule. On peut meme associer une anim. Pour prendre un objet, on va associer l'anim TAKE. Et l'evenement sera appelé apres l'anim. Voici la video du runtime (le deplacement pose probleme parce qu'il me manque des anims, mais à priori le code est bon):

http://www.youtube.com/watch?v=Y-yPs5DIlpQ
Journalisée
lagw Hors ligne
Jr. Member
**
Messages: 83


Voir le profil
« Réponse #7 : 08 Septembre 2012, 17:27:53 »

De retour en tres grande forme pour vous annoncer quelques news tres interessantes...

1. Le jeu The Pieman est bientot fini...

2. Une nouvelle version de AGE est disponible sur le site

3. Et surtout cette nouvelle version permet d'exporter son jeu sur android... GRATUITEMENT!!!

La super bonne nouvelle c'est que vous n'avez pas besoin de sdk, ni de code pour compiler votre jeu... pas besoin de vous arracher les cheveux... je l'ai fait pour vous... Il suffit de cliquer sur le bouton Build All Versions pour obtenir une version Windows .Net (exe + dossier content) et une version Android (apk + obb). C'est magique!... Pour info les fichiers apk sont limités à 50MB par Google, j'ai donc du utiliser les expansions apk limités à 2GB. On peut en avoir 2 par jeu max (soit 4GB) mais AGE n'en gere qu'un seul. C'est deja bcp 2GB pour un jeu point n click 2D. Je verrais si je peux pas merger les deux lorsque le jeu pese moins de 50 MB...

Il faut quand meme signer le fichier apk pour pouvoir l'utiliser et le distribuer via JavaSDK (jarsigner) et AndroidSDK (zipalign). Mais pour le mode debug, ne vous inquietez pas... un autre fichier apk deja signé est auto généré par le build.

TODO:

1. Implementer le son
2. Voir pourquoi les cinematiques ne marchent pas
3. Rendre la version plus stable et plus rapide.

Je dois aussi revoir l'interface pour les inventaires... je voudrais virer la barre en bas meme pour les versions desktop

Si vous testez... dites moi ce que vous en pensez...
Journalisée
lagw Hors ligne
Jr. Member
**
Messages: 83


Voir le profil
« Réponse #8 : 30 Septembre 2012, 08:34:26 »

Nouvelle version (0.3.1) permettant de generer des jeux Mac OS X est désormais dispo

Il suffit de lancer un build MAC, ca genere un fichier zip. Ensuite il faut copier le zip sur un mac et le dezipper depuis le mac, sinon ca marche pas.

Normalement tout est ok, sauf pour le changement de resolution.

Version minimum: 10.6
Journalisée
EvilTroopa Hors ligne
Administrateur
*****
Messages: 648


Voir le profil WWW
1010011010 the Number of the Beast

« Réponse #9 : 30 Septembre 2012, 13:50:43 »

Je n'avais pas encore pris le temps de tester, mais c'est vraiment très bon Smiley

Est-ce qu'il y a moyen de scripter des petites séquences ? Dans le genre :
Code:
HERO GOTO X,Y
HERO SAY "blablabla"
WAIT 1000
HERO GOTO X,Y
etc.
Je n'ai pas vu de fonction dans la doc pour le déplacement scripté de personnages, mais j'ai lu "pathfinding" quelque part Azn

Un truc que je changerais, c'est de ne pas fermer automatiquement la barre d'inventaire après avoir choisi un objet. Comme ça on peut combiner des objets sans avoir à re-cliquer sur la boite. Et éventuellement, la fermer si on sort le curseur de la barre.

Mais je le répète, très bon boulot Smiley
Journalisée

A mushroom a day, keeps the koopas away.
lagw Hors ligne
Jr. Member
**
Messages: 83


Voir le profil
« Réponse #10 : 30 Septembre 2012, 17:39:18 »

A chaque frame le prog execute tous les scripts necessaires avant de dessiner les elements a l'ecran. Ce qui signifie qu'il n'y a pas de fonction wait ou pause. Le code est executé immediatement. Par contre j'ai mis en place un systeme de message pour lancer une action apres un evenement. Par exemple apres avoir franchi une zone.

AGE utilise des cells et non des pixels en sachant qu'une cell est un carre de 16pixels. Chaque cell peut etre parametré depuis l'editeur de scenes: on peut donner un nom, en faire un trigger (on recoit un message si le perso passe dedans) et surtout on peut associer des objets pour des actions select ou use. On peut specifier aussi une anim. En gros il faut envoyer un message, attendre de le recevoir, puis executer du code et eventuellement lancer un autre message...

Pour le texte on ne peut pas l'ecrire directement dans les instructions pour plusieurs raisons: les differentes langues entre autre. Il faut passer par un asset DIALOG en utilisant la fonction talk (meme pour ne dire qu'une seule phrase). Ya un truc cool (menu file, generate dlgs) qui genere tous les dialogues dans un fichier html.

Pour le pathfinding, il suffit de definir les cases "walkables" depuis l'éditeur de scene (un objet peut avoir plusieurs sheets) et le perso se déplacera uniquement sur ces cases. Si le joueur clique à l'exterieur, je cherche la case la plus proche, puis je calcule l'itinéraire le plus court. Tout est géré par le prog (ca buggue encore) à condition d'avoir cadriller la scene.

Si les actions sont assez simples, on peut se contenter du mode editeur et des fonctions de base (success, take, dump...). Dès qu'on met en scene une séquence d'actions, il faut bidouiller un peu... comme je l'ai fait pour The Pieman.

Donc pour en venir à ton script... l'ecrire linéairement, ce n'est pas possible. Il ne faut pas oublier que le joueur peut à tout moment un interrompre une sequence. (la fonction lock permet de bloquer les controles). Voila la demarche à suivre...

1. Definir un nom depuis l'editeur de scene pour la case XY

2. Appeler la fonction post
post O_HERO "NOM_DU_MSG" "CELLNAME" "CRY"
Cette fonction demarre le deplacement du heros vers la case CELLNAME. Concretement: le heros demarre son chemin. Lorsqu'il arrive à destination, il s'arrete, puis il change d'anim (CRY, optionel) et à la fin de l'anim (par defaut), l'evenement POST est appelé.

3. Dans l'evenement POST, appeler talk D_BLABLA.

4. Dans le script D_BLABLA (la phrase), appeler delay 1000 qui envoie un message DELAY

5. Dans l'evenement DELAY, refaire un post O_HERO avec d'autres parametres.
Journalisée
lagw Hors ligne
Jr. Member
**
Messages: 83


Voir le profil
« Réponse #11 : 30 Septembre 2012, 19:44:19 »

Un truc que je changerais, c'est de ne pas fermer automatiquement la barre d'inventaire après avoir choisi un objet. Comme ça on peut combiner des objets sans avoir à re-cliquer sur la boite.

c'est fait
Journalisée
lagw Hors ligne
Jr. Member
**
Messages: 83


Voir le profil
« Réponse #12 : 03 Octobre 2012, 21:08:02 »

La nouvelle version (0.3.2) permettant de generer des jeux Xbox 360 est désormais dispo.

J'en ai profité pour corriger quelques bugs aussi.

Il y aura moins de mises à jour majeures dans les prochaines semaines, je vais me remettre à ecrire le scenario de mon jeu et constituer un dossier complet pour les graphistes. Ca va bien m'occuper. Si j'ai le temps j'essayerais de sortir les versions iOS/Linux.
Journalisée
lagw Hors ligne
Jr. Member
**
Messages: 83


Voir le profil
« Réponse #13 : 23 Mars 2013, 08:40:26 »

La nouvelle version 0.5 est a été refaite avec Unity4. J'ai rajouté les shaders.

Elle permettra d'exporter son jeu sur les plateformes suivantes:

Windows
Mac OSX
Linux
Android
iOS
Web (avec le plugin Unity)
Journalisée
lagw Hors ligne
Jr. Member
**
Messages: 83


Voir le profil
« Réponse #14 : 05 Avril 2013, 18:57:37 »

Pour la version Android... c'est fait
Journalisée
Pages: [1]   Haut de page
Imprimer

Aller à: