28 août 2005

Ogre Mac Community

Ce week end, j'ai fait du communautaire... J'ai lancé une partie spéciale Mac sur le wiki d'Ogre et j'ai réalisé 2 tutoriaux (XMLConverter et dotSceneOctree). C'est vrai que j'y ai passé pas mal de temps, alors autant que les autres après moi ne se prennent pas la tête autant... :)
J'espère que d'autres viendront enrichir cette section.

Sinon pour Nidhogg, j'ai terminé ce que je devais faire : gestion des effets pour les temps (pluie, neige, ...), ajout des lumières.

Voilà, c'est tout pour ce dimanche.

Next step, mardi chez Stardco :
  • Finition des arbres de Merlu (je veux, pardon, j'exige, une forêt !)
  • Essai du script d'animation pour TomCat
  • UV Mapping du village pour Be||erophon et Roboss (choix des textures !)
  • Install & config d'Ogre sous Linux pour Stardco ; idem pour les plugins que j'utilise déjà
  • Essai de ce que j'ai de Nidhogg sous Linux

26 août 2005

Bilan de l'équipe graphisme

Salut à tous, nous avons fait un bilan d'avancement cette semaine. Nous sommes désormais capable de vous informer de l'avancement de l'équipe vis-à-vis de version Nidhogg.

Dans un premier temps voici les choses faites de :

- Merlu : il finiole la modélisation de son pin, qu'il devrait avoir terminé pour aujourd'hui.

- Zain : il a terminé le logo noir des LdPA (voir blog précédent), et estime avoir terminé le logo du jeu à 60%.

- Bellé : son écurie est quasiment terminée, on peut espérer qu'elle sera exploitable avant la fin août.

- Roboss : Il maitrise la modélisation classique ainsi que l'uv-mapping pour les objets simples. Il prépare ectuellement un épée à une main.

- Madprof : Son nain en 3D est en avancement mais c'est assez flou pour le moment.

- TomCat : La modélisation, le texturage, et le squelette du perso sont terminés. L'animation est prête à commencer.


En bref, voici les choses qu'il restent à faire avant la sortie prochaine de Nidhogg :

- L'animation marcher/courir de mon perso.
- Un beau logo du jeu.
- Les arbres et éléments environnementaux.
- Des maisons communes.
- La map du village.

Nous pourrons de plus nous attaquer prochainement à l'élaboration :
- De la maison du chef.
- D'objets et flores variés avec les textures associées.

Halbor underground

Wow, ça faisait quelques temps que je n'avais pas bloggé !
La raison ? Une erreur de gestion de mémoire qui m'empêchait de charger correctement un dotScene... Cela a l'air d'être dû à TinyXml (sûrement à cause de gcc4 en plus, mais j'en sais pas plus...) placé dans le framework de CEGUI (que j'ai donc enlevé pour l'instant).

La map s'affiche donc bien (à vérifier que la tour renversée est bien une erreur d'ailleurs...) et assez rapidement. La perte de FPS n'est pas trop importante, du moins pas assez pour cela soit injouable. Tant mieux, parce qu'il reste des choses à mettre dessus ! :D

J'ai ensuite implémenté ma SmartCam (tiens ça fait longtemps qu'on en avait pas entendu parlé de celle-là :p) pour pouvoir me ballader sur la (très) petite map...

Je suis désormais sur le chargement de la carte en fonction du fichier dotMap. Tout se passe bien pour l'instant (chargement du dotScene, choix du temps suivant l'heure avec son skyDome associé et lumière ambiante), à part l'écran de chargement qui ne veut pas s'afficher :| J'avance plutôt tranquillement, tant que je ne rencontre pas de problème critique. D'ici à ce week-end, je pense que les temps seront totalement chargés (effets de particules, lumières, ...). Dès que TomCat aura terminé une animation de perso, je m'attaquerais au chargement des Personnages Non Joueurs (PNJ) animés.

Sinon, Zain m'a fait une version spéciale du logo de Légendes du Premier Age avec un fond noir (en gardant les halos gris). Je la trouve vraiment très très bien. Et je ne me lasse pas de regarder encore et encore le fondu pour l'écran d'intro...

12 août 2005

Chargement d'un .scene

J'ai fini de parser le .map, il ne reste donc plus qu'à créer la scene...

Blender exporte un .scene contenant les entités, les lumières et les caméras. Si nous voulons créer un temps *dynamique*, les lumières ne doivent pas être en fonction de la scène car suivant le temps, il faudra en rajouter (ou en enlever). A la rigueur, on peut garder dans le .scene les lumières qui resteront quelque soit le temps... En revanche pour la caméra, il ne faut pas l'inclure car on utilisera la (les) notre(s).

Le .scene n'est qu'un format XML pseudo-normalisé par des mecs utilisant Ogre. Le parser ne poserait pas trop de problèmes a priori. Le problème, c'est que je me suis dit que l'on pouvait en profiter pour faire quelque chose de plus intéressant avec : le découpage en octree. Je ne saurais vous l'expliquer clairement, mais en gros ça découpe les meshs en plus petits pour permettre un meilleur affichage suivant la distance.

Il existe un addon pour Ogre (dotSceneOctree) qui fait cela. Un tutoriel explique bien comment faire pour le compiler sous Windows ou Linux, mais pas sous Mac évidemment... J'ai donc passé une bonne journée à essayer de compiler le bundle (et ça a l'air d'être bon...) pour finalement ne pas arriver à le faire marcher le soir... :'( Le support étant mince pour l'addon, je ne sais plus quoi faire... Je vais tenter un post sur le forum fr et le forum officiel au cas où...

Sinon il reste la possibilité de le parser nous même (pfffiiiuuuu la flemme !) puis l'afficher ensuite. Seulement j'aime bien l'octree parceque ça optimise la map et on peut y intégrer directement des infos de collision, ce qui n'est pas négligeable...

Enfin là je crois que j'ai besoin d'un bon week end pour me rafraichir les idées ! :o

09 août 2005

Halbor !

Ce sera le nom de la première map d'Eaquenta !
En langage Humain de l'époque, cela signifie (à peu près) : Pierre de Garde. Libre à moi ensuite de justifier ce nom dans les quêtes avec la proximité d'un village Druadan (dans la forêt), la localisation du village par rapport à l'Ennemi, ...
En parlant de localisation, ce village sera placé en lisière de la forêt de Brethil (côté Ouest) au bord du Teiglin (qui devra mesurer une trentaine de mètres de large...). On peut donc imaginer que ce village est juste un point de surveillance des troupes obscures et que peu de villageois y habitent donc... ce qui nous arrange ! :D

Merci au "Tolkiendili" pour les infos ;) http://tolkiendil.com

Niveau programmation, le parsage est presque terminé, il ne me reste plus que la gestion des lumières pour les différents temps. Le format .map a légèrement évolué pour être plus complet et plus souple. Après avoir réfléchi aux différentes manières d'instancier et charger les objets, caméras et autres, je pense que je vais retenir la solution mixte :
  • Instancier toutes les choses instanciables sans SceneManager (lumières). Il suffira ensuite d'ajouter les lumières crées au SceneManager.
  • Précréer les instances de Caméra (nom et position), d'entités (mesh, position et animations) et d'effets (particules). Tout cela sera ensuite chargé avec le SceneManager par défaut.
Une autre solution aurait été de tout charger dès le départ, ce qui ne me plaisait pas (juste pour l'organisation et la clarté du code).
L'autre solution aurait été de tout précréer (donc aussi les lumières), mais ça fait encore du boulot en plus pendant le chargement... :p
La solution idéale aurait été de tout instancier au départ, puis de charger simplement dans le SceneManager ensuite en temps voulu, mais Ogre ne le gère pas : la plupart des choses doivent être fabriquées avec le Scene Manager...

05 août 2005

Release mode...

hum non, je n'ai pas fait la release de Nidhogg cette nuit... (les graphistes ne me donnent pas assez de contenu à afficher ! hum... désolé, j'ai pas pu m'en empêcher :D).

J'ai essayé de builder en mode release (donc comme il faudra faire pour Nidhogg et les futures versions d'Eaquenta) un projet d'une personne voulant tester son projet Ogre sous Mac... Après avoir modifié le code pour le rendre cross-platform, est venu ensuite l'étape d'ajout des frameworks et leur linkage statique (de telle façon à ce qu'ils soient livrés avec le bundle au cas où l'utilisateur n'a pas la librairie...). Avec le SDK X11 ça marche sans problème après avoir réglé le problème du framework IL... Pour un utilisateur final sans SDK X11, faire une appli d'install pour l'installer (à voir pour Nidhogg donc).

Un grand merci à Loïc pour leS bêtaS testS qu'il a subi, ses conseils et enseignements avisés, ainsi que sa patience... ;)