Compte-rendu de la réunion du club du jeudi 4 décembre 2003

Présentation

Cette réunion a eu lieu de 20h05 (happy hour ratée, quel malheur) à 23h30 environ, à la brasserie "La Tour" à Montparnasse. Etaient présents (ordre alphabétique) :





Auteur du compte-rendu : Olivier (wondersye).

Le compte-rendu de cette réunion est parcellaire, et fondé sur mes souvenirs et mes notes, également imparfaits. Pour toute remarque, correction, ajout, envoyez un mail ! En écrivant ce CR, quelques idées supplémentaires me sont venues que j'ai directement placées ici

Minutes de la réunion


Coincé entre un mordu de développement et un fondu de scénario, je réussis à tirer mon épingle du jeu en leur faisant croire à chacun que je partageais leur passion coupable.

Scénario

Arnaud pense lui aussi qu'il est temps d'ouvrir le travail sur les personnages principaux. Cela consisterait à faire une liste (non limitative, juste pour proposer des pistes) d'une dizaine de personnages que l'on pourrait développer. Ceux qui voudraient en choisiraient quelques uns, posteraient le résultat de leurs cogitations sur les forums jusqu'à atteindre un certain degré de précision qui permettrait d'en placer les descriptions sur le site.

Le bestiaire

[Consulter notre section monstres (elle est plus à jour)]

Nous eûmes quelques idées concernant les monstres (plus généralement, les PNJ potentiellement hostiles) qui pourraient figurer dans notre jeu. Inutile de dire que cette phase de la conception est une des plus rigolotes. On pourrait considérer que l'important serait moins de les réussir graphiquement que de les doter chacun de spécificités comportementales qui leur seraient propres. Ainsi, alors que dans la plupart des jeux un monstre est d'abord caractérisé par son apparence et son potentiel de combat, là on pourrait poser le principe que l'IA de la plupart de nos monstres (voire tous) soit particulière à chaque espèce. Deux facteurs permettraient de ne pas rendre les développements trop importants :

  1. on disposerait de nos propres primitives, qui seraient déjà de relativement haut niveau, afin de les utiliser comme briques élémentaires pour écrire les algorithmes comportementaux de chaque espèce. Ainsi, des opérations de base disponibles pour décrire les IA seraient par exemple "se rendre à telle destination", "poursuivre telle cible", "chercher tel objet" ou "combatter telle cible", etc. Cela rendrait l'écriture de comportements un peu évolués considérablement plus simple, sachant de plus que de telles primitives, dans tous les cas, nous seront nécessaires
  2. cette intelligence comportementale des créatures serait exprimée dans le langage de script embarqué que l'on aura choisi, ce qui facilitera énormément et son écriture, et sa mise au point


Il serait souhaitable de créer des légendes autour de chaque créature, de manière à renforcer l'aspect jeu de rôle et l'attachement que chacune pourrait susciter chez le joueur.

Des formes de factions pourraient être implémentées, comme dans DAOC (Dark Age Of Camelot), où un personnage, du fait de ses interactions passées avec les membres d'une espèce, hérite d'une sorte de réputation vis-à-vis d'elle, ce qui conditionne en retour le comportement des nouveaux individus qu'il serait amené à rencontrer : après avoir considéré les Changelins mineurs comme des punching-balls, le héros qui tombe sur un Changelin pas mineur passe de rudes moments.

Les PNJ/monstres auxquels nous avons pensé



Pour tous ces monstres, il existe une tâche identifiée : répertorier tous les graphismes de créatures disponibles en vue de l'établissement d'une correspondance entre un profil et un graphisme, modulo une adaptation dans certains cas dudit profil.

Le roi et les Dieux

L'idée que le roi croit sincèrement aux "vrais" dieux (ceux de la mythologie scandinave) mais affiche sa dévotion pour ceux de la Sainte Foi (ou Vraie Foi, comment l'a-t-on appelée ?), en vue de remporter l'adhésion de la caste des brutes sanguinaires chantant "Te Deum" semble intéressante, surtout si on fait en sorte que les mythes scandinaves restent centraux dans notre jeu et si la Vraie Foi n'est pas trop directement assimilable par exemple avec le catholicisme ou une autre religion "mainstream", pour éviter de froisser qui que ce soit.

Le ralliement des brutes enreligionnées serait conditionné par la réussite de la quête consistant à libérer des glaces (symbolisant les mythes nordiques) une fée convertie à la Sainte Foi qui se révèlerait passablement dérangée. Notre jeu pourrait alors être interprété comme brodant sur le thème du moment de la métamorphose historique des mythes païens en les religions aujourd'hui établies, ou bien comme explorant l'uchronie résultant de l'éventuel triomphe des premiers sur les secondes.

Technique

Sébastien nous a montré un livre particulièrement intéressant intitulé Programming Linux Games, qui a été l'occasion idéale pour ouvrir notre section bibliographie. A lire d'urgence !

Construire notre bibliothèque graphique

Initialisation

Le module vidéo générique pourrait avoir, entre autres, comme tâche d'initialiser SDL en permettant de confronter les caractéristiques graphiques réellement obtenues à celles demandées. A voir la liste de discussion SDL, ce n'est pas toujours évident, notamment pour savoir si l'accélération est réellement matérielle (cas difficile à obtenir).

Boucle principale

C'est la portion de code de notre jeu qui sera la plus souvent exécutée (d'où l'importance de l'optimiser) et qui sera, en ordonnançant la succession des cycles de mise à jour, le chef d'orchestre pour toutes les sous-tâches du jeu, au nombre desquelles figurent :

  1. récupération des événements :
    1. lecture des périphériques d'entrée (clavier, souris, joysticks, etc.)
    2. réception des événements réseau (dans le cas où il y en a !)
    3. prise en compte des événements générés en interne (ex : conditionnés par le temps, genre : à midi les cloches sonnent)
  2. simulation du monde : chacune des entités dotées d'un état voire d'un comportement (des monstres à la couleur du ciel et au joueur) voit son état mis à jour en fonction des événements qui l'affectent (i.e. auxquels, d'une manière ou d'une autre elle est abonnée), qui sont autant d'arguments fournis à son algorithme de comportement (IA) pour déterminer son état lors du prochain cycle de jeu
  3. rendu : le moteur prend le point de vue courant pour représenter le monde ainsi mis à jour

Cet ordre est plus ou moins celui suggéré par Programming Linux Games, qu'il faudra lire avec attention sur ce sujet critique.

Il y aurait beaucoup de choses à dire sur cette boucle (j'ai tout à apprendre sur le sujet, faute d'en avoir écrit une seule), mais on pourrait penser que son objectif est de mener à bien équitablement toutes les étapes du cycle dans un temps imparti, en respectant l'importance de chacune. Cela voudrait dire entre autres que le travail de rendu (au hasard) ne devrait jamais prendre trop de temps, de peur soit de retarder le prochain cycle (le jeu rame visiblement, devient saccadé et n'est plus réactif) soit de contraindre les autres à être amputées (ex : les monstres deviennent frappés de stupidité dès lors que le joueur se tourne vers une vue dégagée). De cet impératif (le bon arbitrage des ressources allouées à chaque étape du cycle), on pourrait déduire deux caractéristiques intéressantes à observer :



Tout cela permettrait de donner l'illusion du temps réel et une boucle bien architecturée devrait induire des développements plus faciles.

Enfin, un point sur la transparence a été fait par Sébastien, qui personnellement m'a appris beaucoup, et que j'ai donc résumé dans notre section documentation.

AOB

On pourrait éventuellement placer un miroir dans le jeu, de manière à ce que le joueur découvre l'apparence de l'avatar. Utile pour le test du gros bill (à la Duke Nuke'em) et pour le Doppel.

Penser à un monstre clin d'oeil à Nethack ?

Il faudra renforcer le nombre de monstres 100% originaux que l'on pourrait engendrer.

Des listes sont à créer : malédictions, limitations, altération de la conscience (alcool, drogue, etc.) et ses effets (fenêtre réduite, flous, effets de palette, hallucinations, voiles noirs, etc.)



Fin du compte-rendu de cette réunion en petit comité qui fut donc relativement dense !




N'hésitez pas à nous faire part de votre avis !

Pour toute remarque, envoyez-nous un mail!




Top

Dernière mise à jour : 7 Décembre 2003