La nouvelle animation est en effet bien plus satisfaisante ! J’y connais rien en perse, mais cette animation était pour le moins incongrue.
Je me demande qui a bien pu imaginer la précédente animation… et surtout comment elle avait pu faire son chemin jusqu’à publication ! Un bélier étant dans sa forme la plus basique un tronc porté par des hommes pour enfoncer une porte, l’idée actuelle fait tout à fait sens : on y reconnaît une version évoluée du bélier sous la forme d’une structure complexe fournissant protection des opérateurs contre les projectiles et équipée d’un système de balancier pour faire reposer la force d’impact du bélier sur une force naturelle au lieu de la force humaine. La précédente animation en forme de marteau n’avait vraiment aucun sens. C’est le genre de petit détail qui a beaucoup d’importance, c’est top de voir que l’équipe prend aussi soin de ces petits détails !
ce commentaire est sous licence cc by 4 et précédentes
[…] lcc is not public-domain software, shareware, and it is not protected
by a `copyleft' agreement, like the code from the Free Software
Foundation.
lcc is available free for your personal research and instructional use
under the `fair use' provisions of the copyright law. You may, however,
redistribute lcc in whole or in part provided you acknowledge its
source and include this CPYRIGHT file. […]
You may not sell lcc or any product derived from it in which it is a
significant part of the value of the product.
[…] Using parts of lcc in other products is more problematic. For example,
using parts of lcc in a C++ compiler could save substantial time and
effort and therefore contribute significantly to the profitability of
the product. This kind of use, or any use where others stand to make a
profit from what is primarily our work, requires a license agreement
with Addison-Wesley.
Bref, c’est du Fair-Use-NC-ND.
Bouh, OpenArena sapusaypalibre ! :o Maintenant tu as une bonne raison de ne plus jouer à OpenArena, en plus d’être môche, saypalibre ! :p
ce commentaire est sous licence cc by 4 et précédentes
Tu parles de qc (quake code) ? Il me semble que ça n'a été abandonné qu'à partir de idTech 4.
Probablement. Je ne sais pas quand ça a été abandonné (ni même si ça l'a été en fait) par les auteurs, mais:
En fait il y a eu plusieurs techniques employées.
QuakeC
Quake utilisait QC effectivement, un langage dédié (et assez limité) et inspiré du C (ce n’est pas du C) qui se “compile” avec un outil associé (FTEQCC, GMQCC…). Les gros défauts sont en gros: la conception du langage possède des incongruités étonnantes (désolé, pas d’exemple là), aucune bibliothèque préexistante et réutilisable puisque c’est un langage de niche, et puisque la toolchain est elle aussi “de niche”, les optimisations ne seront jamais aussi poussées qu’un compilateur comme GCC ou clang. QC est utilisé par Quake premier du nom. Les gros utilisateurs de QC aujourd’hui sont donc Xonotic, donc si vous voulez en savoir plus sur les défauts de QC, il suffit de demander sur le canal #xonotic sur FreeNode ;-). Si le QC est converti vers un autre format (.dat) et que j’ai employé le verbe “compiler” à ce sujet, en fait on considère que techniquement, le .dat lui-même est interprété. Donc le dernier défaut, c’est que c’est pas très rapide. Avec beaucoup d’ironie MinceR disait récemment à propos de Darkplace (le moteur dérivé de Quake 1 utilisé par Xonotic) que [Darkplace] can't be a piece of shit if it manages to run xonotic :>, on peut dire la même chose de QuakeC: son unique qualité aujourd’hui doit être de motoriser Xonotic. ;-)
QVM
C’est la techno utilisé par Quake III Arena, la QVM (ou Q3VM) est une machine virtuelle (spécifications) qui exécute (n’interprète pas) du code binaire. Le jeu se programme en C ANSI, gros plus par rapport au QC, cgest un langage standard et du code peut être partagé ou certaines bibliothèques existantes réutilisées si elles n’utilisent pas de spécificité trop modernes du langage. Par exemple lors de la transition de d’Unvanquished depuis la QVM (héritée de Tremulous et donc de Quake 3) vers NaCL, le même code C pouvait être compilé vers du code natif (une bibliothèque .so sous linux ou .dll sous windows pour faciliter le débugage avec GCC, être compilé en .qvm pour la machine virtuelle historique de Quake 3, ou compilé vers la machine virtuelle NaCL (voir ci-après). Le code est compilé avec un compilateur dédié (LCC qui a l’avantage d’être un vrai compilateur C standard, mais qui a l’inconvénient de ne pas bénéficier de toutes les optimisations que peuvent fournir un compilateur comme GCC ou clang, il en va de même pour les fonctionnalités : on doit se restreindre à un C aux spécifications figées. Le compilateur LCC n’est pas libre (c’est une espèce de shareware, pas très contraignant mais pas libre). Un des défauts est donc aussi le fait de devoir se farcir une toolchain non standard. Quand Unvanquished a complètement viré la QVM, 8 000 lignes en rapport à la QVM ont été virées du moteur, mais surtout, 23 000 lignes de code d’outils associés (pour compiler le code pour la QVM) ont été supprimés du dépôt.
Code natif
Méthode employée par Wolfenstein: Enemy Territory: le code est compilé vers une bibliothèque native (.so, .dll) et pas seulement pour le débogage. Ça peut faire sens pour un jeu non-multijoueur (comme Return to Castle Wolfenstein) de ne pas se prendre la tête avec la sécurité du code exécuté (il provient du CD de toute façon), mais ça pose de vrais problèmes de sécurité dans un jeu multijoueur comme Wolf:ET : le client se connecte à un serveur, télécharge un mod automatiquement, extrait la bibliothèque et l’exécute sans autre forme de procès. C’est un trou de sécurité immense impossible à combler sans se couper de la logithèque existante… L’avantage, c’est que le développeur est très libre (par exemple True Combat: Elite, un mod de Wolf:ET, est codé en C++). Un autre inconvénient, est qu’il faut donc compiler nativement le mod pour chaque architecture. Par exemple la seule versions de TC:E pour Mac est une version PowerPC, aujourd’hui c’est inutilisable. C’est aussi pour cela que si ET:Legacy fonctionne très bien en 64bit, il est conseillé d’utiliser la version 32bit car c’est la seule qui peut exécuter les mods existant.
Je suppose que les développeurs de RTCW avaient éliminés le code de la QVM pour leur jeu simple joueur parce que c’était inutile, et qu’ensuite, développant Wolf:ET sur la base de RTCW, ben c’était trop tard…
Le truc de Doom 3
En fait je ne sais pas quelle technologie est employée par Doom 3. The Dark Mod est basé sur Doom 3 donc ils réutilisent ladite techno, et ce serait intéressant de savoir. Peut-être que c’est aussi du code natif vu que c’était un jeu single user, je ne sais vraiment pas.
NaCl
Native Client, une machine virtuelle inventée par Google pour son navigateur Chrome, permettant de compiler du code C/C++ ou possiblement d’autres langages vers un code intermédiaire exécuté dans un bac à sable. Il y a deux versions, NaCl et PNaCl. NaCL (pour _Na_tive _Cl_ient) est indépendant du système d’exploitation : le même code x86 32bit tournera dans une machine Windows x86 32bit, Linux x86 32bit, Mac 32bit, mais il faut une (et une seule version) x86 64bit pour viser Mac/Linux/Windows en x86 32bit. Ainsi, puisque Unvanquished (qui utilise la machine virtuelle NaCl) est compilé et distribué pour x86 32/64bit (avec un client Linux/Mac/Windows), il “suffirait” de porter le moteur (et uniquement le moteur) vers Haiku/DargonFlyBSD/Syllable/AROS/Minix pour que le jeu tourne sur ces systèmes d’exploitation sans recompiler le code du jeu lui-même, tant que l’architecture est la même. Pour porter vers Power/ARM/MIPS, il faudrait recompiler le jeu mais une seule fois par architecture matérielle, indépendamment du Système d’exploitation.
PNaCl est une version _P_ortable d’NaCl: un seul et unique code distribuable est suffisant pour viser tous les systèmes d’exploitation et architecture. C’est en fait une version intermédiaire qui est translatée au moment de l’exécution vers l’architecture cible. Je ne crois pas qu’un jeu vidéo utilise cela aujourd’hui, il y a eu des expérimentations pour Unvanquished, mais rien eu de concluant, et pour diverses raisons, il y a peu de chance que quelqu’un perde du temps dessus.
NaCl fonctionne très bien, est très performant, permet d’être débuguée directement, permet d’utiliser des langages modernes (comme du C++) avec des compilateurs modernes (comme clang ou gcc, le code est converti depuis les fichiers objets après compilation) et de réutiliser des bibliothèques existantes. Par exemple Unvanquished réutilise la bibliothèqie C++ de rendu HTML/CSS libRocket pour son interface utilisateur. Le code du jeu est désormais entièrement en C++ comme le moteur de jeu, permettant d’écrire des bibliothèques pour des fonctions communes au moteur et au jeu lui-même.
Il est très peu probable que des efforts soient fait en direction de PNaCl. En effet, Google a abandonné NaCl pour son moteur Chrome. Cela n’a pas d’incidence directe pour le moteur Dæmon (et des jeux comme Unvanquished), car c’est comme si Dæmon était un autre navigateur qui fournit aussi une machine NaCl, mais la techno NaCl perd son plus gros contributeur, donc on sait déjà que ça ne va pas beaucoup évoluer. Il y a peu de chance que les développeurs de Dæmon aient l’envie et le courage de devenir les mainteneurs principaux de Nacl donc il est probable qu’une migration soit envisagée dans un moyen ou long terme, mais il n’y a rien d’urgent : NaCl fonctionne très bien et répond toujours au besoin.
WebAssembly
Je ne crois pas que des moteurs à la Quake utilisent déjà cette techno, mais c’est la techno d’avenir. Si Dæmon voulait migrer de NaCl vers autre chose, ce serait clairement vers WebAssembly. Comme NaCl, c’est une techno poussée par les développeurs de navigateurs web. Contrairement à NaCl, Google n’est pas seul dans la course: on trouve aussi Mozilla avec son Firefox par exemple. Google a donc en réalité abandonné NaCl pour WebAssembly, là où NaCl avait échoué à rassembler les développeurs de navigateurs sous une bannière commune, WebAssembly a réussi. WebAssembly est d’ailleurs plus un concurrent de PNaCl: un même code pour toutes les architectures et les systèmes. Pour des jeux comme Unvanquished ou Xonotic, WebAssembly ne serait pas encore vraiment prêt (il y a encore trop de limitation question multi-processus si je me souviens bien), et c’est encore trop frais trop mouillé, mais hyper prometteur, c’est le chemin à suivre.
Si la transition d’Unvanquished/Dæmon de la QVM vers NaCL avait été un énorme travail de très longue haleine, compliqué et chronophage, la transition de NaCl vers WebAssembly ne le serait pas tout autant : le gros du travail est fait. Notamment, tout le portage C++ est déjà fait. Une des choses fatiguantes avec la QVM c’était que tout code C++ qui devait être utilisé par le jeu devait être intégré au moteur uniquement en vue de fournir des interfaces pour le jeu en retour (!!!). Puisque NaCl permet le C++ directement, ces codes ont été correctement rapatriés dans le code du jeu, et des mods pourraient choisir d’autres technologies sans avoir à l’ajouter dans le moteur directement (un comble). Tout ça est déjà fait.
Le jeu Xonotic travaille à migrer depuis le moteur Darkplaces vers le moteur Dæmon. J’ai vu passer deux plans de migrations, le premier, naïf, peut-être plus rapide, mais qui serait un peu “dommage”, serait de porter l’interpréteur QuakeC vers la machine NaCl. Une transition plus tard vers WebAssembly serait aisée : il faudrait en gros, intervertir les toolchains. Le gros défaut c’est que Xonotic se traînerait encore et toujours QuakeC. J’ai vu des personnes envisager cette hypothèse et peut-être même y travailler, mais je ne sais plus qui. L’autre solution serait de transpiler le code QuakeC vers du C++ et de faire le grand saut, en compilant le code C++ transpilé pour NaCl, ce qui ouvrirait la porte à plein de choses magiques et à l’écosystème C++ existant. C’est la solution sur laquelle travaille TimePath. Là encore, une transition de NaCl vers WebAssembly serait en gros une question de toolchain (une fois WebAssembly incorporé dans Dæmon, bien sûr, ce qui est une autre affaire).
Bon, l'article date de 2013, je ne peux pas accéder au site officiel pour voir l'état actuel de la chose… (déjà 4 ans…p'tin…)
Pour référence, l’article qui annonce la migration d’Unvanquished vers NaCl (et l’abandon de la QVM) est celui de l’alpha 37, en mars 2015.
Code du jeu (VM) et code du jeu (scripts)
En gros a l'origine une partie tres importante du code etait une VM (genre llvm) qui faisait tourner des binaires en pseudo-C, rien que ca (la raison derriere est tres pertinente, de memoire c'est utilise pour les cartes, pour la portabilite et la stabilite) peut faire fuir pas mal de codeurs, surtout amateurs. Me semble que cette section a ete remplacee par llvm, pour le coup, mais n'empeche qu'il faut du c++ pour scripter les cartes me semble (je previens, je n'avais pas trop creuse et ca date) ce qui ne facilite pas la tache.
En fait il y a confusion. ;-) les choses comme la QVM ou NaCL (le truc basé sur llvm auquel tu penses) ne sont pas utilisés pour les même choses. Ces choses-là sont faites pour coder le jeu lui-même, comme présenté plus haut, ça va être aussi le code qui intègre le moteur de rendu HTML si ton interface est en HTML. Le C++ est donc plus qu’indiqué. Une bonne partie du code réseau en fait partie aussi, généralement. En gros le moteur de jeu est principalement une machine virtuelle, quelques primitives réseau, une abstraction du système de fichier, le moteur de rendu, l’interprétation de la carte elle-même bien entendu, l’interprétation des shaders, le décodage des textures et des sons, ainsi que le système sonore.
Un jeu comme UrbanTerror (initialement un mod de Quake 3) est un jeu complet et n’est pas envisageable avec un simple langage de script. Il tourne surle moteur de jeu de Quake 3, mais il remplace intégralement le code du jeu de Quake 3. UrbanTerror pourrait fournir un langage de script, Quake 3 pourrait fournir un autre langage de script, ça ne bénéficierait pas vraiment de l’un à l’autre.
Pour scripter un jeu et des événements (par exemple en Lua, en JavaScript ou en Python), ce n’est pas le moteur de jeu qui fournit l’interpréteur éventuel pour ces langages, c’est le code du jeu, celui qui est programmé en QC, en C pour la QVM ou en C++ pour NaCl ou WebAssembly. Il est donc très très très intéressant de pouvoir coder son jeu en C++ pour pouvoir incorporer un interpréteur Lua, JavaScript ou Python qui existe déjà en C ou en C++ !
C’est donc au code du jeu de fournir un interpréteur pour ces choses-là. Et il est plus facile d’incorporer un interpréteur Python en C que recoder Python depuis zéro en QuakeC.
Le défaut des jeux comme Quake 3, c’est qu’il n’y avait pas grand chose de prévu pour les missions en joueur seul : le jeu de base était une suite de carte du jeu multijoueur avec des bots. Il n’y avait aussi quelques événements “programmables” (mais sans vrai langage de programmation dédié), par exemple une porte qui s’ouvre quand le joueur s’approche près d’elle (si le volume du joueur collisionne avec un volume invisible devant la porte, la porte s’ouvre), ou encore des actions liées à un impact de projectile (un joueur passe sous une presse, tu tires sur un objet à l’autre bout de lacarte, la presse écrase le joueur). À partir de là et avec d’autres fonctionnalités (plate-forme mobiles) on peut faire des choses un peu plus évoluées, comme des ascenseurs reliés à un bouton, des trains, ou des trucs bien plus complexe comme cette “preuve de concept” de Simon O'Callaghan : The Edge Of Forever qui est une mission mono joueur qui fonctionne sur un Quake 3 Arena non-modifié (c’est un puzzle, le joueur doit résoudre des énigmes pour ouvrir des portes et parcourir tout le niveau jusqu’à la fin). Mais la méthode est très archaïque. Ce n’est pas un langage de programmation écrit, les événements sont des objets que l’on connecte entre eux dans la carte elle-même, il faut donc passer par la case édition de la carte pour modifier la logique… Un langage dédié serait appréciable en effet.
Notez que tout cela ne fait pas partie du moteur de Quake 3, mais du code du jeu Quake 3. Pour bénéficier des ces fonctionnalités il ne suffit pas de baser son jeu sur id Tech 3, mais de reprendre aussi le code du jeu lui-même (qui est libre, aussi). Ainsi, ajouter un langage interprété pour améliorer cela se fait dans le code du jeu (celui qui tourne dans la VM).
On peut imaginer divers langages. Par exemple, ET:Legacy (à la fois un moteur pour Wolf:ET et un mod de Wolf:Et) fournit un interpréteur langage Lua, mais le système de bot est en Perl (Omnibot) mais pour ce dernier j’ai un doute s’il est embarqué dans le code du jeu ou dans le moteur avec une interface pour le code du jeu, (spyhawk< pourrait lever le doute).
Moteur id Tech 4 pour le “single user”
Un dernier point: si quelqu’un veux faire un jeu libre avec des missions, il serait plus prudent de commencer avec le moteur id Tech 4 (utilisé par The Dark Mod, qui contient des mécanismes en ce sens (Doom 3 était un jeu de ce type) : événements scriptés, dialogues, etc. The Dark Mod est un bon exemple de jeu basé sur un moteur libre et proposant des missions aux joueurs.
J’avoue que je ne sais pas du tout comment ça marche, mais c’est à mon avis le plus avancé. L’éditeur de niveau DarkRadiant est correctement maintenu en plus.
Après, pour des missions simples (un peu comme le jeux de SimonOC) avec des plateformes, des portes à ouvrir et des machines à manipuler, forker Unvanquished suffit, en plus avec Unvanquished charger des cartes en fonction de la réussite ou non de la carte précédente, ce qui est déjà pas mal, et scripter certains comportements de bots. Il ne s’agira pas de les voir faire quelque chose en fonction de ce que tu fais directement ni de ton avancée dans le niveau, mais il est possible de les faire découvrir le niveau tout seul pour te trouver, revenir à leur base pour guérir ou réparer des constructions ou des trucs comme ça.
Par contre faire émerger à partir de rien des bots au coin de la rue en fonction du chemin que tu suis (comme Half Life 2), faut oublier.
De même pour avoir des bots qui changent de comportement quand ils t’entendent, ou encore si tu veux manipuler des objets que tu trouves par terre et les jeter sur un ennemi ou quelque chose pour déclencher un mécanisme, dans ce cas il vaut mieux forker The Dark Mod.
(mince, j’ai écrit un journal)
ce commentaire est sous licence cc by 4 et précédentes
Si tu veux utiliser le pilote AMDGPU-PRO, la version LTS d’Ubuntu sera le choix le plus confortable (actuellement en version 16.04) parce que c’est la distro prioritaires pour les développeurs d’AMD.
Cela dit, le pilote libre est plus performant que le pilote AMDGPU-PRO, mais pas de chance, ta carte est la carte d’AMD qui a un méchant bug trop sale qui fait planter tout ton système, je le sais, j’ai moi aussi une R9 390. En fait il y a un contournement très simple qui n’affecte pas les performances, mais on commence à rentrer dans la bidouille et tout, donc je te conseille, exceptionnellement parce que tu as une R9 390, d’essayer d’abord le pilote AMDGPU-PRO sur une Ubuntu LTS. Si ça marche et que tu es satisfait, ne touche à rien. Si tu as des problèmes, ou si tu veux le pilote libre reviens me poser des questions, j’ai à disposition une liste de contournements pour à la fois les bugs du pilote AMDGPU-PRO et ceux du pilote libre.
Si tu veux absolument la dernière Ubuntu et/ou tenter l’aventure du pilote libre, juste pour le fun ou parce que tu en as besoin (par exemple tu aurais besoin de GalliumNine pour jouer à GoldenEye Source ;D), pas de problème, il n’y a rien qui s’y oppose et si on suit bien les procédures, ça marche super bien (et si on suit vraiment bien les procédures, sans bug non-plus :p). Dans ce cas là fais-moi signe et je te donnerai toutes les infos.
Pour information, il y a des bugs du pilote propriétaire pour lesquels je n’ai pas de contournement, mais je n’ai rencontré aucun bug du pilote libre qui n’ai pas de contournement. C’est juste que pour installer le pilote libre à jour, la procédure est assez longue…
Tout ça va dépendre de tes besoins. Tu as besoins d’OpenCL ? tu as besoin de GalliumNine (implémentation native de Direct3D9) ? Tout ça peut déterminer ton choix de pilote.
Note que le bug que tu rapportes semble ne pas être lié au fait que tu as forcé l’installation sur Ubuntu 17.04 du pilote AMDGPU-PRO prévu pour la 16.04, si ça n’avait pas marché, tu n’aurais même pas l’écran de connexion.
L’écran noir sur le pilote proprio me dit quelque chose, mais dans mes souvenirs l’écran de connexion lui-même était affecté, donc tu as probablement un autre bug que celui que je connais et pour lequel j’ai un contournement. Pour le fait que ta session s’interrompe tout de suite après connexion pour te faire revenir à l’écran de connexion, vérifie que la session par défaut n’est PAS une session Wayland, il ne faut probablement PAS que ta session soit une session Wayland avec le pilote propriétaire. De manière générale, les bureaux Wayland ne sont pas encore tout à fait près, ça y est presque, mais il subsiste quelques trucs bizarres parfois…
ce commentaire est sous licence cc by 4 et précédentes
La dépêche est encore à l’état de brouillon, il reste encore à effacer les mentions inutiles.
Imposer aux autres son indécision et refuser sciemment de s’exprimer dans un langage verbal, c’est un manque de respect. Je comprends que certains n’aient pas envie de venir en voyant que l’annonce est cousue d’irrespect. Il est légitime de craindre de ne pas être respecté à la PyCon-fr, cette annonce donnant la couleur.
S’exprimer dans un langage verbal, c’est une forme de respect.
Faire l’effort grammatical nécessaire à cette expression, c’est une forme de respect.
Rédiger son texte, c’est une forme de respect.
L’auteur de cette dépêche n’a pas terminé la rédaction, et impose à chacun des lecteurs d’achever mentalement le travail de rédaction qu’il n’a pas voulu faire. Ce type de comportement va à l’exact opposé d’une volonté d’inviter ou de souhaiter la bienvenue. Ce n’est pas accueillant.
ce commentaire est sous licence cc by 4 et précédentes
et refaire les bonnes vieilles classes de TP qu'on connaissait dans les 90's
Au CNAM Paris c’était encore comme ça en 2008 avec le choix entre un bureau déporté Windows ou Linux (mais à La Plaine c’était que des desktop Windows partout :-/).
ce commentaire est sous licence cc by 4 et précédentes
Pour des opex de radio FM, (essentiellement du commentaire d’événement, donc de la voix sur des voix et/ou le son de l’événement, musique de cérémonie etc.) je fais de l’Opus 48kbps mono quand je dois passer par du 4g, ce qui sonne mieux qu’un mp3 64kbps mono (quand on parle de musique 128kbps, c’est 128kbps pour deux canaux). Niveau rendu sonore, la perte de qualité est toujours ailleurs (les aléas de la captation, cigales, vent…).
ce commentaire est sous licence cc by 4 et précédentes
Oui perso je ne vois pas d’un super bon œil ces « plate-formes gratuites qui font tout et même la magie pour pas un rond », mais indépendamment de mes sentiments à l’égard de ces plate-formes elle-mêmes, ça reste de bons témoins de la maturité d’une technologie.
ce commentaire est sous licence cc by 4 et précédentes
En fait Opus pénètre tranquillement mais sûrement le marché. Par exemple la plate-forme Discord qui se donne pour ambition de remplacer Skype et TeamSpeak dans le secteur du jeu vidéo utilise Opus. En fait les gens utilisent Opus sans le savoir. Opus marche bien et commence à être déployé un peu partout maintenant. Même Apple, plutôt réticent (euphémisme) aux formats qui ne sont pas dans son portefeuille de brevet pousse Opus avec WebRTC dans Safari.
ce commentaire est sous licence cc by 4 et précédentes
Avec un débit plus élevé, il deviendra difficile de discriminer les formats.
Globalement, il faut retenir qu’à débit identique, Opus reproduit un son moins altéré. Je serais curieux que quelqu’un me démontre que la qualité chute quand le débit augmente (on n’est pas à l’abri d’un gros défaut de conception, mais bon).
ce commentaire est sous licence cc by 4 et précédentes
qui a le mérite de faire comprendre pourquoi il faut attendre 24 heures minimum pour un virement entre 2 banques.
Chez moi ils demandent 24h supplémentaires pour l’ajout du bénéficiaire avant de pouvoir faire le virement. En plus ils comptent en jours ouvrés, donc si je fais mon achat le Vendredi Saint, je dois attendre le mardi de Pâques pour faire mon virement, et le vendeur recevra l’argent au mieux le mercredi de Pâques. Cinq jours si tout se passe bien, et il faut que je pointe et repointe sur le site de ma banque pour bien mener à terme la transaction… Il n’est bien entendu pas possible d’ordonner le virement en même temps qu’on ajoute le bénéficiaire en laissant le système gérer lui-même la procédure et ordonner tout seul l’exécution du virement dès que le bénéficiaire est validé, ce serait trop simple à d~faut d’être lent… :-/
ce commentaire est sous licence cc by 4 et précédentes
Même expérience. Ça donne l’impression qu’il n’y a dans l’équipe plus que ceux qui touchent les salaires et que ceux qui faisaient (des stagiaires ?) ne sont plus là depuis longtemps.
ce commentaire est sous licence cc by 4 et précédentes
J’ose espérer que si la disponibilité de 3D Secure repose sur le DNS, sa sécurité n’en dépend pas. Il doit certainement y avoir des protocoles entre les différentes parties qui font que celui qui posséderait le domaine sans être un interlocuteur 3D Secure officiel (reconnu sur la base d’une signature qu’une autre partie certifie par exemple) ne pourrait conduire une transaction 3D Secure à terme…
ce commentaire est sous licence cc by 4 et précédentes
Un jour, j'ai un professeur qui nous a dit que pour comprendre un cours, il valait mieux l'écouter plutôt que de ne faire que l'entendre en l'écrivant à côté.
J’ai ruiné mon espagnol à cause d’un prof comme ça. Et c’était justement le cours où « écrire » semble le plus inadapté : un cours de langue. Mais en fait j’avais élaboré une méthode qui me correspondait très bien : je notais tout ce qui passait dès que je sentais ou constatais que ma mémoire était incapable de ressortir spontanément un mot de vocabulaire ou une forme verbale etc. Mes notes n’étaient donc que des listes, et en fait je reproduisait une part de ce mécanisme des boîtes expliquée dans ce journal : ce que je constate ne pas savoir, ou pas assez, je le mettais « dans la boîte », sur ma feuille, et en fait je ne revenais jamais sur ces feuilles, ce qui comptait, c’est que je fasse un effort intellectuel pour ces choses que je constatais ne pas avoir mémorisé, et je le faisais en direct. Ce que je savais déjà, je l’ignorais, ce que je ne savais pas ou pas assez, je faisais ce geste simple engageant ma mémoire et mon intelligence : je le notais.
Je n’avais jamais été aussi bon en un quelconque cours de langue qu’en espagnol, puis j’ai changé de lycée, et le prof m’a retiré ma feuille. J’ai complètement sombré. Certains traits de mon caractère font que les cours de langues me sont habituellement complètement inadaptés dans leur forme.
Aussi, je reviendrai en particulier sur ce point :
de ne faire que l'entendre en l'écrivant à côté
Parfois ce mécanisme est essentiel voire vital pour certains élèves ayant un caractère plutôt secondaire. Il y a aussi des mécanismes implicites (inconscients ?) de mémorisation, quand la mémoire retient ce que l’intelligence ou le corps procède, sans avoir à y prêter attention : une forme d’apprentissage inconscient des données que la personne traite. Dans cette situation, tout ce que la personne entend ressort aussitôt, excepté ce qu’il sanctionne par écriture. Dans ce cas, forcer l’élève à ne pas noter le contraint à tout oublier, car on le prive du mécanisme qui enclenche ce processus inconscient de mémorisation et l’information n’atteint pas certaines zones de son intelligence, ces zones où la mémoire pioche ce qu’il faut retenir.
ce commentaire est sous licence cc by 4 et précédentes
J’ai aussi lu ça comme étant « en entrée », mais s’ils font des redirections, tout ce qui sort redirigé est d’abord entré une première fois (d’où la nécessité de la greylist en entrée qui sabre la majeure partie du spam, généralement suffisante pour rester en dessous du seuil d’intolérance de Google).
ce commentaire est sous licence cc by 4 et précédentes
Hebergement de domaines mail (votre nom de domaine), accès par webmail, imap, pop
Hebergement de boites mail, sans antispam (à vous de faire vos filtres !), ni antivirus, service neutre.
Est-ce que vous faites des redirections ? Si oui il n’y a pas de magie, du point de vue de Google, vous êtes la source de tout le spam que vous recevez et redirigez. Une greylist en entrée est très efficace. L’avantage de la greylist c’est qu’il y a un très fort taux d’élimination de spam et zéro faux positif, l’inconvénient c’est que ça ajoute un délai à chaque nouvelle “source”, mais plus vous avez d’utilisateur, et plus moins ces sources sont rares.
Et si vous n’avez pas officiellement de service de redirection, le logiciel de webmail (roundcube?) que vous utilisez permet-il à l’utilisateur de configurer une redirection dans l’interface ? Si oui vous n’y couperez pas, vous devrez mettre en place une greylist et c’est non négociable. La greylist n’analyse pas le contenu du mail ni l’enveloppe, donc la neutralité est protégée.
La greylist soumet simplement l’émetteur du mail à un test de fonctionnalité très basique (“rééssaie plus tard”, en gros) pour éliminer les émetteurs pour qui perdre un mail n’est pas un problème. Un serveur SMTP légitime qui sert à des vrais gens ne perd jamais un mail.
Je lis aussi :
Hebergement de site web (par défaut 1go, accès via ftp, php supporté sans restriction)
Est-ce que les mails envoyés par les sites-web sortent par la même adresse que les mails envoyés par les boites mail ? Si oui il faut changer ça très rapidement, il suffit d’un wordpress vérolé pour te tuer ta réputation.
ce commentaire est sous licence cc by 4 et précédentes
Moué, à chaque fois que j’ai lu Le Monde en vrai sur papier je suis systématiquement tombé sur des fautes incroyables (du niveau de « dans quelques années lumières » ou tout aussi énorme). Et je sais pas pourquoi mais ma tolérance pour les fautes grossières chute très très vite quand c’est imprimé.
Alors le fait que ce soit « une rubrique tout à fait officielle du Monde », papier ou pixel, moué.
ce commentaire est sous licence cc by 4 et précédentes
(parfois je me dis qu'il manque une section "Brèves" sur linuxfr, parce qu'il y a des ptites infos qui ne méritent pas forcément un journal rédigé mais qui sont utiles à connaître …)
Tu veux dire des dépêches ?
En fait les dépêches ont été substituées par des articles de revue… C’est très bien d’avoir ces articles, mais c’est dommage pour l’absence de dépêches.
ce commentaire est sous licence cc by 4 et précédentes
# bélier perse
Posté par Thomas Debesse (site web personnel, Mastodon) . En réponse à la dépêche Sortie de 0 AD Alpha 22 Venustas. Évalué à 8.
La nouvelle animation est en effet bien plus satisfaisante ! J’y connais rien en perse, mais cette animation était pour le moins incongrue.
Je me demande qui a bien pu imaginer la précédente animation… et surtout comment elle avait pu faire son chemin jusqu’à publication ! Un bélier étant dans sa forme la plus basique un tronc porté par des hommes pour enfoncer une porte, l’idée actuelle fait tout à fait sens : on y reconnaît une version évoluée du bélier sous la forme d’une structure complexe fournissant protection des opérateurs contre les projectiles et équipée d’un système de balancier pour faire reposer la force d’impact du bélier sur une force naturelle au lieu de la force humaine. La précédente animation en forme de marteau n’avait vraiment aucun sens. C’est le genre de petit détail qui a beaucoup d’importance, c’est top de voir que l’équipe prend aussi soin de ces petits détails !
ce commentaire est sous licence cc by 4 et précédentes
[^] # Re: pas de FPS libre mono-joueur?
Posté par Thomas Debesse (site web personnel, Mastodon) . En réponse à la dépêche Terminal Overload : un FPS entièrement libre et récent, mais déjà abandonné ?. Évalué à 2.
Le langage c’est du C ANSI a priori, donc ça va encore, mais oui il n’est pas possible de produire le jeu complet sans un outil propriétaire.
Il est peut-être possible de compiler le même code en shared lib (au lieu d’un binaire pour la Q3VM), mais dans ce cas, adieu le jeu en ligne.
ce commentaire est sous licence cc by 4 et précédentes
[^] # Re: pas de FPS libre mono-joueur?
Posté par Thomas Debesse (site web personnel, Mastodon) . En réponse à la dépêche Terminal Overload : un FPS entièrement libre et récent, mais déjà abandonné ?. Évalué à 2. Dernière modification le 23 août 2017 à 21:21.
https://github.com/OpenArena/gamecode/blob/master/code/tools/lcc/COPYRIGHT
https://github.com/ioquake/ioq3/blob/master/code/tools/lcc/COPYRIGHT
https://github.com/Unvanquished/Unvanquished/blob/v0.36.0/src/tools/lcc/COPYRIGHT
Bref, c’est du Fair-Use-NC-ND.
Bouh, OpenArena sapusaypalibre ! :o Maintenant tu as une bonne raison de ne plus jouer à OpenArena, en plus d’être môche, saypalibre ! :p
ce commentaire est sous licence cc by 4 et précédentes
[^] # Re: pas de FPS libre mono-joueur?
Posté par Thomas Debesse (site web personnel, Mastodon) . En réponse à la dépêche Terminal Overload : un FPS entièrement libre et récent, mais déjà abandonné ?. Évalué à 2.
y a peut-être des alternatives libres aussi, c'est pas impossible à ré-implémenter !
ce commentaire est sous licence cc by 4 et précédentes
[^] # Re: pas de FPS libre mono-joueur?
Posté par Thomas Debesse (site web personnel, Mastodon) . En réponse à la dépêche Terminal Overload : un FPS entièrement libre et récent, mais déjà abandonné ?. Évalué à 10.
Sommaire
QuakeC / QVM / NaCl toussa
En fait il y a eu plusieurs techniques employées.
QuakeC
Quake utilisait QC effectivement, un langage dédié (et assez limité) et inspiré du C (ce n’est pas du C) qui se “compile” avec un outil associé (FTEQCC, GMQCC…). Les gros défauts sont en gros: la conception du langage possède des incongruités étonnantes (désolé, pas d’exemple là), aucune bibliothèque préexistante et réutilisable puisque c’est un langage de niche, et puisque la toolchain est elle aussi “de niche”, les optimisations ne seront jamais aussi poussées qu’un compilateur comme
GCC
ouclang
. QC est utilisé par Quake premier du nom. Les gros utilisateurs de QC aujourd’hui sont donc Xonotic, donc si vous voulez en savoir plus sur les défauts de QC, il suffit de demander sur le canal #xonotic sur FreeNode ;-). Si le QC est converti vers un autre format (.dat
) et que j’ai employé le verbe “compiler” à ce sujet, en fait on considère que techniquement, le.dat
lui-même est interprété. Donc le dernier défaut, c’est que c’est pas très rapide. Avec beaucoup d’ironie MinceR disait récemment à propos de Darkplace (le moteur dérivé de Quake 1 utilisé par Xonotic) que [Darkplace] can't be a piece of shit if it manages to run xonotic :>, on peut dire la même chose de QuakeC: son unique qualité aujourd’hui doit être de motoriser Xonotic. ;-)QVM
C’est la techno utilisé par Quake III Arena, la QVM (ou Q3VM) est une machine virtuelle (spécifications) qui exécute (n’interprète pas) du code binaire. Le jeu se programme en C ANSI, gros plus par rapport au QC, cgest un langage standard et du code peut être partagé ou certaines bibliothèques existantes réutilisées si elles n’utilisent pas de spécificité trop modernes du langage. Par exemple lors de la transition de d’Unvanquished depuis la QVM (héritée de Tremulous et donc de Quake 3) vers NaCL, le même code C pouvait être compilé vers du code natif (une bibliothèque
.so
sous linux ou.dll
sous windows pour faciliter le débugage avec GCC, être compilé en.qvm
pour la machine virtuelle historique de Quake 3, ou compilé vers la machine virtuelle NaCL (voir ci-après). Le code est compilé avec un compilateur dédié (LCC qui a l’avantage d’être un vrai compilateur C standard, mais qui a l’inconvénient de ne pas bénéficier de toutes les optimisations que peuvent fournir un compilateur commeGCC
ouclang
, il en va de même pour les fonctionnalités : on doit se restreindre à un C aux spécifications figées. Le compilateur LCC n’est pas libre (c’est une espèce de shareware, pas très contraignant mais pas libre). Un des défauts est donc aussi le fait de devoir se farcir une toolchain non standard. Quand Unvanquished a complètement viré la QVM, 8 000 lignes en rapport à la QVM ont été virées du moteur, mais surtout, 23 000 lignes de code d’outils associés (pour compiler le code pour la QVM) ont été supprimés du dépôt.Code natif
Méthode employée par Wolfenstein: Enemy Territory: le code est compilé vers une bibliothèque native (
.so
,.dll
) et pas seulement pour le débogage. Ça peut faire sens pour un jeu non-multijoueur (comme Return to Castle Wolfenstein) de ne pas se prendre la tête avec la sécurité du code exécuté (il provient du CD de toute façon), mais ça pose de vrais problèmes de sécurité dans un jeu multijoueur comme Wolf:ET : le client se connecte à un serveur, télécharge un mod automatiquement, extrait la bibliothèque et l’exécute sans autre forme de procès. C’est un trou de sécurité immense impossible à combler sans se couper de la logithèque existante… L’avantage, c’est que le développeur est très libre (par exemple True Combat: Elite, un mod de Wolf:ET, est codé en C++). Un autre inconvénient, est qu’il faut donc compiler nativement le mod pour chaque architecture. Par exemple la seule versions de TC:E pour Mac est une version PowerPC, aujourd’hui c’est inutilisable. C’est aussi pour cela que si ET:Legacy fonctionne très bien en 64bit, il est conseillé d’utiliser la version 32bit car c’est la seule qui peut exécuter les mods existant.Je suppose que les développeurs de RTCW avaient éliminés le code de la QVM pour leur jeu simple joueur parce que c’était inutile, et qu’ensuite, développant Wolf:ET sur la base de RTCW, ben c’était trop tard…
Le truc de Doom 3
En fait je ne sais pas quelle technologie est employée par Doom 3. The Dark Mod est basé sur Doom 3 donc ils réutilisent ladite techno, et ce serait intéressant de savoir. Peut-être que c’est aussi du code natif vu que c’était un jeu single user, je ne sais vraiment pas.
NaCl
Native Client, une machine virtuelle inventée par Google pour son navigateur Chrome, permettant de compiler du code C/C++ ou possiblement d’autres langages vers un code intermédiaire exécuté dans un bac à sable. Il y a deux versions, NaCl et PNaCl. NaCL (pour _Na_tive _Cl_ient) est indépendant du système d’exploitation : le même code x86 32bit tournera dans une machine Windows x86 32bit, Linux x86 32bit, Mac 32bit, mais il faut une (et une seule version) x86 64bit pour viser Mac/Linux/Windows en x86 32bit. Ainsi, puisque Unvanquished (qui utilise la machine virtuelle NaCl) est compilé et distribué pour x86 32/64bit (avec un client Linux/Mac/Windows), il “suffirait” de porter le moteur (et uniquement le moteur) vers Haiku/DargonFlyBSD/Syllable/AROS/Minix pour que le jeu tourne sur ces systèmes d’exploitation sans recompiler le code du jeu lui-même, tant que l’architecture est la même. Pour porter vers Power/ARM/MIPS, il faudrait recompiler le jeu mais une seule fois par architecture matérielle, indépendamment du Système d’exploitation.
PNaCl est une version _P_ortable d’NaCl: un seul et unique code distribuable est suffisant pour viser tous les systèmes d’exploitation et architecture. C’est en fait une version intermédiaire qui est translatée au moment de l’exécution vers l’architecture cible. Je ne crois pas qu’un jeu vidéo utilise cela aujourd’hui, il y a eu des expérimentations pour Unvanquished, mais rien eu de concluant, et pour diverses raisons, il y a peu de chance que quelqu’un perde du temps dessus.
Le moteur de jeu Dæmon (qui motorise Unvanquished) utilise NaCL.
NaCl fonctionne très bien, est très performant, permet d’être débuguée directement, permet d’utiliser des langages modernes (comme du C++) avec des compilateurs modernes (comme clang ou gcc, le code est converti depuis les fichiers objets après compilation) et de réutiliser des bibliothèques existantes. Par exemple Unvanquished réutilise la bibliothèqie C++ de rendu HTML/CSS libRocket pour son interface utilisateur. Le code du jeu est désormais entièrement en C++ comme le moteur de jeu, permettant d’écrire des bibliothèques pour des fonctions communes au moteur et au jeu lui-même.
Il est très peu probable que des efforts soient fait en direction de PNaCl. En effet, Google a abandonné NaCl pour son moteur Chrome. Cela n’a pas d’incidence directe pour le moteur Dæmon (et des jeux comme Unvanquished), car c’est comme si Dæmon était un autre navigateur qui fournit aussi une machine NaCl, mais la techno NaCl perd son plus gros contributeur, donc on sait déjà que ça ne va pas beaucoup évoluer. Il y a peu de chance que les développeurs de Dæmon aient l’envie et le courage de devenir les mainteneurs principaux de Nacl donc il est probable qu’une migration soit envisagée dans un moyen ou long terme, mais il n’y a rien d’urgent : NaCl fonctionne très bien et répond toujours au besoin.
WebAssembly
Je ne crois pas que des moteurs à la Quake utilisent déjà cette techno, mais c’est la techno d’avenir. Si Dæmon voulait migrer de NaCl vers autre chose, ce serait clairement vers WebAssembly. Comme NaCl, c’est une techno poussée par les développeurs de navigateurs web. Contrairement à NaCl, Google n’est pas seul dans la course: on trouve aussi Mozilla avec son Firefox par exemple. Google a donc en réalité abandonné NaCl pour WebAssembly, là où NaCl avait échoué à rassembler les développeurs de navigateurs sous une bannière commune, WebAssembly a réussi. WebAssembly est d’ailleurs plus un concurrent de PNaCl: un même code pour toutes les architectures et les systèmes. Pour des jeux comme Unvanquished ou Xonotic, WebAssembly ne serait pas encore vraiment prêt (il y a encore trop de limitation question multi-processus si je me souviens bien), et c’est encore trop frais trop mouillé, mais hyper prometteur, c’est le chemin à suivre.
Si la transition d’Unvanquished/Dæmon de la QVM vers NaCL avait été un énorme travail de très longue haleine, compliqué et chronophage, la transition de NaCl vers WebAssembly ne le serait pas tout autant : le gros du travail est fait. Notamment, tout le portage C++ est déjà fait. Une des choses fatiguantes avec la QVM c’était que tout code C++ qui devait être utilisé par le jeu devait être intégré au moteur uniquement en vue de fournir des interfaces pour le jeu en retour (!!!). Puisque NaCl permet le C++ directement, ces codes ont été correctement rapatriés dans le code du jeu, et des mods pourraient choisir d’autres technologies sans avoir à l’ajouter dans le moteur directement (un comble). Tout ça est déjà fait.
Le jeu Xonotic travaille à migrer depuis le moteur Darkplaces vers le moteur Dæmon. J’ai vu passer deux plans de migrations, le premier, naïf, peut-être plus rapide, mais qui serait un peu “dommage”, serait de porter l’interpréteur QuakeC vers la machine NaCl. Une transition plus tard vers WebAssembly serait aisée : il faudrait en gros, intervertir les toolchains. Le gros défaut c’est que Xonotic se traînerait encore et toujours QuakeC. J’ai vu des personnes envisager cette hypothèse et peut-être même y travailler, mais je ne sais plus qui. L’autre solution serait de transpiler le code QuakeC vers du C++ et de faire le grand saut, en compilant le code C++ transpilé pour NaCl, ce qui ouvrirait la porte à plein de choses magiques et à l’écosystème C++ existant. C’est la solution sur laquelle travaille TimePath. Là encore, une transition de NaCl vers WebAssembly serait en gros une question de toolchain (une fois WebAssembly incorporé dans Dæmon, bien sûr, ce qui est une autre affaire).
Pour référence, l’article qui annonce la migration d’Unvanquished vers NaCl (et l’abandon de la QVM) est celui de l’alpha 37, en mars 2015.
Code du jeu (VM) et code du jeu (scripts)
En fait il y a confusion. ;-) les choses comme la QVM ou NaCL (le truc basé sur llvm auquel tu penses) ne sont pas utilisés pour les même choses. Ces choses-là sont faites pour coder le jeu lui-même, comme présenté plus haut, ça va être aussi le code qui intègre le moteur de rendu HTML si ton interface est en HTML. Le C++ est donc plus qu’indiqué. Une bonne partie du code réseau en fait partie aussi, généralement. En gros le moteur de jeu est principalement une machine virtuelle, quelques primitives réseau, une abstraction du système de fichier, le moteur de rendu, l’interprétation de la carte elle-même bien entendu, l’interprétation des shaders, le décodage des textures et des sons, ainsi que le système sonore.
Un jeu comme UrbanTerror (initialement un mod de Quake 3) est un jeu complet et n’est pas envisageable avec un simple langage de script. Il tourne surle moteur de jeu de Quake 3, mais il remplace intégralement le code du jeu de Quake 3. UrbanTerror pourrait fournir un langage de script, Quake 3 pourrait fournir un autre langage de script, ça ne bénéficierait pas vraiment de l’un à l’autre.
Pour scripter un jeu et des événements (par exemple en Lua, en JavaScript ou en Python), ce n’est pas le moteur de jeu qui fournit l’interpréteur éventuel pour ces langages, c’est le code du jeu, celui qui est programmé en QC, en C pour la QVM ou en C++ pour NaCl ou WebAssembly. Il est donc très très très intéressant de pouvoir coder son jeu en C++ pour pouvoir incorporer un interpréteur Lua, JavaScript ou Python qui existe déjà en C ou en C++ !
C’est donc au code du jeu de fournir un interpréteur pour ces choses-là. Et il est plus facile d’incorporer un interpréteur Python en C que recoder Python depuis zéro en QuakeC.
Le défaut des jeux comme Quake 3, c’est qu’il n’y avait pas grand chose de prévu pour les missions en joueur seul : le jeu de base était une suite de carte du jeu multijoueur avec des bots. Il n’y avait aussi quelques événements “programmables” (mais sans vrai langage de programmation dédié), par exemple une porte qui s’ouvre quand le joueur s’approche près d’elle (si le volume du joueur collisionne avec un volume invisible devant la porte, la porte s’ouvre), ou encore des actions liées à un impact de projectile (un joueur passe sous une presse, tu tires sur un objet à l’autre bout de lacarte, la presse écrase le joueur). À partir de là et avec d’autres fonctionnalités (plate-forme mobiles) on peut faire des choses un peu plus évoluées, comme des ascenseurs reliés à un bouton, des trains, ou des trucs bien plus complexe comme cette “preuve de concept” de Simon O'Callaghan : The Edge Of Forever qui est une mission mono joueur qui fonctionne sur un Quake 3 Arena non-modifié (c’est un puzzle, le joueur doit résoudre des énigmes pour ouvrir des portes et parcourir tout le niveau jusqu’à la fin). Mais la méthode est très archaïque. Ce n’est pas un langage de programmation écrit, les événements sont des objets que l’on connecte entre eux dans la carte elle-même, il faut donc passer par la case édition de la carte pour modifier la logique… Un langage dédié serait appréciable en effet.
Notez que tout cela ne fait pas partie du moteur de Quake 3, mais du code du jeu Quake 3. Pour bénéficier des ces fonctionnalités il ne suffit pas de baser son jeu sur id Tech 3, mais de reprendre aussi le code du jeu lui-même (qui est libre, aussi). Ainsi, ajouter un langage interprété pour améliorer cela se fait dans le code du jeu (celui qui tourne dans la VM).
On peut imaginer divers langages. Par exemple, ET:Legacy (à la fois un moteur pour Wolf:ET et un mod de Wolf:Et) fournit un interpréteur langage Lua, mais le système de bot est en Perl (Omnibot) mais pour ce dernier j’ai un doute s’il est embarqué dans le code du jeu ou dans le moteur avec une interface pour le code du jeu, (spyhawk< pourrait lever le doute).
Moteur id Tech 4 pour le “single user”
Un dernier point: si quelqu’un veux faire un jeu libre avec des missions, il serait plus prudent de commencer avec le moteur id Tech 4 (utilisé par The Dark Mod, qui contient des mécanismes en ce sens (Doom 3 était un jeu de ce type) : événements scriptés, dialogues, etc. The Dark Mod est un bon exemple de jeu basé sur un moteur libre et proposant des missions aux joueurs.
J’avoue que je ne sais pas du tout comment ça marche, mais c’est à mon avis le plus avancé. L’éditeur de niveau DarkRadiant est correctement maintenu en plus.
Après, pour des missions simples (un peu comme le jeux de SimonOC) avec des plateformes, des portes à ouvrir et des machines à manipuler, forker Unvanquished suffit, en plus avec Unvanquished charger des cartes en fonction de la réussite ou non de la carte précédente, ce qui est déjà pas mal, et scripter certains comportements de bots. Il ne s’agira pas de les voir faire quelque chose en fonction de ce que tu fais directement ni de ton avancée dans le niveau, mais il est possible de les faire découvrir le niveau tout seul pour te trouver, revenir à leur base pour guérir ou réparer des constructions ou des trucs comme ça.
Par contre faire émerger à partir de rien des bots au coin de la rue en fonction du chemin que tu suis (comme Half Life 2), faut oublier.
De même pour avoir des bots qui changent de comportement quand ils t’entendent, ou encore si tu veux manipuler des objets que tu trouves par terre et les jeter sur un ennemi ou quelque chose pour déclencher un mécanisme, dans ce cas il vaut mieux forker The Dark Mod.
(mince, j’ai écrit un journal)
ce commentaire est sous licence cc by 4 et précédentes
[^] # Re: Problème de compatibilité
Posté par Thomas Debesse (site web personnel, Mastodon) . En réponse au message Pilote AMD et Ubuntu. Évalué à 2. Dernière modification le 15 août 2017 à 06:55.
Si tu veux utiliser le pilote AMDGPU-PRO, la version LTS d’Ubuntu sera le choix le plus confortable (actuellement en version 16.04) parce que c’est la distro prioritaires pour les développeurs d’AMD.
Cela dit, le pilote libre est plus performant que le pilote AMDGPU-PRO, mais pas de chance, ta carte est la carte d’AMD qui a un méchant bug trop sale qui fait planter tout ton système, je le sais, j’ai moi aussi une R9 390. En fait il y a un contournement très simple qui n’affecte pas les performances, mais on commence à rentrer dans la bidouille et tout, donc je te conseille, exceptionnellement parce que tu as une R9 390, d’essayer d’abord le pilote AMDGPU-PRO sur une Ubuntu LTS. Si ça marche et que tu es satisfait, ne touche à rien. Si tu as des problèmes, ou si tu veux le pilote libre reviens me poser des questions, j’ai à disposition une liste de contournements pour à la fois les bugs du pilote AMDGPU-PRO et ceux du pilote libre.
Tu trouveras un petit comparatif entre le pilote libre et le pilote propriétaire sur cette page que je maintiens.
Si tu veux absolument la dernière Ubuntu et/ou tenter l’aventure du pilote libre, juste pour le fun ou parce que tu en as besoin (par exemple tu aurais besoin de GalliumNine pour jouer à GoldenEye Source ;D), pas de problème, il n’y a rien qui s’y oppose et si on suit bien les procédures, ça marche super bien (et si on suit vraiment bien les procédures, sans bug non-plus :p). Dans ce cas là fais-moi signe et je te donnerai toutes les infos.
Pour information, il y a des bugs du pilote propriétaire pour lesquels je n’ai pas de contournement, mais je n’ai rencontré aucun bug du pilote libre qui n’ai pas de contournement. C’est juste que pour installer le pilote libre à jour, la procédure est assez longue…
Tout ça va dépendre de tes besoins. Tu as besoins d’OpenCL ? tu as besoin de GalliumNine (implémentation native de Direct3D9) ? Tout ça peut déterminer ton choix de pilote.
Note que le bug que tu rapportes semble ne pas être lié au fait que tu as forcé l’installation sur Ubuntu 17.04 du pilote AMDGPU-PRO prévu pour la 16.04, si ça n’avait pas marché, tu n’aurais même pas l’écran de connexion.
L’écran noir sur le pilote proprio me dit quelque chose, mais dans mes souvenirs l’écran de connexion lui-même était affecté, donc tu as probablement un autre bug que celui que je connais et pour lequel j’ai un contournement. Pour le fait que ta session s’interrompe tout de suite après connexion pour te faire revenir à l’écran de connexion, vérifie que la session par défaut n’est PAS une session Wayland, il ne faut probablement PAS que ta session soit une session Wayland avec le pilote propriétaire. De manière générale, les bureaux Wayland ne sont pas encore tout à fait près, ça y est presque, mais il subsiste quelques trucs bizarres parfois…
ce commentaire est sous licence cc by 4 et précédentes
[^] # Re: "assez populaire"?
Posté par Thomas Debesse (site web personnel, Mastodon) . En réponse au journal Au voleur.sh. Évalué à 3. Dernière modification le 04 août 2017 à 20:12.
la chute est énorme !
ce commentaire est sous licence cc by 4 et précédentes
[^] # Rayer les mentions inutiles
Posté par Thomas Debesse (site web personnel, Mastodon) . En réponse à la dépêche PyCon-fr du 21 au 24 septembre 2017 à Toulouse : appel à contributions. Évalué à 4. Dernière modification le 08 juillet 2017 à 13:41.
La dépêche est encore à l’état de brouillon, il reste encore à effacer les mentions inutiles.
Imposer aux autres son indécision et refuser sciemment de s’exprimer dans un langage verbal, c’est un manque de respect. Je comprends que certains n’aient pas envie de venir en voyant que l’annonce est cousue d’irrespect. Il est légitime de craindre de ne pas être respecté à la PyCon-fr, cette annonce donnant la couleur.
S’exprimer dans un langage verbal, c’est une forme de respect.
Faire l’effort grammatical nécessaire à cette expression, c’est une forme de respect.
Rédiger son texte, c’est une forme de respect.
L’auteur de cette dépêche n’a pas terminé la rédaction, et impose à chacun des lecteurs d’achever mentalement le travail de rédaction qu’il n’a pas voulu faire. Ce type de comportement va à l’exact opposé d’une volonté d’inviter ou de souhaiter la bienvenue. Ce n’est pas accueillant.
ce commentaire est sous licence cc by 4 et précédentes
[^] # Re: Timing
Posté par Thomas Debesse (site web personnel, Mastodon) . En réponse à la dépêche Multiseat avec des pilotes libres, non libres et systemd. Évalué à 2.
Au CNAM Paris c’était encore comme ça en 2008 avec le choix entre un bureau déporté Windows ou Linux (mais à La Plaine c’était que des desktop Windows partout :-/).
ce commentaire est sous licence cc by 4 et précédentes
[^] # Re: Leave Jack alone!
Posté par Thomas Debesse (site web personnel, Mastodon) . En réponse au journal PipeWire veut unifier la gestion des flux audio et video. Évalué à 2.
J’ai fait un ticket pour PipeWire à ce sujet, ça m’étonnerait qu’insérer PulseAudio entre PipeWire et ALSA soit un contournement acceptable :
https://github.com/wtay/pipewire/issues/4
ce commentaire est sous licence cc by 4 et précédentes
[^] # Re: Leave Jack alone!
Posté par Thomas Debesse (site web personnel, Mastodon) . En réponse au journal PipeWire veut unifier la gestion des flux audio et video. Évalué à 4. Dernière modification le 03 juillet 2017 à 05:30.
OK, alors on va tout de suite déchanter. Si je suis ce rapport de bug que j’ai ouvert il y a 4 ans et demi, GStreamer ne sait toujours pas faire de l’audio en live avec une interface Alsa (et n’a jamais su faire).
ce commentaire est sous licence cc by 4 et précédentes
[^] # Re: Vorbis
Posté par Thomas Debesse (site web personnel, Mastodon) . En réponse au journal Opus 1.2. Évalué à 2.
Pour des opex de radio FM, (essentiellement du commentaire d’événement, donc de la voix sur des voix et/ou le son de l’événement, musique de cérémonie etc.) je fais de l’Opus 48kbps mono quand je dois passer par du 4g, ce qui sonne mieux qu’un mp3 64kbps mono (quand on parle de musique 128kbps, c’est 128kbps pour deux canaux). Niveau rendu sonore, la perte de qualité est toujours ailleurs (les aléas de la captation, cigales, vent…).
ce commentaire est sous licence cc by 4 et précédentes
[^] # Re: Opus
Posté par Thomas Debesse (site web personnel, Mastodon) . En réponse au journal Opus 1.2. Évalué à 6.
Oui perso je ne vois pas d’un super bon œil ces « plate-formes gratuites qui font tout et même la magie pour pas un rond », mais indépendamment de mes sentiments à l’égard de ces plate-formes elle-mêmes, ça reste de bons témoins de la maturité d’une technologie.
ce commentaire est sous licence cc by 4 et précédentes
[^] # Re: Opus
Posté par Thomas Debesse (site web personnel, Mastodon) . En réponse au journal Opus 1.2. Évalué à 7.
En fait Opus pénètre tranquillement mais sûrement le marché. Par exemple la plate-forme Discord qui se donne pour ambition de remplacer Skype et TeamSpeak dans le secteur du jeu vidéo utilise Opus. En fait les gens utilisent Opus sans le savoir. Opus marche bien et commence à être déployé un peu partout maintenant. Même Apple, plutôt réticent (euphémisme) aux formats qui ne sont pas dans son portefeuille de brevet pousse Opus avec WebRTC dans Safari.
ce commentaire est sous licence cc by 4 et précédentes
[^] # Re: Vorbis
Posté par Thomas Debesse (site web personnel, Mastodon) . En réponse au journal Opus 1.2. Évalué à 5.
Avec un débit plus élevé, il deviendra difficile de discriminer les formats.
Globalement, il faut retenir qu’à débit identique, Opus reproduit un son moins altéré. Je serais curieux que quelqu’un me démontre que la qualité chute quand le débit augmente (on n’est pas à l’abri d’un gros défaut de conception, mais bon).
ce commentaire est sous licence cc by 4 et précédentes
[^] # Re: Pas assez rapide
Posté par Thomas Debesse (site web personnel, Mastodon) . En réponse au journal Panne du système 3D Secure… pour cause de non renouvellement de nom de domaine. Évalué à 9.
Chez moi ils demandent 24h supplémentaires pour l’ajout du bénéficiaire avant de pouvoir faire le virement. En plus ils comptent en jours ouvrés, donc si je fais mon achat le Vendredi Saint, je dois attendre le mardi de Pâques pour faire mon virement, et le vendeur recevra l’argent au mieux le mercredi de Pâques. Cinq jours si tout se passe bien, et il faut que je pointe et repointe sur le site de ma banque pour bien mener à terme la transaction… Il n’est bien entendu pas possible d’ordonner le virement en même temps qu’on ajoute le bénéficiaire en laissant le système gérer lui-même la procédure et ordonner tout seul l’exécution du virement dès que le bénéficiaire est validé, ce serait trop simple à d~faut d’être lent… :-/
ce commentaire est sous licence cc by 4 et précédentes
[^] # Re: Des branquignoles
Posté par Thomas Debesse (site web personnel, Mastodon) . En réponse au journal Panne du système 3D Secure… pour cause de non renouvellement de nom de domaine. Évalué à 10.
Même expérience. Ça donne l’impression qu’il n’y a dans l’équipe plus que ceux qui touchent les salaires et que ceux qui faisaient (des stagiaires ?) ne sont plus là depuis longtemps.
ce commentaire est sous licence cc by 4 et précédentes
[^] # Re: au moins, ils se sont pas fait piquer le DN
Posté par Thomas Debesse (site web personnel, Mastodon) . En réponse au journal Panne du système 3D Secure… pour cause de non renouvellement de nom de domaine. Évalué à 4.
J’ose espérer que si la disponibilité de 3D Secure repose sur le DNS, sa sécurité n’en dépend pas. Il doit certainement y avoir des protocoles entre les différentes parties qui font que celui qui posséderait le domaine sans être un interlocuteur 3D Secure officiel (reconnu sur la base d’une signature qu’une autre partie certifie par exemple) ne pourrait conduire une transaction 3D Secure à terme…
ce commentaire est sous licence cc by 4 et précédentes
[^] # Re: Automatiser n'est pas forcément une bonne idée dans ce cas
Posté par Thomas Debesse (site web personnel, Mastodon) . En réponse au journal Mes péripéties avec la répétition espacée. Évalué à 5.
J’ai ruiné mon espagnol à cause d’un prof comme ça. Et c’était justement le cours où « écrire » semble le plus inadapté : un cours de langue. Mais en fait j’avais élaboré une méthode qui me correspondait très bien : je notais tout ce qui passait dès que je sentais ou constatais que ma mémoire était incapable de ressortir spontanément un mot de vocabulaire ou une forme verbale etc. Mes notes n’étaient donc que des listes, et en fait je reproduisait une part de ce mécanisme des boîtes expliquée dans ce journal : ce que je constate ne pas savoir, ou pas assez, je le mettais « dans la boîte », sur ma feuille, et en fait je ne revenais jamais sur ces feuilles, ce qui comptait, c’est que je fasse un effort intellectuel pour ces choses que je constatais ne pas avoir mémorisé, et je le faisais en direct. Ce que je savais déjà, je l’ignorais, ce que je ne savais pas ou pas assez, je faisais ce geste simple engageant ma mémoire et mon intelligence : je le notais.
Je n’avais jamais été aussi bon en un quelconque cours de langue qu’en espagnol, puis j’ai changé de lycée, et le prof m’a retiré ma feuille. J’ai complètement sombré. Certains traits de mon caractère font que les cours de langues me sont habituellement complètement inadaptés dans leur forme.
Aussi, je reviendrai en particulier sur ce point :
Parfois ce mécanisme est essentiel voire vital pour certains élèves ayant un caractère plutôt secondaire. Il y a aussi des mécanismes implicites (inconscients ?) de mémorisation, quand la mémoire retient ce que l’intelligence ou le corps procède, sans avoir à y prêter attention : une forme d’apprentissage inconscient des données que la personne traite. Dans cette situation, tout ce que la personne entend ressort aussitôt, excepté ce qu’il sanctionne par écriture. Dans ce cas, forcer l’élève à ne pas noter le contraint à tout oublier, car on le prive du mécanisme qui enclenche ce processus inconscient de mémorisation et l’information n’atteint pas certaines zones de son intelligence, ces zones où la mémoire pioche ce qu’il faut retenir.
ce commentaire est sous licence cc by 4 et précédentes
[^] # Re: redirection, mail site web
Posté par Thomas Debesse (site web personnel, Mastodon) . En réponse au journal Merci pour ce moment, gmail. Évalué à 2. Dernière modification le 29 mai 2017 à 00:48.
J’ai aussi lu ça comme étant « en entrée », mais s’ils font des redirections, tout ce qui sort redirigé est d’abord entré une première fois (d’où la nécessité de la greylist en entrée qui sabre la majeure partie du spam, généralement suffisante pour rester en dessous du seuil d’intolérance de Google).
ce commentaire est sous licence cc by 4 et précédentes
# redirection, mail site web
Posté par Thomas Debesse (site web personnel, Mastodon) . En réponse au journal Merci pour ce moment, gmail. Évalué à 4.
Dans la page service je lis :
Est-ce que vous faites des redirections ? Si oui il n’y a pas de magie, du point de vue de Google, vous êtes la source de tout le spam que vous recevez et redirigez. Une greylist en entrée est très efficace. L’avantage de la greylist c’est qu’il y a un très fort taux d’élimination de spam et zéro faux positif, l’inconvénient c’est que ça ajoute un délai à chaque nouvelle “source”, mais plus vous avez d’utilisateur, et plus moins ces sources sont rares.
Et si vous n’avez pas officiellement de service de redirection, le logiciel de webmail (roundcube?) que vous utilisez permet-il à l’utilisateur de configurer une redirection dans l’interface ? Si oui vous n’y couperez pas, vous devrez mettre en place une greylist et c’est non négociable. La greylist n’analyse pas le contenu du mail ni l’enveloppe, donc la neutralité est protégée.
La greylist soumet simplement l’émetteur du mail à un test de fonctionnalité très basique (“rééssaie plus tard”, en gros) pour éliminer les émetteurs pour qui perdre un mail n’est pas un problème. Un serveur SMTP légitime qui sert à des vrais gens ne perd jamais un mail.
Je lis aussi :
Est-ce que les mails envoyés par les sites-web sortent par la même adresse que les mails envoyés par les boites mail ? Si oui il faut changer ça très rapidement, il suffit d’un wordpress vérolé pour te tuer ta réputation.
ce commentaire est sous licence cc by 4 et précédentes
[^] # Re: 1 an
Posté par Thomas Debesse (site web personnel, Mastodon) . En réponse au journal Devuan Jessie 1.0. Évalué à 10.
Tu as ajouté un mot important: panacée.
Systemd n’a jamais été vendue comme une panacée. Homme de paille, fin.
ce commentaire est sous licence cc by 4 et précédentes
[^] # Re: Vocabulaire…
Posté par Thomas Debesse (site web personnel, Mastodon) . En réponse au journal 2 bookmarks sécurité Windows. Évalué à 4.
une dépêche est sensée être dépêchée (rapide) !
ce commentaire est sous licence cc by 4 et précédentes
[^] # Re: Tu ne dois pas souvent dormir...
Posté par Thomas Debesse (site web personnel, Mastodon) . En réponse au journal [TRÈS_HS] « Moyen de gamme », sur lemonde.fr, nan mais je rêve. Évalué à 5.
Moué, à chaque fois que j’ai lu Le Monde en vrai sur papier je suis systématiquement tombé sur des fautes incroyables (du niveau de « dans quelques années lumières » ou tout aussi énorme). Et je sais pas pourquoi mais ma tolérance pour les fautes grossières chute très très vite quand c’est imprimé.
Alors le fait que ce soit « une rubrique tout à fait officielle du Monde », papier ou pixel, moué.
ce commentaire est sous licence cc by 4 et précédentes
# dépêche
Posté par Thomas Debesse (site web personnel, Mastodon) . En réponse au journal 2 bookmarks sécurité Windows. Évalué à 10.
Tu veux dire des dépêches ?
En fait les dépêches ont été substituées par des articles de revue… C’est très bien d’avoir ces articles, mais c’est dommage pour l’absence de dépêches.
ce commentaire est sous licence cc by 4 et précédentes