3 points par GN⁺ 2024-04-17 | 1 commentaires | Partager sur WhatsApp

Publication du code source de Descent 3

Mise à jour (2024/04/16)

  • Merci pour l’intérêt et la participation au sein de la communauté Discord des développeurs de Descent. Une communauté déjà active existe, rejoignez-la via le lien ci-dessous.
  • D’importants commits sont attendus prochainement, notamment pour permettre à d’autres développeurs de travailler en parallèle ou pour fusionner du code écrit après l’archivage de ce dépôt.

Orientation du développement et décisions

  • La prise en charge de C++17 est prévue pour la suite.
  • Le projet utilise clang en mode LLVM pour le formatage du code ; merci d’exécuter clang-format avant de soumettre une PR.

Première publication

  • Il s’agit de la dernière version du code source de Descent 3, incluant le patch « 1.5 » écrit il y a quelques années par Jeff Slutter et Kevin Bentley. Il fonctionnait alors sous Windows, Linux et Mac.
  • Certaines bibliothèques propriétaires audio et vidéo d’Interplay (formats ACM et MVE) ont été retirées. Le code correspondant est toujours disponible, et nous recherchons des personnes prêtes à aider à créer un convertisseur afin que les anciennes cinématiques refonctionnent. Un travail sera nécessaire pour stubber ce code afin de permettre la compilation.
  • L’objectif initial est de faire en sorte que tout puisse de nouveau être compilé, et si possible d’ajouter aussi des actions CI/CD. Ensuite, un nettoyage du code sera nécessaire, notamment pour supprimer d’anciens commentaires issus du système de contrôle de version. L’essentiel du code a été écrit par une excellente équipe, mais il faut garder à l’esprit qu’à l’époque, nous étions bien plus jeunes et moins expérimentés.
  • Si vous souhaitez aider à la maintenance, merci d’envoyer un message. Sinon, les PR sont les bienvenues.
  • Voici la dernière mise à jour montrant le jeu tourner sur différentes architectures. Désolé de ne pas avoir pu publier le patch 1.5. Quelques problèmes logistiques s’y sont opposés.
  • Merci à Jeff Slutter, qui a réalisé l’essentiel du travail de modernisation de ce code des années 90. Hâte de voir ce que la communauté en fera !

L’avis de GN⁺

  • La publication du code source d’un jeu apprécié depuis plus de 20 ans devrait attirer l’attention de nombreux développeurs. Mais la modernisation d’un ancien code demandera beaucoup d’efforts.
  • La publication du code source a une valeur en soi, mais pour qu’il soit réellement applicable au jeu, il semble rester de nombreux obstacles, comme la résolution des problèmes de licence, la prise en charge des plateformes modernes et la mise en place d’un processus de développement.
  • Pour assurer le développement durable d’un projet open source, il semble nécessaire de commencer par présenter une roadmap claire, préparer des guidelines pour les contributeurs et établir une structure de gouvernance.
  • Côté moteurs de jeu open source, Godot et Cocos2d-x, entre autres, sont activement développés. Il peut être utile d’analyser leurs avantages et inconvénients et de réfléchir à une stratégie de différenciation.
  • On peut s’interroger sur la capacité d’un jeu d’il y a 20 ans à encore fonctionner aujourd’hui sans paraître daté. Une modernisation des éléments clés du jeu, comme les graphismes, le son et l’UI, semble nécessaire.

1 commentaires

 
GN⁺ 2024-04-17
Avis sur Hacker News
  • Présentation de cas où la série de jeux Descent a eu un impact majeur sur la vie d’une personne : mariage avec une épouse rencontrée sur un forum, fils nommés d’après les pseudonymes d’amis de Descent, participation aux mariages et aux funérailles de connaissances, etc.

  • Le système de contrôle de vol libre à 360 degrés de Descent serait à l’origine de l’option d’inversion de l’axe Y apparue plus tard dans les jeux FPS. Retour d’un développeur expliquant que Descent a profondément influencé son parcours : il a lu la FAQ de Descent à 12 ans, appris IRC, et est devenu aujourd’hui ingénieur et développeur de jeux.

  • Parmi les joueurs compétitifs, une technique appelée « trichording » était utilisée pour maximiser la vitesse : appuyer sur plusieurs touches en même temps afin de se déplacer simultanément sur trois axes. On ne sait pas clairement s’il s’agissait d’un choix de conception ou d’un bug.

  • Les anciens formats des bibliothèques audio/vidéo de Descent 3 (ACM, MVE) ont été retirés, mais une volonté de partager le code a été exprimée afin de développer des outils de conversion. Il semble que FFMPEG prenne en charge ces formats.

  • Pour un ingénieur, la série Descent a été une porte d’entrée vers l’univers d’Internet. À 10 ans, il jouait avec ses amis à D1 via des connexions téléphoniques, puis a découvert le matchmaking sur D2 via Kali/Kahn. Il a ensuite connu IRC et ICQ, et s’est passionné pour les mises à niveau de PC. Dans D3, figurer dans le top 100 mondial a été une expérience marquante.

  • Des questions ont aussi été posées sur le processus et le contexte de la publication du code source de Descent 3, ainsi que sur la possibilité de publier également le code source de Hardwar, un autre jeu d’Interplay.