Je crois que tu confonds format de la table pour extraire convenablement les champs, et le format du champ pour interpréter convenablement les données.
Par exemple il me semble que wordpress met du json dans des cellules mysql (ou un autre format sérialisé). Quelqu’un a montré ici un exemple de CSV embarquant du CSV dans des champs. Le format des numéros de téléphones, des données géographiques, les unités et précision de tes chiffresnombres, c’est un format de champ.
Tu peux très bien imaginer stocker un document odt dans une cellule, tu peux spécifier que ton format est CSV ou Json ou ASCII delimited machin, et spécifier que pour les documents odt ils doivent être encodés en base64 sans saut de ligne.
Et pour l’ordre des colonne et autre choses comme ça, c’est une information supplémentaire qui n’est pas vraiment propre au format de la table.
En gros tu dois documenter :
Le format du fichier (ce que j’ai appelé table), en gros, comment séparer et adresser les champs,
Le format des données dans les champs, ce qui peut être spécifique à chaque type de donnée,
Certains aspects comme l’ordre ou des choses comme ça.
Faut pas tout mélanger !!! Au final, tu auras une description de format qui fera appel à plusieurs standards. Mais, ce format final, ce ne sera pas CSV, JSON ou ASCII delimited machin.
De la même manière que l’ODT est un format qui fait appel à plusieurs formats : PKZIP, XML et d’autres pour chaque besoin. On peut décider d’un format d’échange qui utilise XML pour distinguer les champs quel que soit le contenu, et décider que le champ date sera sous la forme normalisée YYYY-mm-ddTHH:MM:SS (il faudra donc deux parseurs, mais ce n’est pas un problème). Tu peux pas demander à XML de prendre en charge n’importe quoi. Ce ne serait pas XML ton format, XML serait alors un des formats utilisés dans ton format final.
Pour revenir au journal, quand par exemple Excel essaie d’interpéter des valeurs dans une table alors que l’utilisateur avait simplement l’intention d’afficher proprement des lignes et des colonnes, Excel il prend le risque de détruire des données. Parce que le format de la structure et le format du champ sont deux choses différentes.
ce commentaire est sous licence cc by 4 et précédentes
C'est un peu comme gérer les noms de personnes : la plupart des gens pensent que un champs nom et un champs prénom et c'est plié.
Ah oui, ça aussi… Tu connais Marcus Tullius ? Il est plus connu sous le nom de… « Cicéron ».
En fait, « Cicéron » est un surnom. Les romains avaient en gros un prénom, un nom de famille, et un surnom, le surnom pouvant être hérité, c’est un surnom de famille… « César » et « Auguste » font partie de ces surnoms célèbres, que l’on peut associer pour plus de swag : César Auguste, ça en jette !!!
Ah, et il y a aussi les cultures qui forment le nom de famille par le prénom du père. En gros, si tu as Martin qui a un fils qui s’appelle Jean qui a un fils qui s’appelle Michel, Jean s’appelle Jean Martinfils, et Michel s’appelle Michel Jeanfils (les personnes d’origine nordique avec des patronymes françisés en machin-son, c’est ça). Quelqu’un de cette culture pourrait typiquement penser que demander le prénom de la personne et le prénom de son père serait suffisant, sans demander de nom de famille du tout puisque ça n’existe pas, non ?
Ah au fait, pour revenir au surnom, Cicéron c’est pour « pois chiche ». Oui, le grand Cicéron était surnommé « pois chiche », je crois que c’était hérité en fait.
Bref, quand on appelle le roi « Louis le gros », son surnom fait véritablement partie de son identité…
Et quand on écrit en 2020 : Thomas “illwieckz” Debesse, on n’est pas très original en fait…
ce commentaire est sous licence cc by 4 et précédentes
Si ta conf peut être générée/modifiée par une machine, ca va te créer des diffs très durs a lire.
Exactement, par exemple quand j’ai vu certains répondre que conserver l’ordre du dictionnaire est inutile “par principe” parce que forcément, par principe il n’y aurait aucun besoin pour cela… J’ai immédiatement pensé que ces personnes ne savaient pas vraiment ce que c’était de stocker des fichiers dans un dépôt (git ou autre chose).
Il est très important de pouvoir conserver l’ordre des données, ou de déterminer cet ordre, même si cet ordre n’a aucune sémantique pour les données elle-même. C’est important parce qu’il devient alors très aisé de versionner. Au delà de fichier de paramétrages dans git, va versionner un csv de millier de lignes si elles sont mélangées… alors que si l’ordre est conservé, un simple outil générique comme diff te sortira les différences en un temps record. Idem avec json, xml et je sais pas quoi.
La possibilité de conserver l’ordre est importante. J’ai remarqué que j’utilisais énormément OrderedDict dans Python, et quand il s’agit de traiter des données extérieures (pas des dictionnaires intégrés au code), j’ai remarqué que j’utilise OrderedDict de manière écrasante, par nécessité.
C’est d’ailleurs pourquoi par exemple quand je traite du TOML en python, j’utilise pytoml au lieu de python-toml. Je ne sais pas où ça en est maintenant, mais quand j’ai commencé à travailler sur Urcheon (un outil pour construire des dépôts de données, en gros un CMake mais pour des images, du son et des modèles 3D), seul pytoml permettait de spécifier le type de dictionnaire et donc de sortir un fichier de configuration qui conservait l’ordre de l’entrée, ou encore… très important dans ce cas, de traiter les opérations dans l’ordre de l’entrée… Je lis maintenant que pytoml est déprécié et recommand python-toml, il faudra que je réévalue python-toml et voir s’ils ont enfin implémenté la possibilité de forcer le constructeur de dictionnaire…
ce commentaire est sous licence cc by 4 et précédentes
Pour Arch, il y a effectivement un paquet AUR qui est maintenu par Viech, un des autres membres du triumvirat à la tête du projet Unvanquished.
Pour Debian, le dépôt fournit un dossier debian/ que j’ai corrigé cette année. Donc techniquement, la connaissance pour empaqueter chez Arch et Debian existe. Mais c’est tout.
Je ne pense pas que le projet va dépenser de l’énergie à empaqueter pour les distributions par principe, c’est un métier à part entière. Si quelqu’un du projet (comme Arch) c’est son initiative. Dit autrement, si ces paquets sont bienvenus, nous sommes alors à la recherche de contributeurs dans ce domaine.
Le projet fournit un programme (appelé actuellement « updater » par manque d’imagination) qui est pensé comme le point d’entrée du jeu. Il agit comme un splash screen évolué qui peut annoncer au joueur la présence d’un nouvel article sur le blog du jeu, la présence de mise à jour, et opérer l’installation de la mise à jour elle-même.
Ce qui serait vraiment bienvenu, c’est une alternative qui ait la même ambition d’universalité que ça. Quelque chose comme Snap ou Flatpak (avis personnel pour des raisons qui sont sans rapport avec Unvanquished et que je peux développer, ma préférence va à Flatpak).
Le besoin est réel. On vient tout juste ces dernières semaines de découvrir que notre version actuelle, sortie en 2018, ne tourne plus sur les distributions les plus « fraîches », que ce soit les « rolling relase » comme Arch, les préversions comme Debian testing ou les « cutting edges » comme Fedora 33, ça ne marche plus et c’est vraiment tout récent. On ne sait pas quelle est la cause, mais le binaire segfault quasi immédiatement au démarrage, sans autre forme de procès. Avec les mises à jour progressives des distributions, ce binaire ne tournera simplement nulle-part à moyen terme. Pour pallier à ce genre de problème qui survient sans prévenir, un paquet Mageia ou OpenSuse ou Debian n’est d’un intérêt que… très limité. Là concrètement si on avait déjà un Flatpak de prêt, ça satisferait l’écrasante majorité de ceux qui rencontrent le problème.
Donc voilà, vous savez faire un Flatpak ? Vous voulez faire entrer votre nom dans l’histoire d’Unvanquished ? Viendez !
Par ailleurs, concernant l’inclusion dans les distributions, la liberté c’est une chose mais ça ne fait pas tout. Un projet comme Unvanquished c’est compliqué à empaqueter selon les critères de Debian. Actuellement, à cause de la machine NativeClient, nous distribuons un SDK NaCl précompilé pour Linux, macOS et Windows. Celui-ci est téléchargé par CMake lors de la compilation du jeu. Ça ne va pas faire plaisir à Debian. =)
Compiler quelque chose comme NaCl c’est énorme, c’est bien plus complexe que compiler le moteur Dæmon ou le jeu Unvanquished : il faut compiler LLVM etc.
Ça changera peut-être avec Wasm. Le SDK de Wasm n’est probablement pas moins complexe à construire que celui de NaCl, mais on peut s’attendre à ce que les distributions le fournisse à moyen terme.
Xonotic est entièrement libre, GPLv2+ des pieds à la tête, moteur, jeu et données artistiques. C’est pas pour autant empaqueté dans Debian, presque dix ans plus tard.
Ce ticket Xonotic chez Debian est parti dans tous les sens, par exemple certains ont commencé à parler de recompiler les maps. Y a un moment ça va trop loin. Oui les sources des maps sont fournies, oui les sources du compilateur de map sont fournies (et c’est pareil pour Unvanquished, contrairement à Tremulous qui ne fournissait pas les sources de nombre de ses maps), mais « compiler une map », c’est entre autre faire tourner un traceur de rayon pendant des heures, et en 2011, le faire pour l’intégralité des cartes de Xonotic était probablement une affaire de plusieurs jours…
De plus, il est vraiment important que les données des joueur soient strictement identiques au bit près à celles du serveur, et c’est pas seulement pour des raisons de prévention de la triche, mais c’est aussi le moyen pour le serveur de s’assurer que le joueur est équipé correctement pour pouvoir jouer sur le serveur, et c’est aussi le moyen de sélectionner les bons fichiers s’il y a un doute. Obtenir une reproductibilité sur les données, c’est un projet plus grand que le projet Unvanquished, ça demande éventuellement d’auditer et corriger tous les outils mis en œuvre, jusqu’au convertisseur de format d’image et je sais pas quoi, dès lors qu’il y a une transformation. Perso j’aimerai que ce soit possible, mais l’objectif réaliste que je poursuis c’est que déjà, n’importe qui puisse construire le jeu intégralement, code et données. Et ça c’est déjà possible. En gros ça signifie que n’importe qui peut produire la prochaine version d’Unvanquished sur son ordinateur. Ce ne sera pas égal bit à bit à ce qu’obtiendrait son voisin si son voisin le ferait, mais l’expérience serait exactement la même et complète.
Bref, on est loin de satisfaire à toutes les ambitions idéologiques. Mais techniquement n’importe qui peut produire le jeu intégralement sur sa propre machine, et techniquement n’importe qui peut déjà empaqueter Unvanquished en se contentant de reprendre les fichiers DPK tels quels.
Et puis si on regarde bien le ticket Xonotic dans Debian, le plus gros problèmes n’est pas tant ceux qui partent dans tous les sens et dont il faudrait calmer les ardeurs, mais tout simplement l’absence de contributeur, l’absence de celui qui fait le boulot.
Les fichiers DPK sont les archives qui contiennent les données du jeu. Un des problèmes difficiles à résoudre est que l’un d’entre eux embarque le code du jeu lui-même, et pas que des données.
Donc tout ça dépend du niveau de concession acceptable par une distribution. De plus, autant une distribution comme Debian est exactement ce qu’il faut pour installer un système Linux pour un serveur ou un bureau, autant ce n’est pas forcément son rôle de distribuer Unvanquished en particulier. Si Debian le fait tant mieux, si Debian ne le fait pas, Debian n’est pas en faute.
Un Flatpak pour commencer serait vraiment super.
ce commentaire est sous licence cc by 4 et précédentes
Pour UnrealArena, c’est un projet ex nihilo, il n’y a pas de portage depuis un autre moteur. C’est le moteur qui a été choisi par ce projet et c’est comme ça.
Pour Smokin'Guns, il se trouve que Smokin' Guns est, comme Tremulous, un mod de Quake3 devenu standalone. On sait qu’un portage depuis le moteur Quake 3 vers Dæmon est possible: Unvanquished l’a fait. Il est assez naturel pour un projet basé sur les technologies de Quake 3 qui voudrait se réinventer un peu de lorgner du côté de Dæmon. Les données utilisent les mêmes formats, avec les mêmes outils pour les gérer. Dæmon apporte quelques changements par-dessus et autour de ces formats parce qu’avec des décennies de recul on sait ce qui pouvait être mieux pensé, mais même quand la compatibilité est cassée pour faire mieux, porter les données de l’un à l’autre n’est pas très compliqué.
Au final Dæmon est un moteur qui est réellement utilisé par un jeu et qui est maintenu. Un projet comme ioquake3 apporte de nouvelles fonctionnalités, mais elles ne sont pas vraiment éprouvées parce que la vocation première d’ioquake3 est de faire tourner Quake 3 sans le casser. Ça veut aussi dire qu’ioquake3 ne peut pas corriger certains défauts de conception.
Par exemple ce que je vais dire pourra paraître surprenant et à contre-courant des présupposés, mais Quake3 n’as pas vraiment été pensé pour être “moddé”, il a été pensé pour être mis à jour facilement. La nuance, c’est que les mécanismes utilisés par les “moddeurs” sont des mécanismes qui permettent à l’éditeur du jeu de modifier son propre jeu pour l’améliorer, distribuer ses mises à jour, mais ces mécanismes ne sont pas pensés pour isoler les modifications du jeu original. N’importe quel serveur malintentionné peut distribuer un fichier de mise à jour qui casse le jeu tant que ce fichier n’est pas supprimé manuellement par le joueur (s’il l’identifie). Dæmon a amélioré le format des archives à la base du système de fichier virtuel du jeu en ce sens par exemple.
Par ailleurs, le moteur est juste plus avancé dans plein de domaines, notamment graphique.
Pour Xonotic, la raison n’est pas « plus beau ». En termes de résultat final (ce qui est affiché à l’écran), Dæmon est encore un peu en retrait de Darkplaces (le moteur actuellement utilisé par Xonotic. Pour être au même niveau il faut réparer les effets d’eau et implémenter les lightmaps dans l’espace sRGB. Par ailleurs Darkplaces est encore un peu plus performant que Dæmon. DarkPlaces a l’avantage d’être bien plus mature et éprouvé, 3D Realms a même sorti un jeu dessu en 2020: Wrath: Aeon of Ruin.
Mais DarkPlaces est un vieux cheval. C’est initialement un moteur pour faire tourner Quake 1, et aucune modification qui pourrait casser Quake 1 ne sera implémentée. Dans DarkPlaces, les jeux sont codés en QuakeC, une espèce de langage dédié qui ressemble un peu au C, et tournent dans une machine virtuelle maison communément dénommée Q1VM. C’est un langage et un environnement très spécifique, avec des tas de vieilleries, de limitations, et de bizarreries.
Le moteur de Quake 3 avait fait le choix de partir sur du C pour le code des jeux, du véritable C, mais compilé avec un compilateur spécifique (et non-libre, LCC) dont les binaires tournaient sur une machine virtuelle maison (QVM). C’est déjà énorme par rapport à la Q1VM et le QuakeC. Dæmon est allé plus loin. Le problème de la QVM est que là encore, c’est une technologie spécifique, on est donc loin des performances que peut permettre l’état de l’art actuel, même s’il faut le reconnaître, c’est tout de même pas mal. L’autre problème de la QVM c’est que si c’est du vrai C, c’est du C assez ancien qui compile avec un compilateur ancien et limité. On oublie tous les progrès sur les compilateurs qui ont pu être fait en 20 ans, on oublie la réutilisation de certains codes en C écrit depuis qui ne seraient tout simplement pas compilable sur LCC, etc. Sachant que pour conserver des fichiers sources commun entre le moteur et le jeu, le moteur en subit des limitations
Dæmon prend en charge le même C++ dans le moteur et le jeu. La machine virtuelle actuelle est NativeClient (NaCl), maintenant que celui-ci est déprécié au profit de WebAssembly (WASM, le mal nommé, qui n’est pas du tout spécifique au web), nous avons un plan de migration vers celui-ci, mais jusqu’à très récemment d’après les spécialistes, WebAssembly n’était pas encore prêt pour nos besoins. À suivre…
Le but de Xonotic serait donc de s’affranchir de DarkPlaces. Il y a plusieurs expérimentations. Celle qui donne des résultats déjà visibles est une espèce de glue qui en réalité implémente une Q1VM par-dessus NaCL. L’idée serait de porter le jeu en Quake C d’abord, puis de l’améliorer par partie dans un autre langage si j’ai bien compris. Actuellement tout ce qu’on peut faire avec ça c’est se ballader dans les maps et c’est tout. C’est une démo technique, une preuve de concept.
J’ai vu passer deux projets de transpileurs. L’un qui transpile du code vers du C++ mais sans tenir compte du fait que ce soit lisible à la sortie. L’idée serait là aussi de porter petit à petit le code tout en transpilant ce qui n’est pas porté, si j’ai bien compris.
Un autre projet plus ambitieux est un projet qui vise à transpiler le code QC vers du rust directement exploitable.
Tout ça ce sont fondamentalement des travaux de recherche en fait. Le futur appartient aux audacieux, aux persévérants, et aux chanceux qui survivent aux chauffards.
Il est tout à fait possible que Xonotic reste sur DarkPlaces encore longtemps.
De ce que je sais, même si Dæmon est un peu à la traine derrière Darkplaces concernant certains effets graphiques (mais pourrait être en avance sur d’autres, mais pour Xonotic forcément l’éventuel « plus » ne peut pas se voir), Dæmon aurait une architecture plus moderne sur le plan du moteur de rendu. L’idée serait donc de bénéficier de ce que DarkPlaces n’a pas en ajoutant ce qui manque a Dæmon, sur une base déjà plus accueillante.
Il se trouve que DarkPlaces a implémenté nombre de technologies de Quake 3: le format des paquets, le format des maps, et partiellement le format des matériaux. Xonotic a donc des données qui se chargent à 90% dans Dæmon sans trop pousser. Ceci est vraiment important pour Xonotic car avec 19 ans d’histoire (en comptant Nexuiz) ça fait plusieurs milliers de cartes communautaires dont il serait dommage de casser la compatibilité.
Et globalement, derrière tout ça, il y a l’idée d’aller plus loin ensemble.
Par exemple revient parfois la discussion de l’éventualité d’intégrer le moteur graphique de Dæmon dans ET:Legacy, mais seulement la partie rendu graphique parce qu’ils doivent rester binairement compatible avec le jeu Wolfenstein: Enemy Territory. Ce serait là aussi pour éviter la dispersion. Mais comme beaucoup de choses ce sont des idées qui flottent au-dessus de nos têtes et on verra bien dans le futur ce qu’il en deviendra…
Les communautés de joueurs ne se mélangent pas vraiment, mais plusieurs développeurs ont un pied dans plusieurs projets. Et personnellement je travaille beaucoup à entretenir le réseau. Je pense que c’est vraiment ce qui me tient le plus à cœur : jeter des ponts et rassembler. J’essaie de faire ce qui est à ma portée. =)
ce commentaire est sous licence cc by 4 et précédentes
En quoi le fait que Gecko n’est pas été prévu pour être embarquer dans d’autre navigateur rend son code mal fait au juste ?
Tu juges une truite sur sa capacité à grimper aux arbres toi ?
C’est tout de même un gros problème : si les développeurs d’application utilisant des framework web ou intégrant des technologies web et développeurs de sites webs ont toujours sous les yeux un moteur hérité de Webkit et que Safari, Opera, Chrome et Edge ont un moteur hérité de Webkit, alors la nécessité de tester Firefox prend des airs de développement spécifique et les pratiques de développement se modèlent naturellement autour de bugs pris pour des fonctionnalités.
Aussi, tu perds les développeurs qui intègrent le moteur et donc qui connaissent ne serait-ce qu’en surface une partie de la mécanique interne.
Personnellement je suis repassé de Epiphany à Firefox quand Epiphany est passé à Webkit, et tant pis pour l’intégration du trousseau des mots de passe. Et entre nous depuis 2008 EpiphanywWeb n’a toujours pas réussi à redevenir aussi fonctionnel et stable que la version gecko de l’époque.
Si vous n’êtes pas capable de nommer une seule application embarquant Gecko (en excluant celles dérivées du projet Mozilla comme BlueGriffon), dites-moi comment trouver des développeurs connaissant Gecko. Super l’écosystème ! Tout seul on va plus vite, ensemble on va plus loin.
Personnellement j’en connais qu’une seule, avec un public de niche, et qui ne fait même pas partie des logiciels installés sur mon ordinateur : Xiphos. Je ne sais même plus comment je sais que c’est Gecko qui est utilisé.
Toutes les autres applications qui embarquaient Gecko et que je connaissais ont toutes migrées sur Webkit. Maintenant que Mozilla vire 250 personnes, comment tu recrutes une communauté pour prendre le relai quand pas même la surface du moteur est connue ?
ce commentaire est sous licence cc by 4 et précédentes
Il faudra m’expliquer en quoi ce n’est pas la description d’un complot : ils ont des intérêts communs, et en travaillant à ces intérêts (ou ne travaillant pas aux autres intérêts) chacun y trouve son compte.
Un truc qui m’étonne c’est que lorsqu’on décrit des choses comme ceci, ou une entente sur les prix, ou encore l’obsolescence programmée, il y en a souvent un ou deux pour venir dire « mais il n’y a pas de feuille de route », etc. Mais il n’y a pas besoin de faire des rendez-vous dans des caves pour trouver un intérêt à satisfaire un autre qui trouve un intérêt à te satisfaire, pas non-plus besoin de mémos secrets pour sonder le marché et s ’aligner sur les prix de ses concurrents en faisant exprès de ne pas casser les prix si ce serait une logique perdante à moyen terme, tout comme il n’y a pas besoin de programmer l’obsolescence sur un calendrier pour se satisfaire d’un sous-traitant médiocre dont l’intégration des composants stimule, oh surprise, le cycle de renouvellement des produits chez les clients.
Il faut peut-être cesser d’agiter le foulard rouge du complot de roman d’aventure, au risque de systématiquement abdiquer devant l’opportunisme.
Que le complot soit le fruit d’une confrérie secrète ou le cercle des opportunistes dispersés, le résultat est le même. Le mal se traite quelque soit l’intention. Si l’on se coupe le doigt en coupant des carottes, on ne va pas refuser de traiter la coupure au motif que la coupure est opportuniste et que l’intention de se couper le doigt n’a pas été démontrée par la découverte d’un parchemin médiéval décrivant les circonstances et l’intention.
Un complot est une entente secrète aux effets négatifs, le « tu vois ce que je veux dire » ou la simple omission entendue est une forme d’entente informelle. On condamne bien la « non-assistance à personne en danger », l’exemple type de l’omission entendue au service d’un profit quelconque (ne serait-ce que la simple paresse).
Quand Georges Bernanos écrit que le mode moderne est une « conspiration universelle contre toute espèce de vie intérieure » dans La France contre les robots, personne ne suppose un seul instant qu’il suppose un cercle d’initiés qui ne serait-ce qu’imaginent en conscience les effets qu’il décrit. Même pas besoin de plan, même pas besoin d’imaginer les effets, même pas besoin de les rechercher, même pas besoin d’en avoir conscience. L’opportunisme, la lâcheté et l’égoïsme sont des conditions suffisantes à la conspiration dès lors qu’il existe plus d’une personne à pouvoir s’y abaisser.
Pas besoin de procès d’intention quand le conflit d’intérêt est avéré.
ce commentaire est sous licence cc by 4 et précédentes
Euh non je ne crois pas que Zenitram confonde code du jeu et moteur dans son commentaire. Il s’agit plutôt d’ensembles et il dit bien « le jeu » qui est l’ensemble supérieur.
Le code et les données sont deux ensembles qui appartiennent à un ensemble plus large :
[ Jeu ]
[ Code ][ Données ]
Dans le cas où l’on peut distinguer le code du moteur et le code du jeu, on peut faire ce schéma :
[ Jeu ]
[ Code moteur ][ Code jeu ][ Données ]
Parler du « jeu » sans plus de précision désigne l’ensemble supérieur.
Dans le cas d’Unvanquished, l’ensemble supérieur avait l’ambition d’être libre, le code du moteur l’était, le code du jeu l’était, mais bien qu’il y avait une volonté d’avoir également des données libres, certaines données avaient été acceptées qui ne satisfaisaient pas à cette exigence. Pour que l’ensemble supérieur soit libre il a fallu corriger la situation sur les données.
Le travail de longue haleine que le projet Unvanquished a fait pour obtenir cette liberté était précisément fait pour marquer une différence très nette avec ce que vient de faire Frictional Games. Note que je trouve très bien ce que vient de faire Frictional Games, ce n’est simplement pas la même chose.
Je ne vois pas trop pourquoi ils devraient faire des circonvolutions dans leurs écrits, qu’ils le disent clairement : ils ont libér" le code. C’est déjà très bien, c’est ce que faisait Id Software en son temps : Quake 3 Arena n’est pas un jeu libre mais son moteur et son code de jeu le sont, ça a permis :
de porter le jeu ou des jeux basés sur son moteur sur des tas de plateformes. Par exemple lorsque j’étais étudiant un ami faisait tourner Tremulous sur du matériel Silicon Graphics;
de mettre à jour le moteur pour nos systèmes plus modernes, il existe un fork avec un moteur Vulkan par exemple;
de corriger des problèmes, d’ajouter des fonctionnalités, ce que fait ioquake3 par exemple;
de publier des jeux de manière autonome (libres ou non) : Tremulous, World of Padman, Smokin' Guns, OpenArena;
de servir de base à des projets qui suivront leur propre route, comme le moteur Dæmon;
de servir de base à des projets de recherche;
et globalement de nourrir des tas de projets libres ainsi qu’un écosystème.
Si Id Software n’avait pas libéré le code de ses moteurs et de ses jeux, comme vient de le faire Frictional Games, il n’y aurait pas le moteur DarkPlaces (dérivé de Quake 1) et le jeu Xonotic, il n’y aurait pas le moteur Dæmon (dérivé de Quake 3) et le jeu Unvanquished. Il n’y aurait pas le jeu UFO:AI, le jeu The Dark Mod serait toujours un mod sans ambition qui ne tournerait que sur une antique version 32 bit du moteur.
Donc c’est énorme ce que Frictional Games vient de faire. Le jeu “Amnesia” n’est pas libre, mais j’ai envie de dire… et alors ? Ils gagneraient à être plus explicite sur ce qu’ils libèrent. Même quand on n’a pas tout il faut être fier de ce que l’on a car c’est déjà un tout : c’est tout ce qu’on a.
Il serait plus efficace pour Frictional Games de dire quelque chose comme ceci :
Nous libérons notre code !
Portez le jeu où bon vous semble,
Expérimentez avec le code, tentez de nouvelles choses,
Essayez-vous au développement d’un jeu,
etc.
Ils expliquent dans leur article qu’il existe des milliers de mods et addons pour leur jeu, alors ils savent très bien tout ça.
En fait tout ce qui leur manque est un titre complet :
- Amnesia is now open source!+ Amnesia code is now open source!
Avec ce titre tout aussi efficace mais surtout plus explicite, certaines parties de leur article serait plus aisées à rédiger, la partie qui précise « Think of the release as “free speech”, not “free beer”. » devient assez inutile car elle est surtout rédigée pour corriger les incompréhensions induites par leur titre maladroit.
ce commentaire est sous licence cc by 4 et précédentes
ils proposaient aussi la vente de listes d'utilisateurs d'autres logiciels "alternatifs/concurrents", notamment GIMP! Même nous on n'a pas de listes d'utilisateurs ni même de chiffres pour GIMP, mais de parfaits inconnus en ont? Ahahah! Ça m'a bien fait marrer!
Ne rigole pas si vite, avec un réseau de malwares efficace je ne vois pas pourquoi il ne serait pas possible de sortir à la fois la liste des programmes installés et l’adresse mail la plus utilisée sur le même poste.
Il peuvent aussi distribuer GIMP sur des sites douteux en échange d’une adresse mail. Le web est plein de logiciels libres distribués par des sites douteux qui les présentent comme des alternatives à des trucs proprios (voire les présentent comme les trucs proprios eux-même), distribués contre telle ou telle action, hébergés avec des pubs, empaquetés avec des malwares…
ce commentaire est sous licence cc by 4 et précédentes
Et depuis que j'ai visionné sur Netflix ( https://www.netflix.com/fr/title/81254224 ) je comprends pourquoi.
Ce documentaire permet aussi de comprendre comment certaine personne ont fini par se persuader que la terre était plate … (non c'est pas une blague ni dredi )
Le film IDIOCRACY devient de plus en plus plausible chaque jour …
Pour ceux qui voudraient savoir quel est le documentaire dont il est question sans cliquer sur le lien NetFlix, c’est « Derrière nos écrans de fumée ».
La fiche dit :
Entre documentaire et drame, ce film donne la parole à des experts qui nous mettent en garde contre leurs inventions et décrient l'impact dangereux des réseaux sociaux. De Jeff Orlowski, avec Skyler Gisondo, Kara Hayward, Vincent Kartheiser
ce commentaire est sous licence cc by 4 et précédentes
Je me rends compte que cette partie pourrait être mal comprise :
Aussi, j’aimerai voire implémentée la prise des lightmaps sRGB. Les lightmaps sont des textures de lumières et d’ombres précalculées. Il s’agit là d’utiliser un format d’image non-linéaire qui privilégie les valeurs utiles l’œil
Les lightmaps sont implémentées, mais pas la variante sRGB.
ce commentaire est sous licence cc by 4 et précédentes
Sans parler de RTX mais de « Raytracing » en général, rien n’empêche que ce soit implémenté, ce qu’il faut pour ce faire, c’est que quelqu’un le fasse. Et en fait ce n’est pas spécifique au tracé de rayons, c’est spécifique à toute fonctionnalité graphique qui pourrait être implémentable.
Les développeurs de moteur de jeu sont une espèce très rare et précieuse, et qui se raréfie. Les spécialistes des moteurs de rendu sont encore plus rare. Il y a plusieurs raisons à cela et je ne suis pas certain de tout savoir, mais déjà ce sont des compétences très pointues, et qui sont de plus en plus pointues (et qui sont donc de plus en plus sélectives). Si on regarde le marché du jeu vidéo, on voit surtout de très très grosses entreprises qui produisent des moteurs de jeu. Cette concentration n’est d’ailleurs pas spécifique au jeu vidéo : IBM rachète Red Hat, Microsoft rachète Zenimax (et donc id Software). Je ne sais d’ailleurs pas si c’est une sorte de bulle qui va éclater, ou si c’est l’avènement d’un monde cyberpunk où tout est entre les mains d’une poignée d’acteurs, mais c’est le constat pour le jour actuel.
Dans le domaine des moteurs de jeu et peut-être plus encore de moteur de rendu graphique, l’artisanat est devenu une curiosité. Les rares ressources sont déjà bien exploitées par une poignée d’acteurs. C’est la dèche. Donc bref, la seule chose qui empêche que tel ou tel truc sexy soit implémenté c’est tout simplement les limites de la main d’œuvre. Pour Unvanquished/Daemon on a la chance d’avoir quelques développeurs qui connaissent le domaine.
Un projet comme Unvanquished/Dæmon c’est un projet qui avance au rythme des disponibilités et compétences de chacun.
Pour voir implémenté du raytracing, du vulkan ou toute autre chose à la monde il faut que quelqu’un à qui c’est à la portée de le faire, s’y mette. 😁
En fait, un de nos développeurs, Fuma, a déjà un projet de tracé de rayon qui semble fonctionnel même si incomplet (quelques copies d’écran ici, l’absence de texture est volontaire puisque ce qui est comparé sont les lumières et les ombres). Je n’ai aucune idée des performances. Par rapport à ce projet, il est du genre à venir sur le chat une fois l’an avec des nouvelles. Je ne peux donc pas dire si ça viendra un jour ou jamais. Ça dépend entièrement de lui en fait… Fuma fait partie des gens qui peuvent lire des papiers de recherche et produire quelque chose, tout en ayant une bonne connaissance de l’état de l’art actuel (je ne sais pas ce qu’il fait en dehors d’Unvanquished en fait).
Pour donner un exemple, de mon côté, j’ai fait un énorme travail de nettoyage de code (un autre effort de plusieurs années) qui, par réécritures et refactorisations successives ont conduit à supprimer 680 lignes tout en ne retirant aucune fonctionnalité, permettant de combiner plus de ces fonctionnalités, rende certaines fonctionnalités implémentables, et rend le code plus testé, rend la maintenance plus facile, et dont la conception du code empêchera certains bugs d’être introduit ou oublié d’être corrigé par inadvertance. Ce travail a fait passer le moteur Dæmon de la preuve de concept qu’était XreaL à quelque chose de propre sur ce plan, en corrigeant parfois des bugs qui avaient été introduit dans XreaL avant même la sortie standalone de Tremulous 1.1.0… Ce grand nettoyage fera, je l’espère, l’objet d’un autre article.
Mais faire cela pour moi a été essentiellement une forme de méta-programmation, il s’agissait de reformuler les chose, réorganiser le code, le découper, le factoriser, le dédupliquer, changer la façon dont il était appelé pour le rendre réutilisable. À aucun moment je n’ai vraiment touché aux formules mathématiques. Un autre spécialiste des moteurs de rendu, gimhael, a surtout contribué ces dernières années par des commentaires, des explications très précieuses, que du code. Cela a rendu ce travail de refactorisation et de nettoyage possible, mais pour implémenter de nouvelles fonctionnalité il faudra des commits de leur part. On verra bien ce que nous réserve le futur. 😃
Mais avant le tracé de rayon, il y a tout plein de choses sur lesquelles on peut agir et qui sont plus à la portée des contributeurs les plus actifs actuellement. Grâce à ce travail de refactorisation, le reliefmapping a été corrigé et est utilisable : aux artistes de fournir les fichiers qui vont bien pour en profiter. Le PBR (physical based rendering) a été activé pour toutes les surfaces, là encore c’est aux artistes de fournir les textures qui vont bien, avant cela, le moteur saura faire mais ne le fera pas. J’ai découvert que quelque chose d’encore inconnu assombri le jeu… Si je charge la même carte dans Dæmon avec la petite démo Xonotic, la luminosité est celle attendue, si je charge la même carte dans Dæmon avec le jeu Unvanquished, quelque chose l’assombri un peu… Nous avons donc un bug à trouver et corriger pour améliorer les choses ! Aussi, j’aimerai voire implémentée la prise des lightmaps sRGB. Les lightmaps sont des textures de lumières et d’ombres précalculées. Il s’agit là d’utiliser un format d’image non-linéaire qui privilégie les valeurs utiles l’œil (ce qui réduit les dégradés à grosse marche bien visible) et d’avoir des calculs qui sont plus proche de ce qui se passe physiquement. Avant même de faire du tracé de rayon, il serait bon d’avoir des formules qui soient plus proches des modèles physiques, et on n’a pas besoin de tracer des rayons pour ça. =)
Bref, ce sujet est dans ma liste des sujets dont j’espère pouvoir faire un article (comme annoncé à la fin de celui-ci), ce commentaire m’aura aidé à trouver un angle d’attaque et donné quelques idées quant au découpage de ses parties. 😉
ce commentaire est sous licence cc by 4 et précédentes
En fait WebAssembly est mal nommé, il y a “Web” dedans parce que les premiers clients sont des gens qui font du web, ce sont eux qui poussent le plus. Il est prévu par exemple que pour Unvanquished nous passions de NaCl à Wasm pour le code du jeu qui peut-être téléchargé depuis un serveur, et qui doit donc tourner sur toutes les plate-formes supportées et dans un bac à sable. Native Client était une technologie précédent WebAssembly qui était initialement développée pour le navigateur Google Chrome, mais qui là encore, a pu servir en dehors du web.
Il y a plusieurs projets comme Wasmer, Wasmtime et d’autres pour faire tourner du code WASM sur n’importe quelle machine en dehors du navigateur. Il y a même un projet pour faire tourner du code Wasm directement dans le noyau.
Donc bref, mon commentaire n’enlève rien au tiens au contraire il l’appuie : c’est la tendance. Et en fait on retrouve ça plus loin que le web.
ce commentaire est sous licence cc by 4 et précédentes
Donc c'est plus du sentiment… probablement biaisé :
« quelqu'un » : je cherche un homme blanc éduqué
« personne » : quel que soit votre profil, si vous avez la motivation, ça va le faire
Je ne savais pas la langue aussi sexiste, raciste et classiste =)
…ou bien peut-être faut-il questionner le règne du sentiment.
Il est difficile de trouver plus arbitraire et dictatorial que le sentiment. C’est peut-être là un problème essentiel : vouloir réinventer le monde, le langage et les relations sur la base de ce qu’il y a de plus arbitraire et dictatorial chez l’homme. :-/
ce commentaire est sous licence cc by 4 et précédentes
Beaucoup de langues ayant un système ayant un système de genre grammatical forcent beaucoup de mots à rentrer dans une des catégories, même quand le système a priori ne les concernerait pas : ce qui décide à la fin, c'est la chance et des considérations comme la phonétique
Un bon exemple est le prénom Thomas qui est décliné au féminin au latin. Pourquoi ? Parce que la déclinaison latine est celle qui se termine en -a au nominatif. Ce prénom est « étranger » au latin, c’est un mot araméen qui signifie jumeau: Toma, donc pour conserver la prononciation du prénom un latin écrivait Thoma.
Ce qui est amusant c’est que le h du Th et le s viendrait d’une transcription du grec Thomas qui reprend la prononciation araméenne, alors que le mot grec « Didymos » était aussi utilisé (et latinisé) en tant que « Didymus » comme nom pour l’apôtre Thomas. Les latins n’ont finalement pas gardé Didymus ni une variante de geminus (le mot latin pour jumeau), alors que les latins ont traduit Kephas (pierre) en Petrus (pierre) pour conserver le sens du mot, alors qu’ils auraient aussi pu retranscrire kephas comme ils ont fait pour Thomas, mais il est vrai que conserver le sens du mot Pierre était essentiel sur le plan théologique.
Bref, si tu lis ce commentaire, c’est que tu t’es encore perdu sur Internet !
ce commentaire est sous licence cc by 4 et précédentes
Petite correction pour éviter des incompréhension :
- En plus de simplement donner des directives à des automates, tu dois faire avec les avis contradictoires, les paris gagnants et les erreurs et tu dois gagner la confiance de vrais joueurs.+ Plutôt que simplement donner des directives à des automates, tu dois faire avec les avis contradictoires, les paris gagnants et les erreurs des autres et tu dois gagner la confiance de vrais joueurs.
ce commentaire est sous licence cc by 4 et précédentes
Je vais peut-être te surprendre, mais Unvanquished c’est la même mécanique de jeux que 0 A.D. :
Tu as une carte à parcourir (tu as d’ailleurs une minicarte qui t’indique ce que tu as découvert)
Tu dois miner des ressources (pour construire des infrastructures)
Tu as un territoire à contrôler (pour miner les ressources)
Tu dois gérer des comptes (monnaie, ressource minière)
Tu traverses des époques qui débloquent des technologies
Tu as perdu quand ta civilisation est éteinte
Excepté que tu fais tout cela à la première personne, que chaque seconde compte et que c’est toi qui tiens le flingue ou l’outil de construction, que tous les personnages sont censés être de vrais joueurs à qui tu parles en vrai, et que les époques durent quelques minutes (et que tu peux régresser). C’est toi et tes équipiers qui construisez et réparez votre base, les poste avancés, placez vos machines d’extraction de ressources, qui gagnez votre solde, qui tenez le siège, et qui défendez la place forte. Plutôt que simplement donner des directives à des automates, tu dois faire avec les avis contradictoires, les paris gagnants et les erreurs des autres et tu dois gagner la confiance de vrais joueurs.
Unvanquished est un jeu de stratégie en temps réel en vue subjective. Ces trois points ne s’opposent pas. De même que le temps réel ne s’oppose pas à la stratégie (un jeu de stratégie n’étant pas nécessairement au tour par tour) le fait que le jeu se joue à la première personne n’est qu’une question de point de vue.
En fait le « jeu à la première personne » n’est pas vraiment un genre, c’est une modalité de jeu.
Tu as des jeux à la première personne où tu as une histoire et des niveaux à parcourir avec un début et une fin, en fait c’est le genre « livre dont vous êtes le héro » décliné à la première personne : Doom, Quake, GoldenEye 007, Half-Life, Halo, etc. Ils forment évidemment des sous-genres, en solo, en coopération, avec des éléments tactiques, mais le joueur déroule une histoire.
Tu as des jeux à la première personne où le but c’est de marquer le plus de points : Quake III Arena, Unreal Tournament, Xonotic, etc. T’es dans une arène, parfois seul, parfois en équipe. Toi ou ton équipe gagne en tuant le plus d’ennemis, en capturant le plus de drapeau, en restant le dernier en vie etc. Pas d’histoire, s’il y a des thèmes développés ce n’est que du décor. C’est le genre « balle au prisonnier », « chat » et ses variantes, ou… « capture du drapeau » (j’y ai joué en vrai dans mon enfance) etc. décliné en virtuel…
Tu as des jeux à la première personne où tu dois gérer des ressources, construire ta base, contrôler des territoires, le but c’est de mettre en échec l’équipe adverse. Unvanquished rentre dans cette catégorie. Tu as gagné le jeu quand tu as mis l’adversaire échec et mat : tu as gagné quand tu dénies à tous les joueurs de l’équipe adverse et en même temps la capacité de revenir en jeu.
Il y a bien d’autres genres et bien entendu les genres sont poreux et se mélangent. Des jeux comme Quake ont un mode multijoueur en arène. Un jeu comme Xonotic a un ensemble de jeu en local organisés en campagne, a des modes de jeu de contrôle du territoire, etc.
Le genre d’un jeu comme Portal c’est le puzzle. Dans portal, tu joues en temps réel à la première personne et tu as au premier plan une sorte d’arme qui permet de tirer des portails permettant de te déplacer ou interagir avec l’environnement pour résoudre des casse-têtes. C’est le même genre que le jeu Newton Adventure de devnewton< ou que le pousse-pousse bien physique. Quand je disais que les genres sont poreux, les jeux comme Doom, Duke Nukem, etc. en plus de développer le jeu de tir intègrent aussi des éléments de puzzle pour déverrouiller la progression ou des secrets à découvrir.
Un jeu comme Portal c’est 100% d’une infrastructure de FPS. Par exemple Quake3 intègre des portails et des armes, implémenter un clone de portal est une affaire de modification (et ça existe).
Les jeux comme DeFraG (implémenté dans Quake 3, ou son implémentation libre sur Xonotic dont j’avais parlé ici) utilisent 100% d’une infrastructure de FPS, mais ce sont des sports de courses sur des parcours complexes qui se complètent avec des gymnastiques spéciales (le même genre que le Parkour en fait).
Le FPS est un mode de jeu, pas vraiment un genre. Cette confusion vient des débuts du jeu vidéo où les FPS étaient nouveaux et qu’on y a vu un genre à part. Le jeu à la première personne n’est pas vraiment un genre, c’est un ensemble de modalités.
Dire que Unvanquished serait un jeu de FPS c’est comme dire que le Monopoly et les échecs c’est pareil : ça se joue sur un plateau avec des pions que les joueurs assis autour du plateau déplacent. En fait Unvanquished est sur le plan de la mécanique de jeu plus proche du Monopoly (gestion de ressources) et du jeu d’échec (infliger une situation sans issue, classes) que de Quake, mais plus proche de Quake quant à certaines modalités (pas de tour par tour, vue subjective).
En parlant de classe et les échecs, un jeu comme Team Fortress est comparable dans certaines mécaniques : tu as des classes de joueur qui ont des propriétés spécifiques (mouvements, armes) qu’il faut combiner, un autre jeu à base de classe comme Wolfenstein Enemy Territory ajoute aussi des élements de progression qui sont conservés entre les parties (grades).
Et pour faire un peu le tour des jeux de tirs… un jeu comme Time Crisis (“first person rail shooter”) c’est le genre du ball trap. Mettre le ball trap, les échecs, le monopoly, le pousse-pousse et le jeu du chat dans le même genre semblerait un peu large, c’est pourtant ce qui fut souvent fait avec les jeux à la première personne.
Bref, le fait qu’Unvanquished se joue en temps réel et à la première personne sont des aspects de ce jeu de stratégie.
Au-delà de la temporalité et du point de vue, Unvanquished c’est donc aussi, en plus des points déjà listés :
deux équipes avec des classes (celui qui attaque, celui qui construit…) et des équipements;
du mobilier à construire et à organiser selon des rôles, chaque équipe ayant un mobilier névralgique (réacteur, overmind) dont les autres mobiliers dépendent pour fonctionner, des constructions de défenses aux propriétés bien particulières, des constructions vitales dont dépendent l’issue du jeu, etc.
une monnaie à gérer (acheter/revendre des armes, incarner des formes plus évoluées);
une santé à conserver et soigner (guérison, équipements de soin);
Techniquement, en tant que joueur, tu gères simultanément trois comptes : la monnaie (ou les points d’évolution) qui est propre à chaque joueur (qu’il est possible de transférer entre joueur selon la configuration du serveur), les points de construction (compte commun à l’équipe et en compétition avec l’équipe adverse), et le momentum (qui définit ta progression et les technologies qui te sont accessibles).
Se faire tuer par l’adversaire enrichit/nourrit l’adversaire, à la fois en monnaie mais aussi en progression, et bien sûr tu ne récupères pas la monnaie que tu as dépensé pour t’équiper et ton équipe perd en progression. Se fait démolir une base coûte des points de construction à l’équipe qui ne seront jamais récupérés et réduit la progression de l’équipe, mais enrichit en monnaie et augmente la progression de l’équipe adverse qui peut se voir débloquer des technologies et devenir capable de se les payer.
Pour gagner il faut donc mettre l’équipe adverse en échec. Pour cela il faut parvenir à détruire les équipements qui permettent aux joueurs adverses de revenir en jeu lorsqu’ils sont morts, et bien entendu de les éliminer sans exception pour qu’ils ne les reconstruisent pas. Quand toi et tous tes coéquipiers sont bloqués dans la salle d’attente et que cette salle d’attente ne peut techniquement plus se vider, votre équipe a perdu.
Un jeu comme Unvanquished est très exigeant mentalement et physiquement. Une partie peut se terminer en 15 minute comme durer un peu plus d’une heure, heure pendant laquelle chaque seconde peut être décisive : tu dois concevoir les bases, les construire, les défendre, les reconstruire, élaborer des actions, attaquer, te replier, te cacher, te soigner, sauver ta peau, faire fructifier ton gain et l’investir intelligemment (que ce soit en monnaie ou en points de construction), retenir un assaut, tenir un siège.
Effectivement, si tu es incapable de jouer à un jeu en tir subjectif, tu auras peut-être du mal avec ce jeu : l’adresse au jeu de tir à la première personne est requise. Mais tu peux toujours t’essayer au rôle de celui qui construit les bases, pense les défenses, étend le territoire, etc. =)
Par exemple tu peux démarrer le jeu en local avec la carte « Plat23 » qui est assez indulgente envers les bots. Ajoute trois bots aliens, deux bots humains et rejoint l’équipe des humains. Prends le « Construction Kit » et essaie de déterminer la victoire. Ensuite fais l’inverse en rejoignant l’équipe des aliens en jouant en tant que granger sur cette même carte. Un objectif intermédiaire sera que ton équipe de bots atteignent un niveau suffisant pour que tu puisses évoluer et marcher sur les murs pour rendre ta base plus efficace. La troisième étape sera de jouer sur la carte Chasm en tant qu’humain avec l’outil de construction. Une équipe de bots humains ne survivent pas longtemps face aux aliens sur cette carte (cette asymétrie est spécifique aux bots qui ne sont pas si humains que ça…), tu dois pouvoir faire gagner ton équipe uniquement en construisant des infrastructures pour tes bots, mais tu seras très vite tenté de t’acheter un flingue. ;-)
Note que le jeu ne permet pas (pour le moment ?) de donner des ordres aux bots. Il y a déjà des mécanismes intégrés au jeu pour dire « attaquer ici », « défendre là », mais les bots ne les écoutent pas. Il faut dire que ce sont des pis aller, normalement le jeu se joue en équipes de vrais joueurs, c’est le but recherché. Si quelqu’un implémentait tout de même cela et mettait la caméra au-dessus de la carte… la comparaison avec un jeu comme 0 A.D. serait encore plus frappante.
Il serait tout à fait possible d’implémenter dans 0 A.D. un mode à la première personne jouée au niveau du sol où les personnages seraient d’autres joueurs.
À noter qu’un jeu comme Natural Selection qui se situe sur le même créneau qu’Unvanquished propose un rôle spécial où un des joueurs voit la carte de dessus et donne des ordres à ses coéquipiers. La différence avec un jeu comme 0 A.D. est donc que les petits bonshommes que tu vois courir sur la carte ne sont pas pilotées par des intelligences artificielles mais par de vraies personnes.
Bref, il est vrai qu’il est assez ennuyeux pour le cerveau de celui qui écrit de devoir rappeler le jeu à chaque dépêche. Je sais que c’est important et je dois me forcer. En particulier le fait de décrire le jeu comme un jeu de stratégie est le minimum vital que je rappelle.
Le point de vue du jeu (première personne) est vraiment moins important et il ne faut en parler que si l’élément stratégique est clairement énoncé d’abord, sinon le lecteur sera trompé et son appréciation sera erronée.
Même le fait de dire qu’Unvanquished serait un jeu de tir à la première personne avec des élements de stratégie serait mensonger. Unvanquished est d’abord un jeu de stratégie, et ce jeu de stratégie se joue à la première personne, en temps réel, avec des mécanismes de tir.
Lors de la sortie de Tremulous 1.1.0 en 2006 un lecteur avait commenté « [Ca ressemble beaucoup] a Nexuiz vous trouvez pas ? ».
Ce genre de première appréciation est vraiment problématique parce que oui à l’écran il y a un flingue au premier plan, mais ça ne définit pas un jeu ça, ça définit un point de vue. Les jeux comme Xonotic (successeur de Nexuiz) et Unvanquished (successeur de Tremulous) sont vraiment très différents. Les communautés de joueurs ne se mélangent d’ailleurs pas vraiment (ce qui n’est pas forcément vrai du point de vue des développeurs) : le public de Xonotic n’est pas nécessairement le public d’Unvanquished, comme quelqu’un qui joue à Unvanquished pourrait dire que les jeux comme Xonotic ne sont pas vraiment son genre de jeu. Les gens qui jouent aux deux sont surtout l’exception.
ce commentaire est sous licence cc by 4 et précédentes
Si Mélenchon lisait le commentaire auquel tu réponds en associant Mélanchon, il s’étranglerait et dirait :
Je suis écoeuré par cette propagande. Le dénigrement de la grande Révolution est une sale besogne pour instiller davantage de dégoût de soi et de déclinisme aux Français. Si l'on continue comme ça, il ne restera plus aucune identité commune possible aux Français à part la religion et la couleur de peau. source.
Parce que c’est bien connu, notre identité est dans la terreur.
mais pas d'argument contre? Pas grave, on en invente! Pas question de vivre ensemble même si on pourrait
C’est fou de voir avec quelle générosité tu attribues des comportements, des paroles, des intentions à des inconnus avec l’assurance de quelqu’un qui sonde les cœurs et les reins, alors que tu n’es même pas capable de situer dans son paysage politique un personnage aux positions pourtant très médiatisées et documentées.
ce commentaire est sous licence cc by 4 et précédentes
OK, on a à faire à un croyant. Je ne dis pas qu’il n’y ait pas des trucs à faire au niveau français, mais peut-être ce monsieur devrait réviser le concept de souveraineté.
Tiens, ça marche aussi.
Précisément, ça marche aussi, c’est en fait la base argumentaire de mon discours. Si tu pensais me contredire c’est mal barré.
La souveraineté s’appuie sur la souveraineté de ses membres. Parce qu’un état souverain avec des citoyens sous tutelle c’est une dictature.
La subsidiarité et la souveraineté marchent ensemble. Une subsidiarité sans souveraineté est une bureaucratie, une souveraineté sans subsidiarité est une république bananière.
ce commentaire est sous licence cc by 4 et précédentes
T’es tellement aveuglé par les épouvantails que tu agites que tu ne te rends même pas compte de ce que tu dis.
À moins d’écraser les pays membres pour en faire un seul peuple, un seul empire, un seul… (le point godwin n’est pas loin),
Ou la création de la République Française.
Merci, je m’étais retenu de la faire. Si tu penses contredire mon discours avec cette réplique, alors ton discours est invalide car fondé sur une supposition qui se révèle fausse.
La révolution française était un coup d’état bourgeois motivé par des intérêts privés. On est généralement complètement biberonné d’illusion à la con et de réécriture de vocabulaire. Par exemple sans porter de jugement, le concept de « domiciliation » est littéralement le même que celui du « servage », c’est simplement un nouvel emballage, la domiciliation comme le servage est simplement le concept d’un homme attaché à une terre administrée par une personne. Ce qu’on appelle « abolition » du servage n’a pas aboli le servage, elle en a fait un monopole d’état dont l’administration fut transférée au moment de la révolution française d’une personne physique vers une personne morale qui n’a de compte à rendre à personne et qui sert de paravent à des irresponsables (l’irresponsabilité est le mot employé dans notre constitution actuelle pour qualifier le président).
La révolution a écrasé les régions, les langues, les cultures. Comme le nazisme et le bolchevisme, la France révolutionnaire était une va-t-en guerre qui levait des centaines de milliers d’hommes pour écraser ses voisins de sa “lumière”. Les peuples qui se sont levés conter ces « levées » ont été massacrés, hommes, femmes, enfants, parfois des villages entiers. La révolution française et ses massacres légaux ont toujours servi de références et de modèle aux dictatures. Lénine surnommait la Volga « la petite Loire », en référence directe aux massacres de Nantes.
Tout comme les révolutionnaires français attachaient leurs victimes dans des barques qu’ils coulaient dans la Loire, les bolcheviques jetèrent depuis des péniches des milliers d’ouvriers une pierre au cou dans la Volga. L’Internationale a été composée sur l’air de la marseillaise, la mélodie que l’on connait actuellement est plus tardive.
Les valeurs de la république française sont « Liberté, égalité, fraternité ou la mort », c’est à dire que si un révolutionnaire considères que que tu n’es pas de son sang, que tu n’es pas de son parti, que tu ne te soumets pas à ses idoles tu n’as alors pas de liberté, tu n’es pas son égal, tu n’as pas ta place dans la société, et que tu dois mourir : ton sang impur doit rougir le sillon. C’est à ça que servait la guillotine : à ne laisser en vie que la fraternité de ceux qui se pensent égaux.
Pourquoi la Terreur révolutionnaire et le concept de terrorisme partagent le même mot ? À ton avis, pourquoi le régime fasciste italien était appelé fasciste ? parce que, comme la république française, il utilisait cet emblème des faisceaux que tu retrouveras sur ton passeport. Ça va, je continue ma lettre d’amour à la république française, xénophobe, terroriste, fasciste et génocidaire ? Ou bien ?
[…] est bien plus démocratique que la souveraineté artificielle et imposée que tu lui préfères
Tu es tellement aveuglé par tes épouvantails que tu en es ridicule.
Perso, je lis juste la phrase comme l'idée que la France n'est pas/plus l'échelle adéquate pour une souveraineté réelle
La souveraineté n’est pas une affaire d’échelle. La souveraineté commence à l’échelle du foyer. C’est justement pour cela que parler de souveraineté européenne en voulant défaire les cellules de souveraineté sur lesquelles l’europe est constituée est… comment dire… un château de carte ?
le Royaume-Uni est en train de se crasher sur la notion de souveraineté en ce moment
Je serai moins prompt que toi à faire un tel jugement. Je ne sais pas de quoi sera fait le futur, mais quand je vois l’État Britannique racheter OneWeb avec un partenaire Indien, je vois qu’ils prennent les moyens de reconstituer l’économie et le pouvoir d’un empire. Bien sûr qu’ils peuvent se planter. Le risque de perdre est grand, mais le risque du gain est vertigineux : si ça marche, c’est une part très importante de la planète qui serait dans un état de soumission logistique à l’État Britannique, lui assurant une rente économique et un pouvoir géopolitique inédit, et ce serait un des seuls état capable de rivaliser avec des intérêts privés dans ce genre d’infrastructure. L’État Britannique prend les moyens matériels de conserver sa souveraineté dans le monde Cyberpunk qui vient, celui où les sociétés privées sont plus puissantes que les états, sauf peut-être l’État Britannique…
ce commentaire est sous licence cc by 4 et précédentes
Un peu dur à lire (t’aurais pu utiliser la balise > pour les citations ?) mais globalement ma réaction devant les extraits du discours de Manu c’est :
la vraie souveraineté se bâtit au niveau européen et si on veut que notre écosystème soit durable
OK, on a à faire à un croyant. Je ne dis pas qu’il n’y ait pas des trucs à faire au niveau Européen, mais peut-être ce monsieur devrait réviser le concept de souveraineté. À moins d’écraser les pays membres pour en faire un seul peuple, un seul empire, un seul… (le point godwin n’est pas loin), il cherche la quadrature du cercle mais en plus il est convaincu qu’elle est juste derrière la porte. La souveraineté est une chose à l’échelle du pays. À l’échelle de l’europe il y a plein d’autres choses à faire. On sera d’autant plus confiant à mettre certaines données chez certains voisins si on a confiance dans leur propre souveraineté. On sera d’autant plus confiant avec nos voisins que nous accords reposeront sur… nos propres souveraineté. Pas de souveraineté par pays ? Pas d’accord et pas de confiance entre pays ! Autant se faire héberger aux US dans ce cas…
ce commentaire est sous licence cc by 4 et précédentes
Il faut parfois de très nombreuses années et se faire avoir plusieurs fois pour apprendre à placer certaines limites.
Il y a plein de situations où, par inexpérience, naïveté ou vulnérabilité une personne peut être abusée et accepter certaines conditions et retrousser ses manches. Le propre de la prostitution c’est d’acheter le consentement. Les esclaves sont généralement entièrement dévoués, c’est d’ailleurs le sommet de l’aliénation quand l’aliéné s’empresse volontairement et à corps perdu pour son bourreau.
Je ne dis pas que Jérôme est dans une situation d’esclavage ou de prostitution, je donne des exemples assez forts et suffisamment évidents pour rappeler que l’empressement, la volonté et l’acceptation d’une situation n’a pas de pouvoir sur le fait qu’un abus n’en soit pas un. Un bourreau n’est jamais blanchi par la soumission de sa victime.
Tu dis que tu as du mal à comprendre les critères qui me permettent de tracer une ligne rouge, mais si tu considères que le fait d’accepter les conditions et se retrousser les manches est un critère de discernement de cette ligne rouge, il est en effet possible de passer à côté de certaines limites. Certaines lignes rouges à ne pas franchir sont souvent cachées loin derrière l’acceptation, c’est à dire que l’acceptation peut signifier que ces lignes rouges sont déjà franchies, et non pas que ce ne sont pas des lignes rouges.
On ne discerne pas les limites au regard de l’acceptation car il faut précisément discerner les limites pour savoir ne pas accepter ce qui n’est pas juste et savoir accepter ce qui est juste.
ce commentaire est sous licence cc by 4 et précédentes
[^] # Re: Mal
Posté par Thomas Debesse (site web personnel, Mastodon) . En réponse au journal En finir avec CSV ou Excel pour échanger des données. Évalué à 7.
Je crois que tu confonds format de la table pour extraire convenablement les champs, et le format du champ pour interpréter convenablement les données.
Par exemple il me semble que wordpress met du json dans des cellules mysql (ou un autre format sérialisé). Quelqu’un a montré ici un exemple de CSV embarquant du CSV dans des champs. Le format des numéros de téléphones, des données géographiques, les unités et précision de tes
chiffresnombres, c’est un format de champ.Tu peux très bien imaginer stocker un document odt dans une cellule, tu peux spécifier que ton format est CSV ou Json ou ASCII delimited machin, et spécifier que pour les documents odt ils doivent être encodés en base64 sans saut de ligne.
Et pour l’ordre des colonne et autre choses comme ça, c’est une information supplémentaire qui n’est pas vraiment propre au format de la table.
En gros tu dois documenter :
Faut pas tout mélanger !!! Au final, tu auras une description de format qui fera appel à plusieurs standards. Mais, ce format final, ce ne sera pas CSV, JSON ou ASCII delimited machin.
De la même manière que l’ODT est un format qui fait appel à plusieurs formats : PKZIP, XML et d’autres pour chaque besoin. On peut décider d’un format d’échange qui utilise XML pour distinguer les champs quel que soit le contenu, et décider que le champ date sera sous la forme normalisée YYYY-mm-ddTHH:MM:SS (il faudra donc deux parseurs, mais ce n’est pas un problème). Tu peux pas demander à XML de prendre en charge n’importe quoi. Ce ne serait pas XML ton format, XML serait alors un des formats utilisés dans ton format final.
Pour revenir au journal, quand par exemple Excel essaie d’interpéter des valeurs dans une table alors que l’utilisateur avait simplement l’intention d’afficher proprement des lignes et des colonnes, Excel il prend le risque de détruire des données. Parce que le format de la structure et le format du champ sont deux choses différentes.
ce commentaire est sous licence cc by 4 et précédentes
[^] # Re: JSON? YAML?’
Posté par Thomas Debesse (site web personnel, Mastodon) . En réponse au journal En finir avec CSV ou Excel pour échanger des données. Évalué à 6.
Ah oui, ça aussi… Tu connais Marcus Tullius ? Il est plus connu sous le nom de… « Cicéron ».
En fait, « Cicéron » est un surnom. Les romains avaient en gros un prénom, un nom de famille, et un surnom, le surnom pouvant être hérité, c’est un surnom de famille… « César » et « Auguste » font partie de ces surnoms célèbres, que l’on peut associer pour plus de swag : César Auguste, ça en jette !!!
Ah, et il y a aussi les cultures qui forment le nom de famille par le prénom du père. En gros, si tu as Martin qui a un fils qui s’appelle Jean qui a un fils qui s’appelle Michel, Jean s’appelle Jean Martinfils, et Michel s’appelle Michel Jeanfils (les personnes d’origine nordique avec des patronymes françisés en machin-son, c’est ça). Quelqu’un de cette culture pourrait typiquement penser que demander le prénom de la personne et le prénom de son père serait suffisant, sans demander de nom de famille du tout puisque ça n’existe pas, non ?
Ah au fait, pour revenir au surnom, Cicéron c’est pour « pois chiche ». Oui, le grand Cicéron était surnommé « pois chiche », je crois que c’était hérité en fait.
Bref, quand on appelle le roi « Louis le gros », son surnom fait véritablement partie de son identité…
Et quand on écrit en 2020 : Thomas “illwieckz” Debesse, on n’est pas très original en fait…
ce commentaire est sous licence cc by 4 et précédentes
[^] # Re: JSON? YAML?’
Posté par Thomas Debesse (site web personnel, Mastodon) . En réponse au journal En finir avec CSV ou Excel pour échanger des données. Évalué à 6.
Exactement, par exemple quand j’ai vu certains répondre que conserver l’ordre du dictionnaire est inutile “par principe” parce que forcément, par principe il n’y aurait aucun besoin pour cela… J’ai immédiatement pensé que ces personnes ne savaient pas vraiment ce que c’était de stocker des fichiers dans un dépôt (git ou autre chose).
Il est très important de pouvoir conserver l’ordre des données, ou de déterminer cet ordre, même si cet ordre n’a aucune sémantique pour les données elle-même. C’est important parce qu’il devient alors très aisé de versionner. Au delà de fichier de paramétrages dans git, va versionner un csv de millier de lignes si elles sont mélangées… alors que si l’ordre est conservé, un simple outil générique comme
diff
te sortira les différences en un temps record. Idem avec json, xml et je sais pas quoi.La possibilité de conserver l’ordre est importante. J’ai remarqué que j’utilisais énormément
OrderedDict
dans Python, et quand il s’agit de traiter des données extérieures (pas des dictionnaires intégrés au code), j’ai remarqué que j’utiliseOrderedDict
de manière écrasante, par nécessité.C’est d’ailleurs pourquoi par exemple quand je traite du TOML en python, j’utilise pytoml au lieu de python-toml. Je ne sais pas où ça en est maintenant, mais quand j’ai commencé à travailler sur Urcheon (un outil pour construire des dépôts de données, en gros un CMake mais pour des images, du son et des modèles 3D), seul pytoml permettait de spécifier le type de dictionnaire et donc de sortir un fichier de configuration qui conservait l’ordre de l’entrée, ou encore… très important dans ce cas, de traiter les opérations dans l’ordre de l’entrée… Je lis maintenant que pytoml est déprécié et recommand python-toml, il faudra que je réévalue python-toml et voir s’ils ont enfin implémenté la possibilité de forcer le constructeur de dictionnaire…
ce commentaire est sous licence cc by 4 et précédentes
[^] # Re: Enpaquetage dans les distributions GNU/Linux
Posté par Thomas Debesse (site web personnel, Mastodon) . En réponse à la dépêche Unvanquished : maintenant nous sommes libres !. Évalué à 10. Dernière modification le 05 octobre 2020 à 23:32.
Pour Arch, il y a effectivement un paquet AUR qui est maintenu par Viech, un des autres membres du triumvirat à la tête du projet Unvanquished.
Pour Debian, le dépôt fournit un dossier
debian/
que j’ai corrigé cette année. Donc techniquement, la connaissance pour empaqueter chez Arch et Debian existe. Mais c’est tout.Je ne pense pas que le projet va dépenser de l’énergie à empaqueter pour les distributions par principe, c’est un métier à part entière. Si quelqu’un du projet (comme Arch) c’est son initiative. Dit autrement, si ces paquets sont bienvenus, nous sommes alors à la recherche de contributeurs dans ce domaine.
Le projet fournit un programme (appelé actuellement « updater » par manque d’imagination) qui est pensé comme le point d’entrée du jeu. Il agit comme un splash screen évolué qui peut annoncer au joueur la présence d’un nouvel article sur le blog du jeu, la présence de mise à jour, et opérer l’installation de la mise à jour elle-même.
Ce qui serait vraiment bienvenu, c’est une alternative qui ait la même ambition d’universalité que ça. Quelque chose comme Snap ou Flatpak (avis personnel pour des raisons qui sont sans rapport avec Unvanquished et que je peux développer, ma préférence va à Flatpak).
Le besoin est réel. On vient tout juste ces dernières semaines de découvrir que notre version actuelle, sortie en 2018, ne tourne plus sur les distributions les plus « fraîches », que ce soit les « rolling relase » comme Arch, les préversions comme Debian testing ou les « cutting edges » comme Fedora 33, ça ne marche plus et c’est vraiment tout récent. On ne sait pas quelle est la cause, mais le binaire segfault quasi immédiatement au démarrage, sans autre forme de procès. Avec les mises à jour progressives des distributions, ce binaire ne tournera simplement nulle-part à moyen terme. Pour pallier à ce genre de problème qui survient sans prévenir, un paquet Mageia ou OpenSuse ou Debian n’est d’un intérêt que… très limité. Là concrètement si on avait déjà un Flatpak de prêt, ça satisferait l’écrasante majorité de ceux qui rencontrent le problème.
Donc voilà, vous savez faire un Flatpak ? Vous voulez faire entrer votre nom dans l’histoire d’Unvanquished ? Viendez !
Par ailleurs, concernant l’inclusion dans les distributions, la liberté c’est une chose mais ça ne fait pas tout. Un projet comme Unvanquished c’est compliqué à empaqueter selon les critères de Debian. Actuellement, à cause de la machine NativeClient, nous distribuons un SDK NaCl précompilé pour Linux, macOS et Windows. Celui-ci est téléchargé par CMake lors de la compilation du jeu. Ça ne va pas faire plaisir à Debian. =)
Compiler quelque chose comme NaCl c’est énorme, c’est bien plus complexe que compiler le moteur Dæmon ou le jeu Unvanquished : il faut compiler LLVM etc.
Ça changera peut-être avec Wasm. Le SDK de Wasm n’est probablement pas moins complexe à construire que celui de NaCl, mais on peut s’attendre à ce que les distributions le fournisse à moyen terme.
Par ailleurs, pour parler de Debian… tu peux regarder le ticket pour l’inclusion de Xonotic qui est ouvert depuis le 23 octobre… 2011.
Xonotic est entièrement libre, GPLv2+ des pieds à la tête, moteur, jeu et données artistiques. C’est pas pour autant empaqueté dans Debian, presque dix ans plus tard.
Ce ticket Xonotic chez Debian est parti dans tous les sens, par exemple certains ont commencé à parler de recompiler les maps. Y a un moment ça va trop loin. Oui les sources des maps sont fournies, oui les sources du compilateur de map sont fournies (et c’est pareil pour Unvanquished, contrairement à Tremulous qui ne fournissait pas les sources de nombre de ses maps), mais « compiler une map », c’est entre autre faire tourner un traceur de rayon pendant des heures, et en 2011, le faire pour l’intégralité des cartes de Xonotic était probablement une affaire de plusieurs jours…
De plus, il est vraiment important que les données des joueur soient strictement identiques au bit près à celles du serveur, et c’est pas seulement pour des raisons de prévention de la triche, mais c’est aussi le moyen pour le serveur de s’assurer que le joueur est équipé correctement pour pouvoir jouer sur le serveur, et c’est aussi le moyen de sélectionner les bons fichiers s’il y a un doute. Obtenir une reproductibilité sur les données, c’est un projet plus grand que le projet Unvanquished, ça demande éventuellement d’auditer et corriger tous les outils mis en œuvre, jusqu’au convertisseur de format d’image et je sais pas quoi, dès lors qu’il y a une transformation. Perso j’aimerai que ce soit possible, mais l’objectif réaliste que je poursuis c’est que déjà, n’importe qui puisse construire le jeu intégralement, code et données. Et ça c’est déjà possible. En gros ça signifie que n’importe qui peut produire la prochaine version d’Unvanquished sur son ordinateur. Ce ne sera pas égal bit à bit à ce qu’obtiendrait son voisin si son voisin le ferait, mais l’expérience serait exactement la même et complète.
Bref, on est loin de satisfaire à toutes les ambitions idéologiques. Mais techniquement n’importe qui peut produire le jeu intégralement sur sa propre machine, et techniquement n’importe qui peut déjà empaqueter Unvanquished en se contentant de reprendre les fichiers DPK tels quels.
Et puis si on regarde bien le ticket Xonotic dans Debian, le plus gros problèmes n’est pas tant ceux qui partent dans tous les sens et dont il faudrait calmer les ardeurs, mais tout simplement l’absence de contributeur, l’absence de celui qui fait le boulot.
Les fichiers DPK sont les archives qui contiennent les données du jeu. Un des problèmes difficiles à résoudre est que l’un d’entre eux embarque le code du jeu lui-même, et pas que des données.
Donc tout ça dépend du niveau de concession acceptable par une distribution. De plus, autant une distribution comme Debian est exactement ce qu’il faut pour installer un système Linux pour un serveur ou un bureau, autant ce n’est pas forcément son rôle de distribuer Unvanquished en particulier. Si Debian le fait tant mieux, si Debian ne le fait pas, Debian n’est pas en faute.
Un Flatpak pour commencer serait vraiment super.
ce commentaire est sous licence cc by 4 et précédentes
[^] # Re: Avantages pour les autres projets
Posté par Thomas Debesse (site web personnel, Mastodon) . En réponse à la dépêche Unvanquished : maintenant nous sommes libres !. Évalué à 9.
Du plus simple au plus complexe à décrire…
Pour UnrealArena, c’est un projet ex nihilo, il n’y a pas de portage depuis un autre moteur. C’est le moteur qui a été choisi par ce projet et c’est comme ça.
Pour Smokin'Guns, il se trouve que Smokin' Guns est, comme Tremulous, un mod de Quake3 devenu standalone. On sait qu’un portage depuis le moteur Quake 3 vers Dæmon est possible: Unvanquished l’a fait. Il est assez naturel pour un projet basé sur les technologies de Quake 3 qui voudrait se réinventer un peu de lorgner du côté de Dæmon. Les données utilisent les mêmes formats, avec les mêmes outils pour les gérer. Dæmon apporte quelques changements par-dessus et autour de ces formats parce qu’avec des décennies de recul on sait ce qui pouvait être mieux pensé, mais même quand la compatibilité est cassée pour faire mieux, porter les données de l’un à l’autre n’est pas très compliqué.
Au final Dæmon est un moteur qui est réellement utilisé par un jeu et qui est maintenu. Un projet comme ioquake3 apporte de nouvelles fonctionnalités, mais elles ne sont pas vraiment éprouvées parce que la vocation première d’ioquake3 est de faire tourner Quake 3 sans le casser. Ça veut aussi dire qu’ioquake3 ne peut pas corriger certains défauts de conception.
Par exemple ce que je vais dire pourra paraître surprenant et à contre-courant des présupposés, mais Quake3 n’as pas vraiment été pensé pour être “moddé”, il a été pensé pour être mis à jour facilement. La nuance, c’est que les mécanismes utilisés par les “moddeurs” sont des mécanismes qui permettent à l’éditeur du jeu de modifier son propre jeu pour l’améliorer, distribuer ses mises à jour, mais ces mécanismes ne sont pas pensés pour isoler les modifications du jeu original. N’importe quel serveur malintentionné peut distribuer un fichier de mise à jour qui casse le jeu tant que ce fichier n’est pas supprimé manuellement par le joueur (s’il l’identifie). Dæmon a amélioré le format des archives à la base du système de fichier virtuel du jeu en ce sens par exemple.
Par ailleurs, le moteur est juste plus avancé dans plein de domaines, notamment graphique.
Pour Xonotic, la raison n’est pas « plus beau ». En termes de résultat final (ce qui est affiché à l’écran), Dæmon est encore un peu en retrait de Darkplaces (le moteur actuellement utilisé par Xonotic. Pour être au même niveau il faut réparer les effets d’eau et implémenter les lightmaps dans l’espace sRGB. Par ailleurs Darkplaces est encore un peu plus performant que Dæmon. DarkPlaces a l’avantage d’être bien plus mature et éprouvé, 3D Realms a même sorti un jeu dessu en 2020: Wrath: Aeon of Ruin.
Mais DarkPlaces est un vieux cheval. C’est initialement un moteur pour faire tourner Quake 1, et aucune modification qui pourrait casser Quake 1 ne sera implémentée. Dans DarkPlaces, les jeux sont codés en QuakeC, une espèce de langage dédié qui ressemble un peu au C, et tournent dans une machine virtuelle maison communément dénommée Q1VM. C’est un langage et un environnement très spécifique, avec des tas de vieilleries, de limitations, et de bizarreries.
Le moteur de Quake 3 avait fait le choix de partir sur du C pour le code des jeux, du véritable C, mais compilé avec un compilateur spécifique (et non-libre, LCC) dont les binaires tournaient sur une machine virtuelle maison (QVM). C’est déjà énorme par rapport à la Q1VM et le QuakeC. Dæmon est allé plus loin. Le problème de la QVM est que là encore, c’est une technologie spécifique, on est donc loin des performances que peut permettre l’état de l’art actuel, même s’il faut le reconnaître, c’est tout de même pas mal. L’autre problème de la QVM c’est que si c’est du vrai C, c’est du C assez ancien qui compile avec un compilateur ancien et limité. On oublie tous les progrès sur les compilateurs qui ont pu être fait en 20 ans, on oublie la réutilisation de certains codes en C écrit depuis qui ne seraient tout simplement pas compilable sur LCC, etc. Sachant que pour conserver des fichiers sources commun entre le moteur et le jeu, le moteur en subit des limitations
Dæmon prend en charge le même C++ dans le moteur et le jeu. La machine virtuelle actuelle est NativeClient (NaCl), maintenant que celui-ci est déprécié au profit de WebAssembly (WASM, le mal nommé, qui n’est pas du tout spécifique au web), nous avons un plan de migration vers celui-ci, mais jusqu’à très récemment d’après les spécialistes, WebAssembly n’était pas encore prêt pour nos besoins. À suivre…
Le but de Xonotic serait donc de s’affranchir de DarkPlaces. Il y a plusieurs expérimentations. Celle qui donne des résultats déjà visibles est une espèce de glue qui en réalité implémente une Q1VM par-dessus NaCL. L’idée serait de porter le jeu en Quake C d’abord, puis de l’améliorer par partie dans un autre langage si j’ai bien compris. Actuellement tout ce qu’on peut faire avec ça c’est se ballader dans les maps et c’est tout. C’est une démo technique, une preuve de concept.
J’ai vu passer deux projets de transpileurs. L’un qui transpile du code vers du C++ mais sans tenir compte du fait que ce soit lisible à la sortie. L’idée serait là aussi de porter petit à petit le code tout en transpilant ce qui n’est pas porté, si j’ai bien compris.
Un autre projet plus ambitieux est un projet qui vise à transpiler le code QC vers du rust directement exploitable.
Tout ça ce sont fondamentalement des travaux de recherche en fait. Le futur appartient aux audacieux, aux persévérants, et aux chanceux qui survivent aux chauffards.
Il est tout à fait possible que Xonotic reste sur DarkPlaces encore longtemps.
Il y a des choses intéressantes à lire à ce sujet ici :
https://gitlab.com/xonotic/xonotic/-/issues/244
Et là:
https://gitlab.com/xonotic/daemon-glue/-/issues/1
De ce que je sais, même si Dæmon est un peu à la traine derrière Darkplaces concernant certains effets graphiques (mais pourrait être en avance sur d’autres, mais pour Xonotic forcément l’éventuel « plus » ne peut pas se voir), Dæmon aurait une architecture plus moderne sur le plan du moteur de rendu. L’idée serait donc de bénéficier de ce que DarkPlaces n’a pas en ajoutant ce qui manque a Dæmon, sur une base déjà plus accueillante.
Il se trouve que DarkPlaces a implémenté nombre de technologies de Quake 3: le format des paquets, le format des maps, et partiellement le format des matériaux. Xonotic a donc des données qui se chargent à 90% dans Dæmon sans trop pousser. Ceci est vraiment important pour Xonotic car avec 19 ans d’histoire (en comptant Nexuiz) ça fait plusieurs milliers de cartes communautaires dont il serait dommage de casser la compatibilité.
Et globalement, derrière tout ça, il y a l’idée d’aller plus loin ensemble.
Par exemple revient parfois la discussion de l’éventualité d’intégrer le moteur graphique de Dæmon dans ET:Legacy, mais seulement la partie rendu graphique parce qu’ils doivent rester binairement compatible avec le jeu Wolfenstein: Enemy Territory. Ce serait là aussi pour éviter la dispersion. Mais comme beaucoup de choses ce sont des idées qui flottent au-dessus de nos têtes et on verra bien dans le futur ce qu’il en deviendra…
Les communautés de joueurs ne se mélangent pas vraiment, mais plusieurs développeurs ont un pied dans plusieurs projets. Et personnellement je travaille beaucoup à entretenir le réseau. Je pense que c’est vraiment ce qui me tient le plus à cœur : jeter des ponts et rassembler. J’essaie de faire ce qui est à ma portée. =)
ce commentaire est sous licence cc by 4 et précédentes
[^] # Re: EDF
Posté par Thomas Debesse (site web personnel, Mastodon) . En réponse au journal Hégémonie et navigateurs. Évalué à 5.
Obsolescence opportuniste =)
ce commentaire est sous licence cc by 4 et précédentes
[^] # Re: Firefox a eu sa chance par le public
Posté par Thomas Debesse (site web personnel, Mastodon) . En réponse au journal Hégémonie et navigateurs. Évalué à 9.
C’est tout de même un gros problème : si les développeurs d’application utilisant des framework web ou intégrant des technologies web et développeurs de sites webs ont toujours sous les yeux un moteur hérité de Webkit et que Safari, Opera, Chrome et Edge ont un moteur hérité de Webkit, alors la nécessité de tester Firefox prend des airs de développement spécifique et les pratiques de développement se modèlent naturellement autour de bugs pris pour des fonctionnalités.
Aussi, tu perds les développeurs qui intègrent le moteur et donc qui connaissent ne serait-ce qu’en surface une partie de la mécanique interne.
Personnellement je suis repassé de Epiphany à Firefox quand Epiphany est passé à Webkit, et tant pis pour l’intégration du trousseau des mots de passe. Et entre nous depuis 2008 EpiphanywWeb n’a toujours pas réussi à redevenir aussi fonctionnel et stable que la version gecko de l’époque.
Si vous n’êtes pas capable de nommer une seule application embarquant Gecko (en excluant celles dérivées du projet Mozilla comme BlueGriffon), dites-moi comment trouver des développeurs connaissant Gecko. Super l’écosystème ! Tout seul on va plus vite, ensemble on va plus loin.
Personnellement j’en connais qu’une seule, avec un public de niche, et qui ne fait même pas partie des logiciels installés sur mon ordinateur : Xiphos. Je ne sais même plus comment je sais que c’est Gecko qui est utilisé.
Toutes les autres applications qui embarquaient Gecko et que je connaissais ont toutes migrées sur Webkit. Maintenant que Mozilla vire 250 personnes, comment tu recrutes une communauté pour prendre le relai quand pas même la surface du moteur est connue ?
ce commentaire est sous licence cc by 4 et précédentes
[^] # Re: User agent...
Posté par Thomas Debesse (site web personnel, Mastodon) . En réponse au journal Hégémonie et navigateurs. Évalué à 10.
Il faudra m’expliquer en quoi ce n’est pas la description d’un complot : ils ont des intérêts communs, et en travaillant à ces intérêts (ou ne travaillant pas aux autres intérêts) chacun y trouve son compte.
Un truc qui m’étonne c’est que lorsqu’on décrit des choses comme ceci, ou une entente sur les prix, ou encore l’obsolescence programmée, il y en a souvent un ou deux pour venir dire « mais il n’y a pas de feuille de route », etc. Mais il n’y a pas besoin de faire des rendez-vous dans des caves pour trouver un intérêt à satisfaire un autre qui trouve un intérêt à te satisfaire, pas non-plus besoin de mémos secrets pour sonder le marché et s ’aligner sur les prix de ses concurrents en faisant exprès de ne pas casser les prix si ce serait une logique perdante à moyen terme, tout comme il n’y a pas besoin de programmer l’obsolescence sur un calendrier pour se satisfaire d’un sous-traitant médiocre dont l’intégration des composants stimule, oh surprise, le cycle de renouvellement des produits chez les clients.
Il faut peut-être cesser d’agiter le foulard rouge du complot de roman d’aventure, au risque de systématiquement abdiquer devant l’opportunisme.
Que le complot soit le fruit d’une confrérie secrète ou le cercle des opportunistes dispersés, le résultat est le même. Le mal se traite quelque soit l’intention. Si l’on se coupe le doigt en coupant des carottes, on ne va pas refuser de traiter la coupure au motif que la coupure est opportuniste et que l’intention de se couper le doigt n’a pas été démontrée par la découverte d’un parchemin médiéval décrivant les circonstances et l’intention.
Un complot est une entente secrète aux effets négatifs, le « tu vois ce que je veux dire » ou la simple omission entendue est une forme d’entente informelle. On condamne bien la « non-assistance à personne en danger », l’exemple type de l’omission entendue au service d’un profit quelconque (ne serait-ce que la simple paresse).
Quand Georges Bernanos écrit que le mode moderne est une « conspiration universelle contre toute espèce de vie intérieure » dans La France contre les robots, personne ne suppose un seul instant qu’il suppose un cercle d’initiés qui ne serait-ce qu’imaginent en conscience les effets qu’il décrit. Même pas besoin de plan, même pas besoin d’imaginer les effets, même pas besoin de les rechercher, même pas besoin d’en avoir conscience. L’opportunisme, la lâcheté et l’égoïsme sont des conditions suffisantes à la conspiration dès lors qu’il existe plus d’une personne à pouvoir s’y abaisser.
Pas besoin de procès d’intention quand le conflit d’intérêt est avéré.
ce commentaire est sous licence cc by 4 et précédentes
[^] # Re: PWA FTW!
Posté par Thomas Debesse (site web personnel, Mastodon) . En réponse au journal Moins d'applications sur smartphone.. Évalué à 5. Dernière modification le 29 septembre 2020 à 04:34.
J’imagine que PWA c’est Progressive web application ?
ce commentaire est sous licence cc by 4 et précédentes
[^] # Re: Corriger le journal?
Posté par Thomas Debesse (site web personnel, Mastodon) . En réponse au journal Le jeu d'horreur Amnesia publié sous GPLv3. Évalué à 9.
Euh non je ne crois pas que Zenitram confonde code du jeu et moteur dans son commentaire. Il s’agit plutôt d’ensembles et il dit bien « le jeu » qui est l’ensemble supérieur.
Le code et les données sont deux ensembles qui appartiennent à un ensemble plus large :
Dans le cas où l’on peut distinguer le code du moteur et le code du jeu, on peut faire ce schéma :
Parler du « jeu » sans plus de précision désigne l’ensemble supérieur.
Dans le cas d’Unvanquished, l’ensemble supérieur avait l’ambition d’être libre, le code du moteur l’était, le code du jeu l’était, mais bien qu’il y avait une volonté d’avoir également des données libres, certaines données avaient été acceptées qui ne satisfaisaient pas à cette exigence. Pour que l’ensemble supérieur soit libre il a fallu corriger la situation sur les données.
Le travail de longue haleine que le projet Unvanquished a fait pour obtenir cette liberté était précisément fait pour marquer une différence très nette avec ce que vient de faire Frictional Games. Note que je trouve très bien ce que vient de faire Frictional Games, ce n’est simplement pas la même chose.
Je ne vois pas trop pourquoi ils devraient faire des circonvolutions dans leurs écrits, qu’ils le disent clairement : ils ont libér" le code. C’est déjà très bien, c’est ce que faisait Id Software en son temps : Quake 3 Arena n’est pas un jeu libre mais son moteur et son code de jeu le sont, ça a permis :
Si Id Software n’avait pas libéré le code de ses moteurs et de ses jeux, comme vient de le faire Frictional Games, il n’y aurait pas le moteur DarkPlaces (dérivé de Quake 1) et le jeu Xonotic, il n’y aurait pas le moteur Dæmon (dérivé de Quake 3) et le jeu Unvanquished. Il n’y aurait pas le jeu UFO:AI, le jeu The Dark Mod serait toujours un mod sans ambition qui ne tournerait que sur une antique version 32 bit du moteur.
Donc c’est énorme ce que Frictional Games vient de faire. Le jeu “Amnesia” n’est pas libre, mais j’ai envie de dire… et alors ? Ils gagneraient à être plus explicite sur ce qu’ils libèrent. Même quand on n’a pas tout il faut être fier de ce que l’on a car c’est déjà un tout : c’est tout ce qu’on a.
Il serait plus efficace pour Frictional Games de dire quelque chose comme ceci :
Ils expliquent dans leur article qu’il existe des milliers de mods et addons pour leur jeu, alors ils savent très bien tout ça.
En fait tout ce qui leur manque est un titre complet :
Avec ce titre tout aussi efficace mais surtout plus explicite, certaines parties de leur article serait plus aisées à rédiger, la partie qui précise « Think of the release as “free speech”, not “free beer”. » devient assez inutile car elle est surtout rédigée pour corriger les incompréhensions induites par leur titre maladroit.
ce commentaire est sous licence cc by 4 et précédentes
[^] # Re: "Market Research Report" ou comment faire un business juteux à partir de rien…
Posté par Thomas Debesse (site web personnel, Mastodon) . En réponse au lien la PDM de linux pourrait passer de 4 à 15 milliard de USD. Le jeu serait un levier.. Évalué à 5. Dernière modification le 26 septembre 2020 à 03:44.
Ne rigole pas si vite, avec un réseau de malwares efficace je ne vois pas pourquoi il ne serait pas possible de sortir à la fois la liste des programmes installés et l’adresse mail la plus utilisée sur le même poste.
Il peuvent aussi distribuer GIMP sur des sites douteux en échange d’une adresse mail. Le web est plein de logiciels libres distribués par des sites douteux qui les présentent comme des alternatives à des trucs proprios (voire les présentent comme les trucs proprios eux-même), distribués contre telle ou telle action, hébergés avec des pubs, empaquetés avec des malwares…
ce commentaire est sous licence cc by 4 et précédentes
[^] # Re: Cela serait si difficile ?
Posté par Thomas Debesse (site web personnel, Mastodon) . En réponse au journal Mon chemin vers la liberté informatique. Évalué à 8. Dernière modification le 24 septembre 2020 à 06:03.
Pour ceux qui voudraient savoir quel est le documentaire dont il est question sans cliquer sur le lien NetFlix, c’est « Derrière nos écrans de fumée ».
La fiche dit :
ce commentaire est sous licence cc by 4 et précédentes
[^] # Re: Graphisme / RTX
Posté par Thomas Debesse (site web personnel, Mastodon) . En réponse à la dépêche Unvanquished : maintenant nous sommes libres !. Évalué à 5.
Je me rends compte que cette partie pourrait être mal comprise :
Les lightmaps sont implémentées, mais pas la variante sRGB.
ce commentaire est sous licence cc by 4 et précédentes
[^] # Re: Graphisme / RTX
Posté par Thomas Debesse (site web personnel, Mastodon) . En réponse à la dépêche Unvanquished : maintenant nous sommes libres !. Évalué à 10.
Sans parler de RTX mais de « Raytracing » en général, rien n’empêche que ce soit implémenté, ce qu’il faut pour ce faire, c’est que quelqu’un le fasse. Et en fait ce n’est pas spécifique au tracé de rayons, c’est spécifique à toute fonctionnalité graphique qui pourrait être implémentable.
Les développeurs de moteur de jeu sont une espèce très rare et précieuse, et qui se raréfie. Les spécialistes des moteurs de rendu sont encore plus rare. Il y a plusieurs raisons à cela et je ne suis pas certain de tout savoir, mais déjà ce sont des compétences très pointues, et qui sont de plus en plus pointues (et qui sont donc de plus en plus sélectives). Si on regarde le marché du jeu vidéo, on voit surtout de très très grosses entreprises qui produisent des moteurs de jeu. Cette concentration n’est d’ailleurs pas spécifique au jeu vidéo : IBM rachète Red Hat, Microsoft rachète Zenimax (et donc id Software). Je ne sais d’ailleurs pas si c’est une sorte de bulle qui va éclater, ou si c’est l’avènement d’un monde cyberpunk où tout est entre les mains d’une poignée d’acteurs, mais c’est le constat pour le jour actuel.
Dans le domaine des moteurs de jeu et peut-être plus encore de moteur de rendu graphique, l’artisanat est devenu une curiosité. Les rares ressources sont déjà bien exploitées par une poignée d’acteurs. C’est la dèche. Donc bref, la seule chose qui empêche que tel ou tel truc sexy soit implémenté c’est tout simplement les limites de la main d’œuvre. Pour Unvanquished/Daemon on a la chance d’avoir quelques développeurs qui connaissent le domaine.
Un projet comme Unvanquished/Dæmon c’est un projet qui avance au rythme des disponibilités et compétences de chacun.
Pour voir implémenté du raytracing, du vulkan ou toute autre chose à la monde il faut que quelqu’un à qui c’est à la portée de le faire, s’y mette. 😁
En fait, un de nos développeurs, Fuma, a déjà un projet de tracé de rayon qui semble fonctionnel même si incomplet (quelques copies d’écran ici, l’absence de texture est volontaire puisque ce qui est comparé sont les lumières et les ombres). Je n’ai aucune idée des performances. Par rapport à ce projet, il est du genre à venir sur le chat une fois l’an avec des nouvelles. Je ne peux donc pas dire si ça viendra un jour ou jamais. Ça dépend entièrement de lui en fait… Fuma fait partie des gens qui peuvent lire des papiers de recherche et produire quelque chose, tout en ayant une bonne connaissance de l’état de l’art actuel (je ne sais pas ce qu’il fait en dehors d’Unvanquished en fait).
Pour donner un exemple, de mon côté, j’ai fait un énorme travail de nettoyage de code (un autre effort de plusieurs années) qui, par réécritures et refactorisations successives ont conduit à supprimer 680 lignes tout en ne retirant aucune fonctionnalité, permettant de combiner plus de ces fonctionnalités, rende certaines fonctionnalités implémentables, et rend le code plus testé, rend la maintenance plus facile, et dont la conception du code empêchera certains bugs d’être introduit ou oublié d’être corrigé par inadvertance. Ce travail a fait passer le moteur Dæmon de la preuve de concept qu’était XreaL à quelque chose de propre sur ce plan, en corrigeant parfois des bugs qui avaient été introduit dans XreaL avant même la sortie standalone de Tremulous 1.1.0… Ce grand nettoyage fera, je l’espère, l’objet d’un autre article.
Mais faire cela pour moi a été essentiellement une forme de méta-programmation, il s’agissait de reformuler les chose, réorganiser le code, le découper, le factoriser, le dédupliquer, changer la façon dont il était appelé pour le rendre réutilisable. À aucun moment je n’ai vraiment touché aux formules mathématiques. Un autre spécialiste des moteurs de rendu, gimhael, a surtout contribué ces dernières années par des commentaires, des explications très précieuses, que du code. Cela a rendu ce travail de refactorisation et de nettoyage possible, mais pour implémenter de nouvelles fonctionnalité il faudra des commits de leur part. On verra bien ce que nous réserve le futur. 😃
Mais avant le tracé de rayon, il y a tout plein de choses sur lesquelles on peut agir et qui sont plus à la portée des contributeurs les plus actifs actuellement. Grâce à ce travail de refactorisation, le reliefmapping a été corrigé et est utilisable : aux artistes de fournir les fichiers qui vont bien pour en profiter. Le PBR (physical based rendering) a été activé pour toutes les surfaces, là encore c’est aux artistes de fournir les textures qui vont bien, avant cela, le moteur saura faire mais ne le fera pas. J’ai découvert que quelque chose d’encore inconnu assombri le jeu… Si je charge la même carte dans Dæmon avec la petite démo Xonotic, la luminosité est celle attendue, si je charge la même carte dans Dæmon avec le jeu Unvanquished, quelque chose l’assombri un peu… Nous avons donc un bug à trouver et corriger pour améliorer les choses ! Aussi, j’aimerai voire implémentée la prise des lightmaps sRGB. Les lightmaps sont des textures de lumières et d’ombres précalculées. Il s’agit là d’utiliser un format d’image non-linéaire qui privilégie les valeurs utiles l’œil (ce qui réduit les dégradés à grosse marche bien visible) et d’avoir des calculs qui sont plus proche de ce qui se passe physiquement. Avant même de faire du tracé de rayon, il serait bon d’avoir des formules qui soient plus proches des modèles physiques, et on n’a pas besoin de tracer des rayons pour ça. =)
Bref, ce sujet est dans ma liste des sujets dont j’espère pouvoir faire un article (comme annoncé à la fin de celui-ci), ce commentaire m’aura aidé à trouver un angle d’attaque et donné quelques idées quant au découpage de ses parties. 😉
ce commentaire est sous licence cc by 4 et précédentes
[^] # Re: Out of order
Posté par Thomas Debesse (site web personnel, Mastodon) . En réponse au journal Le début de la fin pour Intel ?. Évalué à 5.
En fait WebAssembly est mal nommé, il y a “Web” dedans parce que les premiers clients sont des gens qui font du web, ce sont eux qui poussent le plus. Il est prévu par exemple que pour Unvanquished nous passions de NaCl à Wasm pour le code du jeu qui peut-être téléchargé depuis un serveur, et qui doit donc tourner sur toutes les plate-formes supportées et dans un bac à sable. Native Client était une technologie précédent WebAssembly qui était initialement développée pour le navigateur Google Chrome, mais qui là encore, a pu servir en dehors du web.
Il y a plusieurs projets comme Wasmer, Wasmtime et d’autres pour faire tourner du code WASM sur n’importe quelle machine en dehors du navigateur. Il y a même un projet pour faire tourner du code Wasm directement dans le noyau.
Donc bref, mon commentaire n’enlève rien au tiens au contraire il l’appuie : c’est la tendance. Et en fait on retrouve ça plus loin que le web.
ce commentaire est sous licence cc by 4 et précédentes
[^] # Re: Distance entre l'oral et l'écrit
Posté par Thomas Debesse (site web personnel, Mastodon) . En réponse au lien Une "écriture excluante" qui "s’impose par la propagande". Évalué à 10.
Je ne savais pas la langue aussi sexiste, raciste et classiste =)
…ou bien peut-être faut-il questionner le règne du sentiment.
Il est difficile de trouver plus arbitraire et dictatorial que le sentiment. C’est peut-être là un problème essentiel : vouloir réinventer le monde, le langage et les relations sur la base de ce qu’il y a de plus arbitraire et dictatorial chez l’homme. :-/
ce commentaire est sous licence cc by 4 et précédentes
[^] # Re: Distance entre l'oral et l'écrit
Posté par Thomas Debesse (site web personnel, Mastodon) . En réponse au lien Une "écriture excluante" qui "s’impose par la propagande". Évalué à 9. Dernière modification le 20 septembre 2020 à 19:40.
Un bon exemple est le prénom Thomas qui est décliné au féminin au latin. Pourquoi ? Parce que la déclinaison latine est celle qui se termine en
-a
au nominatif. Ce prénom est « étranger » au latin, c’est un mot araméen qui signifie jumeau: Toma, donc pour conserver la prononciation du prénom un latin écrivait Thoma.Ce qui est amusant c’est que le
h
duTh
et les
viendrait d’une transcription du grec Thomas qui reprend la prononciation araméenne, alors que le mot grec « Didymos » était aussi utilisé (et latinisé) en tant que « Didymus » comme nom pour l’apôtre Thomas. Les latins n’ont finalement pas gardé Didymus ni une variante de geminus (le mot latin pour jumeau), alors que les latins ont traduit Kephas (pierre) en Petrus (pierre) pour conserver le sens du mot, alors qu’ils auraient aussi pu retranscrire kephas comme ils ont fait pour Thomas, mais il est vrai que conserver le sens du mot Pierre était essentiel sur le plan théologique.Bref, si tu lis ce commentaire, c’est que tu t’es encore perdu sur Internet !
ce commentaire est sous licence cc by 4 et précédentes
[^] # Re: Jeu de stratégie ‽
Posté par Thomas Debesse (site web personnel, Mastodon) . En réponse à la dépêche Unvanquished : maintenant nous sommes libres !. Évalué à 4.
Petite correction pour éviter des incompréhension :
ce commentaire est sous licence cc by 4 et précédentes
[^] # Re: Jeu de stratégie ‽
Posté par Thomas Debesse (site web personnel, Mastodon) . En réponse à la dépêche Unvanquished : maintenant nous sommes libres !. Évalué à 10. Dernière modification le 18 septembre 2020 à 09:29.
Je vais peut-être te surprendre, mais Unvanquished c’est la même mécanique de jeux que 0 A.D. :
Excepté que tu fais tout cela à la première personne, que chaque seconde compte et que c’est toi qui tiens le flingue ou l’outil de construction, que tous les personnages sont censés être de vrais joueurs à qui tu parles en vrai, et que les époques durent quelques minutes (et que tu peux régresser). C’est toi et tes équipiers qui construisez et réparez votre base, les poste avancés, placez vos machines d’extraction de ressources, qui gagnez votre solde, qui tenez le siège, et qui défendez la place forte. Plutôt que simplement donner des directives à des automates, tu dois faire avec les avis contradictoires, les paris gagnants et les erreurs des autres et tu dois gagner la confiance de vrais joueurs.
Unvanquished est un jeu de stratégie en temps réel en vue subjective. Ces trois points ne s’opposent pas. De même que le temps réel ne s’oppose pas à la stratégie (un jeu de stratégie n’étant pas nécessairement au tour par tour) le fait que le jeu se joue à la première personne n’est qu’une question de point de vue.
En fait le « jeu à la première personne » n’est pas vraiment un genre, c’est une modalité de jeu.
Tu as des jeux à la première personne où tu as une histoire et des niveaux à parcourir avec un début et une fin, en fait c’est le genre « livre dont vous êtes le héro » décliné à la première personne : Doom, Quake, GoldenEye 007, Half-Life, Halo, etc. Ils forment évidemment des sous-genres, en solo, en coopération, avec des éléments tactiques, mais le joueur déroule une histoire.
Tu as des jeux à la première personne où le but c’est de marquer le plus de points : Quake III Arena, Unreal Tournament, Xonotic, etc. T’es dans une arène, parfois seul, parfois en équipe. Toi ou ton équipe gagne en tuant le plus d’ennemis, en capturant le plus de drapeau, en restant le dernier en vie etc. Pas d’histoire, s’il y a des thèmes développés ce n’est que du décor. C’est le genre « balle au prisonnier », « chat » et ses variantes, ou… « capture du drapeau » (j’y ai joué en vrai dans mon enfance) etc. décliné en virtuel…
Tu as des jeux à la première personne où tu dois gérer des ressources, construire ta base, contrôler des territoires, le but c’est de mettre en échec l’équipe adverse. Unvanquished rentre dans cette catégorie. Tu as gagné le jeu quand tu as mis l’adversaire échec et mat : tu as gagné quand tu dénies à tous les joueurs de l’équipe adverse et en même temps la capacité de revenir en jeu.
Il y a bien d’autres genres et bien entendu les genres sont poreux et se mélangent. Des jeux comme Quake ont un mode multijoueur en arène. Un jeu comme Xonotic a un ensemble de jeu en local organisés en campagne, a des modes de jeu de contrôle du territoire, etc.
Le genre d’un jeu comme Portal c’est le puzzle. Dans portal, tu joues en temps réel à la première personne et tu as au premier plan une sorte d’arme qui permet de tirer des portails permettant de te déplacer ou interagir avec l’environnement pour résoudre des casse-têtes. C’est le même genre que le jeu Newton Adventure de devnewton< ou que le pousse-pousse bien physique. Quand je disais que les genres sont poreux, les jeux comme Doom, Duke Nukem, etc. en plus de développer le jeu de tir intègrent aussi des éléments de puzzle pour déverrouiller la progression ou des secrets à découvrir.
Un jeu comme Portal c’est 100% d’une infrastructure de FPS. Par exemple Quake3 intègre des portails et des armes, implémenter un clone de portal est une affaire de modification (et ça existe).
Les jeux comme DeFraG (implémenté dans Quake 3, ou son implémentation libre sur Xonotic dont j’avais parlé ici) utilisent 100% d’une infrastructure de FPS, mais ce sont des sports de courses sur des parcours complexes qui se complètent avec des gymnastiques spéciales (le même genre que le Parkour en fait).
Le FPS est un mode de jeu, pas vraiment un genre. Cette confusion vient des débuts du jeu vidéo où les FPS étaient nouveaux et qu’on y a vu un genre à part. Le jeu à la première personne n’est pas vraiment un genre, c’est un ensemble de modalités.
Dire que Unvanquished serait un jeu de FPS c’est comme dire que le Monopoly et les échecs c’est pareil : ça se joue sur un plateau avec des pions que les joueurs assis autour du plateau déplacent. En fait Unvanquished est sur le plan de la mécanique de jeu plus proche du Monopoly (gestion de ressources) et du jeu d’échec (infliger une situation sans issue, classes) que de Quake, mais plus proche de Quake quant à certaines modalités (pas de tour par tour, vue subjective).
En parlant de classe et les échecs, un jeu comme Team Fortress est comparable dans certaines mécaniques : tu as des classes de joueur qui ont des propriétés spécifiques (mouvements, armes) qu’il faut combiner, un autre jeu à base de classe comme Wolfenstein Enemy Territory ajoute aussi des élements de progression qui sont conservés entre les parties (grades).
Et pour faire un peu le tour des jeux de tirs… un jeu comme Time Crisis (“first person rail shooter”) c’est le genre du ball trap. Mettre le ball trap, les échecs, le monopoly, le pousse-pousse et le jeu du chat dans le même genre semblerait un peu large, c’est pourtant ce qui fut souvent fait avec les jeux à la première personne.
Bref, le fait qu’Unvanquished se joue en temps réel et à la première personne sont des aspects de ce jeu de stratégie.
Au-delà de la temporalité et du point de vue, Unvanquished c’est donc aussi, en plus des points déjà listés :
Techniquement, en tant que joueur, tu gères simultanément trois comptes : la monnaie (ou les points d’évolution) qui est propre à chaque joueur (qu’il est possible de transférer entre joueur selon la configuration du serveur), les points de construction (compte commun à l’équipe et en compétition avec l’équipe adverse), et le momentum (qui définit ta progression et les technologies qui te sont accessibles).
Se faire tuer par l’adversaire enrichit/nourrit l’adversaire, à la fois en monnaie mais aussi en progression, et bien sûr tu ne récupères pas la monnaie que tu as dépensé pour t’équiper et ton équipe perd en progression. Se fait démolir une base coûte des points de construction à l’équipe qui ne seront jamais récupérés et réduit la progression de l’équipe, mais enrichit en monnaie et augmente la progression de l’équipe adverse qui peut se voir débloquer des technologies et devenir capable de se les payer.
Pour gagner il faut donc mettre l’équipe adverse en échec. Pour cela il faut parvenir à détruire les équipements qui permettent aux joueurs adverses de revenir en jeu lorsqu’ils sont morts, et bien entendu de les éliminer sans exception pour qu’ils ne les reconstruisent pas. Quand toi et tous tes coéquipiers sont bloqués dans la salle d’attente et que cette salle d’attente ne peut techniquement plus se vider, votre équipe a perdu.
Un jeu comme Unvanquished est très exigeant mentalement et physiquement. Une partie peut se terminer en 15 minute comme durer un peu plus d’une heure, heure pendant laquelle chaque seconde peut être décisive : tu dois concevoir les bases, les construire, les défendre, les reconstruire, élaborer des actions, attaquer, te replier, te cacher, te soigner, sauver ta peau, faire fructifier ton gain et l’investir intelligemment (que ce soit en monnaie ou en points de construction), retenir un assaut, tenir un siège.
Effectivement, si tu es incapable de jouer à un jeu en tir subjectif, tu auras peut-être du mal avec ce jeu : l’adresse au jeu de tir à la première personne est requise. Mais tu peux toujours t’essayer au rôle de celui qui construit les bases, pense les défenses, étend le territoire, etc. =)
Par exemple tu peux démarrer le jeu en local avec la carte « Plat23 » qui est assez indulgente envers les bots. Ajoute trois bots aliens, deux bots humains et rejoint l’équipe des humains. Prends le « Construction Kit » et essaie de déterminer la victoire. Ensuite fais l’inverse en rejoignant l’équipe des aliens en jouant en tant que granger sur cette même carte. Un objectif intermédiaire sera que ton équipe de bots atteignent un niveau suffisant pour que tu puisses évoluer et marcher sur les murs pour rendre ta base plus efficace. La troisième étape sera de jouer sur la carte Chasm en tant qu’humain avec l’outil de construction. Une équipe de bots humains ne survivent pas longtemps face aux aliens sur cette carte (cette asymétrie est spécifique aux bots qui ne sont pas si humains que ça…), tu dois pouvoir faire gagner ton équipe uniquement en construisant des infrastructures pour tes bots, mais tu seras très vite tenté de t’acheter un flingue. ;-)
Note que le jeu ne permet pas (pour le moment ?) de donner des ordres aux bots. Il y a déjà des mécanismes intégrés au jeu pour dire « attaquer ici », « défendre là », mais les bots ne les écoutent pas. Il faut dire que ce sont des pis aller, normalement le jeu se joue en équipes de vrais joueurs, c’est le but recherché. Si quelqu’un implémentait tout de même cela et mettait la caméra au-dessus de la carte… la comparaison avec un jeu comme 0 A.D. serait encore plus frappante.
Il serait tout à fait possible d’implémenter dans 0 A.D. un mode à la première personne jouée au niveau du sol où les personnages seraient d’autres joueurs.
À noter qu’un jeu comme Natural Selection qui se situe sur le même créneau qu’Unvanquished propose un rôle spécial où un des joueurs voit la carte de dessus et donne des ordres à ses coéquipiers. La différence avec un jeu comme 0 A.D. est donc que les petits bonshommes que tu vois courir sur la carte ne sont pas pilotées par des intelligences artificielles mais par de vraies personnes.
Bref, il est vrai qu’il est assez ennuyeux pour le cerveau de celui qui écrit de devoir rappeler le jeu à chaque dépêche. Je sais que c’est important et je dois me forcer. En particulier le fait de décrire le jeu comme un jeu de stratégie est le minimum vital que je rappelle.
Le point de vue du jeu (première personne) est vraiment moins important et il ne faut en parler que si l’élément stratégique est clairement énoncé d’abord, sinon le lecteur sera trompé et son appréciation sera erronée.
Même le fait de dire qu’Unvanquished serait un jeu de tir à la première personne avec des élements de stratégie serait mensonger. Unvanquished est d’abord un jeu de stratégie, et ce jeu de stratégie se joue à la première personne, en temps réel, avec des mécanismes de tir.
Lors de la sortie de Tremulous 1.1.0 en 2006 un lecteur avait commenté « [Ca ressemble beaucoup] a Nexuiz vous trouvez pas ? ».
Ce genre de première appréciation est vraiment problématique parce que oui à l’écran il y a un flingue au premier plan, mais ça ne définit pas un jeu ça, ça définit un point de vue. Les jeux comme Xonotic (successeur de Nexuiz) et Unvanquished (successeur de Tremulous) sont vraiment très différents. Les communautés de joueurs ne se mélangent d’ailleurs pas vraiment (ce qui n’est pas forcément vrai du point de vue des développeurs) : le public de Xonotic n’est pas nécessairement le public d’Unvanquished, comme quelqu’un qui joue à Unvanquished pourrait dire que les jeux comme Xonotic ne sont pas vraiment son genre de jeu. Les gens qui jouent aux deux sont surtout l’exception.
ce commentaire est sous licence cc by 4 et précédentes
[^] # Re: Development quote of the week sur LWN
Posté par Thomas Debesse (site web personnel, Mastodon) . En réponse à la dépêche Unvanquished : maintenant nous sommes libres !. Évalué à 7.
Ouah ! Bon, je ne savais même pas que ça existait, j’espère que ça veut dire que c’est bien ! =)
ce commentaire est sous licence cc by 4 et précédentes
[^] # Re: Religion
Posté par Thomas Debesse (site web personnel, Mastodon) . En réponse au journal [HS] Texte de l'appel du 14 septembre 2020. Évalué à 3. Dernière modification le 16 septembre 2020 à 14:13.
Si Mélenchon lisait le commentaire auquel tu réponds en associant Mélanchon, il s’étranglerait et dirait :
Parce que c’est bien connu, notre identité est dans la terreur.
C’est fou de voir avec quelle générosité tu attribues des comportements, des paroles, des intentions à des inconnus avec l’assurance de quelqu’un qui sonde les cœurs et les reins, alors que tu n’es même pas capable de situer dans son paysage politique un personnage aux positions pourtant très médiatisées et documentées.
ce commentaire est sous licence cc by 4 et précédentes
[^] # Re: Religion
Posté par Thomas Debesse (site web personnel, Mastodon) . En réponse au journal [HS] Texte de l'appel du 14 septembre 2020. Évalué à 4.
Donc pour résumer :
Précisément, ça marche aussi, c’est en fait la base argumentaire de mon discours. Si tu pensais me contredire c’est mal barré.
La souveraineté s’appuie sur la souveraineté de ses membres. Parce qu’un état souverain avec des citoyens sous tutelle c’est une dictature.
La subsidiarité et la souveraineté marchent ensemble. Une subsidiarité sans souveraineté est une bureaucratie, une souveraineté sans subsidiarité est une république bananière.
ce commentaire est sous licence cc by 4 et précédentes
[^] # Re: Religion
Posté par Thomas Debesse (site web personnel, Mastodon) . En réponse au journal [HS] Texte de l'appel du 14 septembre 2020. Évalué à 3. Dernière modification le 16 septembre 2020 à 13:35.
T’es tellement aveuglé par les épouvantails que tu agites que tu ne te rends même pas compte de ce que tu dis.
Merci, je m’étais retenu de la faire. Si tu penses contredire mon discours avec cette réplique, alors ton discours est invalide car fondé sur une supposition qui se révèle fausse.
La révolution française était un coup d’état bourgeois motivé par des intérêts privés. On est généralement complètement biberonné d’illusion à la con et de réécriture de vocabulaire. Par exemple sans porter de jugement, le concept de « domiciliation » est littéralement le même que celui du « servage », c’est simplement un nouvel emballage, la domiciliation comme le servage est simplement le concept d’un homme attaché à une terre administrée par une personne. Ce qu’on appelle « abolition » du servage n’a pas aboli le servage, elle en a fait un monopole d’état dont l’administration fut transférée au moment de la révolution française d’une personne physique vers une personne morale qui n’a de compte à rendre à personne et qui sert de paravent à des irresponsables (l’irresponsabilité est le mot employé dans notre constitution actuelle pour qualifier le président).
La révolution a écrasé les régions, les langues, les cultures. Comme le nazisme et le bolchevisme, la France révolutionnaire était une va-t-en guerre qui levait des centaines de milliers d’hommes pour écraser ses voisins de sa “lumière”. Les peuples qui se sont levés conter ces « levées » ont été massacrés, hommes, femmes, enfants, parfois des villages entiers. La révolution française et ses massacres légaux ont toujours servi de références et de modèle aux dictatures. Lénine surnommait la Volga « la petite Loire », en référence directe aux massacres de Nantes.
Tout comme les révolutionnaires français attachaient leurs victimes dans des barques qu’ils coulaient dans la Loire, les bolcheviques jetèrent depuis des péniches des milliers d’ouvriers une pierre au cou dans la Volga. L’Internationale a été composée sur l’air de la marseillaise, la mélodie que l’on connait actuellement est plus tardive.
Les valeurs de la république française sont « Liberté, égalité, fraternité ou la mort », c’est à dire que si un révolutionnaire considères que que tu n’es pas de son sang, que tu n’es pas de son parti, que tu ne te soumets pas à ses idoles tu n’as alors pas de liberté, tu n’es pas son égal, tu n’as pas ta place dans la société, et que tu dois mourir : ton sang impur doit rougir le sillon. C’est à ça que servait la guillotine : à ne laisser en vie que la fraternité de ceux qui se pensent égaux.
Pourquoi la Terreur révolutionnaire et le concept de terrorisme partagent le même mot ? À ton avis, pourquoi le régime fasciste italien était appelé fasciste ? parce que, comme la république française, il utilisait cet emblème des faisceaux que tu retrouveras sur ton passeport. Ça va, je continue ma lettre d’amour à la république française, xénophobe, terroriste, fasciste et génocidaire ? Ou bien ?
Tu es tellement aveuglé par tes épouvantails que tu en es ridicule.
La souveraineté n’est pas une affaire d’échelle. La souveraineté commence à l’échelle du foyer. C’est justement pour cela que parler de souveraineté européenne en voulant défaire les cellules de souveraineté sur lesquelles l’europe est constituée est… comment dire… un château de carte ?
Je serai moins prompt que toi à faire un tel jugement. Je ne sais pas de quoi sera fait le futur, mais quand je vois l’État Britannique racheter OneWeb avec un partenaire Indien, je vois qu’ils prennent les moyens de reconstituer l’économie et le pouvoir d’un empire. Bien sûr qu’ils peuvent se planter. Le risque de perdre est grand, mais le risque du gain est vertigineux : si ça marche, c’est une part très importante de la planète qui serait dans un état de soumission logistique à l’État Britannique, lui assurant une rente économique et un pouvoir géopolitique inédit, et ce serait un des seuls état capable de rivaliser avec des intérêts privés dans ce genre d’infrastructure. L’État Britannique prend les moyens matériels de conserver sa souveraineté dans le monde Cyberpunk qui vient, celui où les sociétés privées sont plus puissantes que les états, sauf peut-être l’État Britannique…
ce commentaire est sous licence cc by 4 et précédentes
# Religion
Posté par Thomas Debesse (site web personnel, Mastodon) . En réponse au journal [HS] Texte de l'appel du 14 septembre 2020. Évalué à 10.
Un peu dur à lire (t’aurais pu utiliser la balise
>
pour les citations ?) mais globalement ma réaction devant les extraits du discours de Manu c’est :OK, on a à faire à un croyant. Je ne dis pas qu’il n’y ait pas des trucs à faire au niveau Européen, mais peut-être ce monsieur devrait réviser le concept de souveraineté. À moins d’écraser les pays membres pour en faire un seul peuple, un seul empire, un seul… (le point godwin n’est pas loin), il cherche la quadrature du cercle mais en plus il est convaincu qu’elle est juste derrière la porte. La souveraineté est une chose à l’échelle du pays. À l’échelle de l’europe il y a plein d’autres choses à faire. On sera d’autant plus confiant à mettre certaines données chez certains voisins si on a confiance dans leur propre souveraineté. On sera d’autant plus confiant avec nos voisins que nous accords reposeront sur… nos propres souveraineté. Pas de souveraineté par pays ? Pas d’accord et pas de confiance entre pays ! Autant se faire héberger aux US dans ce cas…
ce commentaire est sous licence cc by 4 et précédentes
[^] # Re: Tu prends le probleme a l'envers
Posté par Thomas Debesse (site web personnel, Mastodon) . En réponse au journal Logiciels libres dans une association non-informatique. Évalué à 4.
Il faut parfois de très nombreuses années et se faire avoir plusieurs fois pour apprendre à placer certaines limites.
Il y a plein de situations où, par inexpérience, naïveté ou vulnérabilité une personne peut être abusée et accepter certaines conditions et retrousser ses manches. Le propre de la prostitution c’est d’acheter le consentement. Les esclaves sont généralement entièrement dévoués, c’est d’ailleurs le sommet de l’aliénation quand l’aliéné s’empresse volontairement et à corps perdu pour son bourreau.
Je ne dis pas que Jérôme est dans une situation d’esclavage ou de prostitution, je donne des exemples assez forts et suffisamment évidents pour rappeler que l’empressement, la volonté et l’acceptation d’une situation n’a pas de pouvoir sur le fait qu’un abus n’en soit pas un. Un bourreau n’est jamais blanchi par la soumission de sa victime.
Tu dis que tu as du mal à comprendre les critères qui me permettent de tracer une ligne rouge, mais si tu considères que le fait d’accepter les conditions et se retrousser les manches est un critère de discernement de cette ligne rouge, il est en effet possible de passer à côté de certaines limites. Certaines lignes rouges à ne pas franchir sont souvent cachées loin derrière l’acceptation, c’est à dire que l’acceptation peut signifier que ces lignes rouges sont déjà franchies, et non pas que ce ne sont pas des lignes rouges.
On ne discerne pas les limites au regard de l’acceptation car il faut précisément discerner les limites pour savoir ne pas accepter ce qui n’est pas juste et savoir accepter ce qui est juste.
ce commentaire est sous licence cc by 4 et précédentes