Le Grand Créateur

Billets concernant la reproduction du jeu de plateau Gaïa de TIKI Éditions

Le Grand Créateur (7)

Durant ce week-end, j'ai travaillé sur mon projet.

Pour les faits les plus marquants, j'ai changé la totalité des images par des scans des originaux.
Je sais que normalement, je dois avoir l'accord mais comme mon objectif est de présenter mon projet à un responsable de TIKI Éditions, ils devraient ne pas m'en tenir rigueur.
Et puis, je n'ai jamais diffusé ou prété une version aboutie de mon projet.

J'ai aussi ajouté un zoom sur les cités posées en jeu lorsqu'on clique sur celles-ci.
L'écran présente les éléments suivants et dans l'ordre d'apparition :

  • la liste des peuples occupant la cité (représentés par le pion de la couleur du joueur)
  • le type de terrain sur lequel on peut/doit poser la cité
  • la liste des 4 besoins de la cité (petit détail : une coche verte sera ajoutée si le besoin est satisfait => à mettre en place)

Une représentation en grand format de la ville est également affichée. Mais une image vaut plus que des mots :

Zoomedcityscreen example

Mon prochain objectif est de finaliser les 2 menus :

  • le menu principal qui comportera les 4 items suivants :
    • Start : pour lancer le jeu
    • Tutorial : pour lancer le tutoriel (à faire)
    • Options : pour changer les tuiles et/ou le fond d'écran (à faire)
    • Exit : pour quitter le jeu
  • le menu de sélection qui permettra de choisir :
    • le nombre d'adversaires (de 1 à 4 inclus)
    • la couleur de son pion (parmi 5)

 

Après les menus, je pense que je vais m'attaquer aux options. J'ai dans l'idée de permettre le changement du thème. Le joueur pourra alors choisir un thème "Galactic 2D" qui utilisera des planètes et des vaisseaux spatiaux.
Ou encore, un peu plus farfelu : un thème en 3D ! Chaque tuile serait alors une planète animée en 3D. Et si on "colonise" une planète, on voit un vaisseau en orbite de la planète. Bon, pour l'instant, c'est un peu présemptueux. Faisons déjà la version 2D, on verra pour la 3D plus tard...

Et puis, j'ai aussi le tutoriel à faire ! Et ça, ça va demander un temps considérable pour le concevoir !
Je pense que je vais faire un billet spécial juste pour indiquer la manière dont j'organiserais les choses.

Je posterai une nouvelle vidéo dès que j'aurais fini les menus (hors tutoriel et options).

Le Grand Créateur (6)

Hier, j'avais dans l'idée de rajouter un peu d'animation pour l'IA et une petite vidéo sur le tweening du site Gamecodeur m'a donné de l'inspiration.
J'ai réfléchi à ce dont j'avais plus ou moins besoin : la carte à jouer, sa position courante (avant l'action) et l'endroit où "poser" la carte.
Pour cela, j'ai rajouter une nouvelle classe. Comme j'avait déjà les actions qui étaient réalisées, il ne m'a pas fallu bien longtemps pour changer le type de retour.

Ce qui m'a fait un peu plus réfléchir c'était comment faire pour afficher l'animation.
J'ai utilisé l'exemple fourni dans l'atelier Tweening de Gamecodeur comme modèle et j'ai tenté de le reproduire, avec succès, sur un nouveau projet Monogame.

Ensuite, j'ai rajouter le compteur de temps mais j'avais un petit défaut : le programme bouclait sur l'IA (^_^)

Un petit "Else" plus tard, tout était rentré dans l'ordre... Enfin, presque... Mes animations se jouaient à l'envers ou encore n'étaient pas affichée. Bref, un gros cafouillage jusqu'à ce que je me rendes compte qu'il fallait que je transmette la distance et non la position finale... Bref, ce petit détail réglé, mes animations se faisaient comme il faut !

Quelques petits défauts étaient toujours existants : la carte piochée par l'IA était visible durant l'animation (pour la carte de la pioche) et restait affichée à sa position de départ (toujours durant l'animation).

Je me suis tout d'abord concentré sur la carte de pioche. L'autre bug me semblait d'une priorité moindre : on savait ce que l'IA piochait et l'animation nous faisait "oublier" ce bug.

Voici le résultat final (démo de l'animation) :

 

Le Grand Créateur (5)

Nous voici presque mi-juillet et je n'ai pas fait beaucoup de progrès durant ces 2 derniers mois. Disons le clairement, j'ai mis le projet en stand-by.

Cependant, au cours du bénévolat pour JamNation que j'ai fait durant le Comiccon de ce week-end à Montréal, j'ai plutôt pas mal progressé.
En même temps, quand tu aides à l'organisation d'une GameJam, ça te donne une plus grande motivation quand tu vois d'autres personnes bosser à fond sur leur jeu (^_^)

Bref, tout ça pour dire que j'ai finalisé mon IA. Bon, finalisé n'est pas tout à fait vrai. Il reste encore des bugs à corriger et quelques actions à faire.
Mais elle est fonctionnelle (oui, au féminin, ici pour les explications).

J'ai fait testé ma femme qui m'a simplement fait cette remarque : "c'est laid, les graphismes sont moches ! Ca ne donne pas envie de jouer."
Oui, je le sais...Je ne suis pas graphiste et/ou dessinateur, juste un simple codeur...

Un point qu'elle a soulevé : un petit zoom lorsque l'on clique sur une carte Cité jouée pour l'afficher à l'écran (plus facile pour voir ses objectifs).
Ca, je vais me faire un plaisir de le mettre en place.

Durant le Comiccon, j'ai aussi discuté avec deux professionnels de studios de jeux vidéo au sujet d'un tutoriel et la façon de le faire :

  • Soit tu fais une vidéo de chaque élément-clé du jeu en y insérant du texte explicatif
    => rapide à faire et pas trop de code à rajouter mais pas très intéractif avec le joueur
  • Soit tu fais un vrai tutoriel demandant au joueur de réaliser les actions pour qu'il les comprenne
    => beaucoup de code à rajouter et de nombreux tests mais tellement plus cool pour le joueur

Pour l'instant, je vais me concentrer sur les graphismes.
Je vais voir pour utiliser un fichier unique contenant toutes les images du jeu. Ca va me demander du travail mais ce sera plus professionnel.

Ensuite, je ferais tester à plusieurs personnes pour avoir leur point de vue.

Dès que j'aurais fini les améliorations qu'on m'indiquera, j'irai voir Tiki Editions pour essayer d'obtenir un rendez-vous avec un des responsables.

Le Grand Créateur (4)

Nous voici au début du mois de mai.

Il s'est passé plein de choses du point de vue personnel qui m'ont fait faire une petite pause dans mon projet.

Pour l'instant, j'ai réussi à coder une toute petite partie de ma nouvelle IA.
Oui, pour moi, une IA restera toujours au féminin. Ce n'est pas l'idée réductrice d'un esprit macho, bien au contraire !
Si je conçois une véritable IA, elle sera à l'image de ma femme : douce mais ferme.

Bref, revenons sur mon projet (^_^)

Je n'ai pas encore fait grand chose mais c'est beaucoup plus long que je ne le pensais.
Après tout, je n'ai pas beaucoup d'expérience dans ce domaine (^_^)

J'essaye de construire au maximum la structure de mon IA sans détruire tout ce que j'ai fait auparavant.

Mais il y a beaucoup de choses à revoir. Ce n'est pas mauvais mais simplement pas bien adapté, c'est aussi simple que ça.

Voyons ce que j'ai :

  • la liste de toutes les cités posées dont la satisfaction est comprise entre 1 et 3 inclus mais n'appartenant pas déjà à l'IA
  • la liste des cartes Nourriture qui peuvent être jouées (sans aucun autre contrôle)

Avec ça, je récupère les différentes positions où jouer la carte et j'en choisis une parmi elles (rarement plus de 2 pour les cartes Nourriture).

 

Dans mon scéma, cela ne représente que 4 points parmi environ 40 points.
Mais heureusement pour moi, beaucoup de contrôles sont similaires, donc je vais pouvoir les factoriser et sauver du temps.

 

Autre point : le design.

Pour l'instant, je n'ai aucun menu et une seule musique d'ambiance.
De plus, les graphismes utilisés ne sont pas très beau...Disons le franchement, ils sont moches comme tout.
Mais bon, je suis programmeur et non pas graphiste (^_^) J'ai donc fait des dessins par moi-même pour avoir un visuel.
Cela me permet de simplifier les contrôles et voir si j'ai bien le bon résultat.

Passons tous ces petits détails...

J'ai dans l'idée d'utiliser des objets 3D pour représenter les différents types d'environnement.
Pour l'instant, cela n'est qu'une simple idée mais je suis certain que cela est réalisable.
Bien entendu, cela demandera quelques aménagements mais je suis confiant.

Si j'arrive à faire mon IA, afficher de simples objets 3d ne devrait pas être trop compliqué (^_^)

Enfin, finissons la déjà et nous pourrons ensuite passer à cette étape.

Je pensais faire une vidéo à la fin de l'IA mais je crois que je vais en faire plusieurs pour montrer les progrés.

 

A bientôt pour de nouvelles aventures...

Le Grand Créateur (3)

Après avoir modélisé ma première IA (même si elle est pas vraiment intelligente ^^), j'ai fait un petit break, boulot oblige.

J'ai repris le développement de ma nouvelle IA. Cette fois-ci, elle sera bien plus "intelligente" que la première.

Pour cela, j'ai demandé l'aide de ma femme pour qu'elle me décrive sa manière de jouer.
Nous avons donc fait une partie où elle incarnait l'ensemble des joueurs de type IA contre moi.

Pour chaque action, elle me décrivait ce qu'elle repérait (type de terrain, objectif, etc.) et ce qu'elle éliminait et pour quelle(s) raison(s).
A partir de son raisonnement, j'ai pu dessiner la logique de mon IA.

Nous avons ensuite refait une partie mais c'était moi les IA et elle le joueur. Je jouais en appliquant quasiment à la lettre les mécaniques que j'avais noté.
Cela m'a permis de relever une lacune dans le raisonnement et quelques oublis.

Je referais une nouvelle partie pour valider les dernières modifications mais, dans l'ensemble, je pense avoir terminé cette étape.

Et si vous vous demandez comment est le résultat, il faudra attendre la prochaine vidéo (^_^)

Le Grand Créateur (2)

J'ai finalisé ma toute première intelligence artificielle !

Au début, je pensais que c'était un truc super-méga-giga compliqué mais en fait pas vraiment.
Pour résumé (et ce n'est que mon propre point de vue), il s'agit d'une sélection dans les possibilités offertes à l'ordinateur.

Ben oui, ton ordinateur ne pourra jamais te faire du café si tu ne lui as pas dit que tu lui avait ajouté l'option "machine à café".

 

Enfin, il a fallu déjà définir la manière dont l'IA allait jouer. Et pour cela, j'ai fait super simple :

1) On sélectionne une carte de manière aléatoire
2) On joue la carte de manière aléatoire
3) Si jouée, on pioche une carte de même type de la pile face cachée
4) Si pas jouée, on essaye de jouer une autre carte de sa main
5) Si toutes les cartes ont été essayée, on pioche une carte Nature de la pile face cachée
6) Si plus de cartes Nature, on pioche une carte Life de la pile face cachée

C'est pas vraiment très intelligent mais ça fonctionne et, avec un peu d'aide, ça lui arrive de gagner (^_^)

Dans la vidéo ci-dessous, j'ai volontairement forcé l'affichage des cartes de l'IA (plus facile pour lui permettre de gagner ^^)

Le Grand Créateur

Je me suis fixé comme objectif de créer un jeu vidéo à partir d'un jeu de plateau.

J'ai pris contact avec la maison d'édition pour savoir s'il était possible de réaliser ce projet.
Tant que je ne diffuse pas mon logiciel, cela ne pose aucun problème.

J'avais fait une première version où les cartes et les tuiles étaient positionnées différemment mais c'était pas "user-friendly".

Avec l'aide de ma femme (merci pour ses précieux conseils), j'ai refait la présentation pour obtenir le résultat visible dans les vidéos ci-dessous :

 

 

Toutes les images actuellement utilisées sont libre de droit.

 

Pour l'instant, il n'y a qu'un seul joueur. Je souhaitais en premier lieu réaliser toutes les actions possibles du joueur.
Maintenant que c'est chose faite (j'en suis très fier !), je vais me lancer dans un sacré projet : la réalisation de l'IA !

Mais toutes les bases sont faites :

  • l'ajout de tuile
  • la pioche des cartes
  • la gestion des objectifs
  • la pose de nourriture (et la gestion de la réserve, même si ce n'est pas visible ^^)
  • la pose d'une cité
  • le calcul de la satisfaction des cités posées

J'ai également préparé la gestion du nombre d'actions possibles (désactivé dans les vidéos).

 

Je me demande si je vais réaliser les animations des déplacements des cartes pour l'IA...
Ce serait vraiment mieux mais je ne vois pas, pour l'instant, comment réaliser cela.