Le début | |||||
J'ai été contacté par Martin
Wolf, créateur de Tales of Tamar, en mai 2003.
Je venais juste d'ecrire ma Woof3D.library qui permettait sur PC, Amiga et Linux de manipuler de petits objets 3D (mais je vous déconseille de downloader ce programme obsoléte et buggé). La carte 3D de Tamar était en projet dans l'équipe de Martin et je tombais donc à pic avec mon programme lui aussi multi-plateforme Néanmoins Tot3D n'est pas basé sur
les sources de Woof3D (heureusement) mais sur une réécriture
compléte d'un moteur 3D.
|
|||||
La galére des exports | |||||
Dès le début nous avons été confonté au problème d'importation des objets Une grande part du développement a consisté à écrire des loaders permettant d'importer des fichiers dans le moteur 3D.
Corollaire il a aussi fallu créer un format
de fichier pour sauvegarder nos objets car aussi incroyable que cela paraisse
et malgré le nombre incroyable de formats de fichiers 3D existant
il n'existait aucun format sauvegardant à la fois dans un seul fichier
les objets, leur hiérarchie, leurs animations, leurs coordonnées
UV et leurs images textures.
|
|||||
Le format .TOT | |||||
|
Dès le début je pensais créer
un format binaire pour nos objets
J'avais espéré qu'il soit conforme au standard IFF mais ce but n'a été atteint que récemment Néanmoins dès le début il reprenait le concept des chunks
N'importe quel programmeur peut comprendre comment marche la 3D Map (=comme un grand échiquier) et espèrer en faire une rapidement. Mais ne triomphez pas car moi aussi dès lors que j'ai réussi à afficher (charger les fichiers de) mes premiers hexagones je faisais ma première carte. Mais périodiquement reviens le même problème: l'envahissement par les données. Avec la 3D Map il ne s'agit pas de faire un moteur affichant impeccablement un seul objet même très beau et constitué de milliers de points mais bien plutôt d'afficher n'importe quel point d'un monde contenant des milliers d'hexagones et de personnages. Au fur et à mesure que l'on ajoutait les nouveaux objets conçus par Arkadius Zielinski le moteur 3D était plus envahi par les données. Il fallait donc périodiquement revoir les fondements du moteur 3D pour lui faire utiliser moins de mémoire et tracer moins de facettes. Ce travail ne se voyait pas (aucune amélioration esthétique visible) mais était périodiquement nécessaire. Juste quelques uns des hexagones créés par Arkadius Et ça fait quoi ?
|
||||
Le moteur a été conçu comme
un programme indépendant qui charge des cartes sous forme de fichiers
*.map et MapPrefs.tot de l'ancien Tales of Tamar et les affiche sous forme
d'une vue 3D pour ce faire il dispose de ses 426 fichiers .TOT (au moins
426 objets 3D)
Les déplacements peuvent être relatif à la position écran ou absolu selon la carte Comme dans la carte 2D une "MiniMap" sous forme de compas donne une vue plus générale de la carte. Le ciel tourne avec la carte, la nuit peut tomber avec un lever de lune et un coucher de soleil. Les quatre saisons sont inpléméntées et donc les hexagones existent en 4 modéles et aussi dans une version moins détaillée selon le zoom
A l'automne il pleut plus ou moins, en hiver c'est
de la neige. Pour ces deux saisons le vent souffle plus ou moins sur les
arbres et les courbe plus ou moins fort.
|
|||||
Les portages | |||||
|
WINDOWS
Les premiers développements ont été faits en utilisant Woof3D pour le rendu mais très rapidement je suis passé à OpenGL + GLUT. LoadTOT/saveTOT utilise LibJPEG et les autres loader DEVIL Tout le développement est fait sous Windows avec LCC-Win32 + le débuggeur de VisualC LINUX
AMIGA 68040
Comme les fonctions de tracé sont
rarement modifiées normalement la recompilation des nouvelles versions
sur AmigaOS se passe sans problèmes.
WINUAE
MORPHOS
AMIGAONE
Alain Thellier - Paris - France - Juin 2006 |