• [^] # Re: Je râle mais....

    Posté par . En réponse à la dépêche Un remake de Total Annihilation GPL en 3D !. Évalué à 10.

    Peut-être le billet sur mon blog était-il un peu exagéré. En technologies non-portables, il n'y a pas tant de choses que ca. Ca ne va pas etre simple, mais ce n'est pas impossible comme s'ils avaient tout codé en Direct3d.

    - La 3D utilise OpenGL, avec des routines Win32 pour l'ouverture de fenêtre. En remplaçant ces dernières par du code OpenGlut, le moteur graphique ne devrait pas avoir besoin d'autres modifications.
    - Le son utilise DirectSound, qui sera remplacé par OpenAL.
    - Le réseau utilise du winsock, qui sera "remplacé" dans un premier temps par du code sockets BSD avec les quelques appels en plus nécéssaires à winsock entourés de #ifdefs. Il semblerait qu'une discussion sur un changement radical d'architecture réseau est en cours dans la communauté, donc en attendant d'y voir plus clair, le moins de boulot on fournira la dessus, mieux ca sera.
    - La gestion des entrées est faite avec du code Win32, qu'OpenGlut remplacera sans problème.
    - L'accès aux ressources de jeu se fait via une bibliothèque de lecture de fichiers HPI, un format spécifique à Total Annihilation qui a été décortiqué par les moddeurs. Un collègue (travaillant sur http://openrts.sf.net(...) ) nous a proposé d'utiliser sa réimplémentation portable du lecteur de fichiers HPI. Là aussi, sur le long terme, un basculement vers un autre format (zip et 7zip sont à l'étude) pourrait nous faciliter la tâche.

    Il y a sans doute d'autres parties à problème, je n'ai évoqué que les principales parties qu'on a actuellement isolé dans le boulot préliminaire (reussir, en excluant tous les morceaux pas portables à coup de #ifdef NO_SUBSYSTEM, à faire compiler plus ou moins le reste).

    Bref, tout cà pour dire que oui, il y a du travail, mais étant donné l'architecture du moteur, il y a de bonnes chances que ce qu'il faut modifier sera confiné dans quelques fichiers/classes, ou que du moins il n'y aura pas besoin de réecrire un tiers du moteur pour que ca marche. J'ai donc bon espoir qu'on pourra réintégrer nos modifs de "portabilisation" dans l'arbre de sources principal et ne pas scinder en deux une communauté émergente.