Quelques mois après la sortie du jeu Rage et de son moteur id Tech 5, id Software a publié les sources du moteur id Tech 4 sous licence GPL v3. Cet effort est dû principalement à John Carmack, fondateur d’id Software et grand fan de la GPL, et Timothee Besset, auteur des divers portages sous GNU/Linux des moteurs id Tech. Contrairement aux anciens moteurs écrits en C, celui‐ci est en C++.
Pour la petite histoire, la publication de ces sources a subi un contretemps, car un des algorithmes utilisés, appelé Carmack’s reverse, était lié à un brevet déposé par Creative Labs. Cet algo a d’ailleurs été découvert par John Carmack indépendamment de l’algo originel. Il a donc du réécrire cette partie du code pour avoir l’accord de leur département juridique.
Tant qu’on y est, si vous voulez vous plonger dans le code source de Quake 1 ou 2, Fabien Sanglard en a fait de très bonnes revues :
Aller plus loin
- Le GitHub des sources de Doom 3 (588 clics)
- Journal à l’origine de la dépêche (321 clics)
- Site pour suivre les évolutions libres de id Tech4 : iodoom3 (212 clics)
# Carmack's reverse
Posté par Andréas Livet . Évalué à 7.
A en croire le readme sur le github :
Le fameux code n'est pas inclut dans les sources ;).
Andréas
[^] # Re: Carmack's reverse
Posté par Yannick . Évalué à 10.
Pour ce que j'en ai compris, la technique est bien incluse dans le code. Carmack a contourné le brevet avec 4 lignes de code en plus et deux lignes changées.
cf. https://twitter.com/ID_AA_Carmack/statuses/137189212519792640?_escaped_fragment_=/ID_AA_Carmack/status/137189212519792640#!/ID_AA_Carmack/status/137189212519792640
Il dit aussi que cela prouve que ce brevet est "idiot".
[^] # Re: Carmack's reverse
Posté par reno . Évalué à 3.
Ce que je ne comprends pas trop c'est qu'il a été dit que Creative avait utilisé ce brevet pour forcer Id a supporter EAX pour Doom3, si quelques lignes suffisaient pourquoi ils ne l'ont pas fait à l'époque??
Ces lignes ont des conséquences au niveau performance? L'histoire est incorrecte?
[^] # Re: Carmack's reverse
Posté par Thomas Debesse (site web personnel) . Évalué à 2.
Sachant que l'EAX est une techno audio et que le code incriminé porte sur le graphisme, ce n'était pas une affaire de chantage genre "vous venez de réveiller un brevet dormant dans notre porte-feuille, vous supportez et faites la promotion de notre techno, et on vous embête moins" ?
ce commentaire est sous licence cc by 4 et précédentes
[^] # Re: Carmack's reverse
Posté par Thomas Debesse (site web personnel) . Évalué à 8.
après un peu de recherche (il me semblait bien que quelque chose de très flou dans ma mémoire me rappelait une histoire comme ça) :
http://newenthusiast.com/carmacks-reverse-still-an-issue-20090409489
http://www.shacknews.com/article/32824/creative-labs-patent-doom-3
ce commentaire est sous licence cc by 4 et précédentes
[^] # Re: Carmack's reverse
Posté par Jux (site web personnel) . Évalué à 5.
En fait il y a deux techniques : Depth fail et Depth pass . Le passage de l'une à l'autre est trivial, mais seule une des deux est breveté :
http://en.wikipedia.org/wiki/Shadow_volume
[^] # Re: Carmack's reverse
Posté par reno . Évalué à 4.
Trivial, mais a un coût en performance comme l'implique le texte trouvé par Thomas DEBESSE (merci!).
[^] # Re: Carmack's reverse
Posté par antistress (site web personnel) . Évalué à 5.
Je suis curieux de savoir comment bossent les juristes : ils ont une double compétence pour éplucher juridiquement le code technique ou bien ?!
[^] # Re: Carmack's reverse
Posté par Juke (site web personnel) . Évalué à 10.
bien
[^] # Re: Carmack's reverse
Posté par imr . Évalué à 6.
je ne sais pas mais la GPLv3 c'est eux.
[^] # Re: Carmack's reverse
Posté par Anonyme . Évalué à 3.
Ton message colle bien à ton avatar. :)
[^] # Re: Carmack's reverse
Posté par nigaiden . Évalué à 3.
J'ai voulu tester une fois, par curiosité. J'ai contacté le service juridique du client chez qui je travaillais pour demander : "On voudrait ajouter la lecture de périphériques au format FAT32 dans ce système embarqué, mais il paraît de Microsoft a déposé des brevets ; qu'est-ce qu'on fait ?" On m'a répondu qu'il fallait d'abord que j'indique précisément les brevets concernés et en quoi l'implémentation (du noyau Linux) viole ces brevets. Bref, ces juristes là n'avaient visiblement pas de compétence technique et c'était à moi de me taper le boulot de recherche. Ce n'est pas étonnant, mais c'est tout de même amusant de vérifier cela sur le terrain.
# Comparaison de rendus
Posté par Neije . Évalué à 9.
Deux impressions d'écrans pour montrer la différence de rendu serait sympatoche.
Par exemple pour aider le néophyte à évaluer l'amélioration du à cette évolution du moteur.
Non ?
Et aussi, c'est bien, mais à part le moteur en lui même, que cela apporte-t-il au monde du jeu vidéo libre ? des jeux vont-ils l'adopter en remplacement du leur (ou de la version précédente). Le passage C au C++ ne risque-t-il pas de compliquer la tache.
Finalement, quel sont les avantages et points forts / inconvénients points faible, si l'on compare aux autres moteurs fonctionnel sous Linux (Ogre, Unigine ...)
my 2 cents !
Ce n'est pas parce que les choses sont difficiles que nous n'osons pas. C'est parce que nous n'osons pas qu'elles sont difficiles. - Sénéque
[^] # Re: Comparaison de rendus
Posté par Yannick . Évalué à 10.
Voici en gros les effets que ce moteur apporte :
[^] # Re: Comparaison de rendus
Posté par Neije . Évalué à 2.
sympa. Effectivement ça a l'air mieux. tu as une ou deux captures de l'ancien moteur ?
Mais ces textures sont-elles faciles à recréer dans un jeu libre comme open Arena par ex ?
Ce n'est pas parce que les choses sont difficiles que nous n'osons pas. C'est parce que nous n'osons pas qu'elles sont difficiles. - Sénéque
[^] # Re: Comparaison de rendus
Posté par imr . Évalué à 4.
Ce que tu montres, c'est tiré de ET quake wars et c'est un ajout au moteur de doom3 appelé mega texture. Ca a été développé parce que les environnements extérieurs étaient une faiblesse notoire du moteur de doom3. Ca m'étonnerait que ce soit dans cette release.
[^] # Re: Comparaison de rendus
Posté par Yannick . Évalué à 4.
Et pourtant il y a bien un fichier des sources qui s'appelle "MegaTexture"
https://github.com/TTimo/doom3.gpl/blob/fb1609f5540e3578b579c5e3476de5613c45d3a6/neo/renderer/MegaTexture.cpp
https://github.com/TTimo/doom3.gpl/blob/fb1609f5540e3578b579c5e3476de5613c45d3a6/neo/renderer/MegaTexture.h
J'en conclu que cette techno y est aussi.
[^] # Re: Comparaison de rendus
Posté par Damien Thébault . Évalué à 4.
En fait si je me rappelle bien, dans ET:QW, megatexture a été optimisé, avec notamment la possibilité de compresser mieux les textures et/ou de les charger de manière plus dynamique.
Il me semble qu'à l'époque, quand ET:QW est sorti, il y avait une map pour Doom3 qui utilisait du megatexture également (mais qui était plus gourmand/moins performant que dans ET:QW).
http://forums.3drealms.com/vb/showthread.php?t=23901
http://forum.beyond3d.com/showthread.php?t=38691
[^] # Re: Comparaison de rendus
Posté par imr . Évalué à 3.
D'après ton lien, c'est une première version. Il parle d'une limite de 16000² pour les textures; les mega textures dans etqw sont de 32000² et celles dans rage, qui a été encore amélioré, sont censées être encore plus grandes.
Et j'imagine que les perfs ne sont pas les mêmes s'il a pu agrandir les textures.
[^] # Re: Comparaison de rendus
Posté par deasy . Évalué à 0.
Si je ne me trompe pas par défaut Rage est en 4000/8000 et on peut monter à 16000 et plus.
[^] # Re: Comparaison de rendus
Posté par imr . Évalué à 1.
On ne doit pas parler de la même chose.
[^] # Re: Comparaison de rendus
Posté par deasy . Évalué à 0.
Bah si je parle des textures.
[^] # Re: Comparaison de rendus
Posté par barmic . Évalué à 10.
C'est le moteur le plus optimisé pour afficher des pièces noires sans lumière. Il est sert aussi de benchmark pour tester la profondeur de noir des écrans.
Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)
[^] # Re: Comparaison de rendus
Posté par Neije . Évalué à -10.
en même temps, une pièce noire sans lumière = on voit rien. donc optimiser un truc pour ne rien afficher, c'est pas un peu stupide ? suffit d'afficher du noir ...
Après est-ce bien noir ou pas, ça ça dépendra de l'écran non ? et là le mieux, c'est plasma (mais peut être pas assez réactif pour un jeu sur pc) ou les nouvelles techno LCD (mais je trouve ça trop cher pour un pc).
Ce n'est pas parce que les choses sont difficiles que nous n'osons pas. C'est parce que nous n'osons pas qu'elles sont difficiles. - Sénéque
[^] # Re: Comparaison de rendus
Posté par zebra3 . Évalué à 8.
Je pense que tu n'as pas saisi l'ironie.
Doom 3 est très connu pour offrir de nombreux environnements presque sans aucune luminosité, et il est surtout impossible de manipuler la lampe torche en même temps qu'une arme ce qui en fait un jeu très difficile et stressant, mais dont on ne profite pas vraiment des graphismes.
Article Quarante-Deux : Toute personne dépassant un kilomètre de haut doit quitter le Tribunal. -- Le Roi de Cœur
[^] # Re: Comparaison de rendus
Posté par zebra3 . Évalué à 9.
Tiens, j'en profite pour ajouter cette citation de John Carmak himself sur Doom 3 : « The game would have been more enjoyable if people coud actually see it ».
Article Quarante-Deux : Toute personne dépassant un kilomètre de haut doit quitter le Tribunal. -- Le Roi de Cœur
[^] # Re: Comparaison de rendus
Posté par barmic . Évalué à 2.
Je crois qu'ils ont sorti des patchs pour pour ça (permettre d'avoir la lampe sur l'arme et augmenter la luminosité).
Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)
[^] # Re: Comparaison de rendus
Posté par imr . Évalué à 10.
C'était pas des mods, pluto?
Parce que le coup de la lampe, ça faisait partie du gameplay.
Genre tu es dans une pièce et tu vois rien, et un truc te saute dessus, tu shootes dans tous les sens au hasard, tu flippes.
Ou alors, tu es dans une pièce, un truc te saute dessus, comme tu as la lampe, il est effrayant tu le vois bien, mais tu peux pas tirer dessus, tu flippes.
Le bon joueur, il flippe, alors que le mauvais joueur, il flippe, mais c'est pas pareil.
[^] # Re: Comparaison de rendus
Posté par Damien Thébault . Évalué à 4.
En fait je me suis aperçu à l'époque que jouer avec une meilleure CG qui supportait les pixel shaders 2 ou 3 (passage de GeForce 3 à GeForce 6 pour ma part), permettait d'avoir de la lumière dynamique, du coup quand on est dans une salle toute noire avec 2 ou 3 Imps, bah les boules de feu qu'ils lancent éclairent également la pièce.
(Alors que avant je voyais juste la boule de feu sur fond noir non éclairé, ça permet juste de savoir où est le bras du monstre pendant une ou deux secondes)
[^] # Re: Comparaison de rendus
Posté par barmic . Évalué à 3.
C'est surprenant parce que dans Quake 2 les roquets dégageaient déjà leur propres lumières qui éclairait les murs.
Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)
[^] # Re: Comparaison de rendus
Posté par imr . Évalué à 2.
J'aimerais bien tout comprendre dans ces liens:
http://en.wikipedia.org/wiki/Quake_engine#Precalculating_lighting_and_shadows
http://en.wikipedia.org/wiki/Unified_lighting_and_shadowing
http://en.wikipedia.org/wiki/Shadow_volume
[^] # Re: Comparaison de rendus
Posté par barmic . Évalué à 3.
J'ai pas dis que dans Quake 2 c'était bien fait, j'ai dis que les murs devenaient plus clair au passage d'une requête. :)
Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)
[^] # Re: Comparaison de rendus
Posté par Couz . Évalué à 6.
Genre, tu lui demande si c'est un mur porteur ou une simple cloison, et il s'éclaircit?
[^] # Re: Comparaison de rendus
Posté par Couz . Évalué à 0.
demandes
Need edit
[^] # Re: Comparaison de rendus
Posté par imr . Évalué à 2.
Ils devenaient plus clairs, mais ça n'éclairait pas, parce qu'il n'y avait pas de vrais ombres. Tu le saurais si tu avais lu cette explication lumineuse.
[^] # Re: Comparaison de rendus
Posté par barmic . Évalué à 2.
Mais c'est bien pour ça que je me suis repris pour parler de clair ou pas. Sans avoir besoin de comprendre vraiment la technique dans le jeun on vois bien que seul les murs et le sol sont impactés (pas d'ombre venant les PNJ et pas de lumière sur eux non plus).
Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)
[^] # Re: Comparaison de rendus
Posté par imr . Évalué à 2.
J'ai pas compris ce que tu trouvais surprenant, alors.
[^] # Re: Comparaison de rendus
Posté par reno . Évalué à 2.
Pas vraiment: suivant le mode de calcul de l'illumination tu peux obtenir des résultats assez différents..
[^] # Re: Comparaison de rendus
Posté par bubar🦥 (Mastodon) . Évalué à -1.
[^] # Re: Comparaison de rendus
Posté par Frank-N-Furter . Évalué à 3.
C’était un mod:
Depending on the time of day, the French go either way.
[^] # Re: Comparaison de rendus
Posté par Jux (site web personnel) . Évalué à 6.
C'est sacrément éducatif si tu t'intéresse au rendu 3D. Carmack est un des meilleurs programmeurs de moteurs 3D et donc on y trouve en général des perles et optimisations qu'on ne trouve pas forcément ailleurs.
Je ne pense pas que le passage au C++ change grand chose, surtout que c'est du C++ assez soft (pas d'abus des templates ou autre code illisible. En gros c'est juste pour faire de l'objet plus facilement).
Par rapport à Ogre, le moteur de Doom3 est très orienté FPS alors qu'Ogre est plus généraliste. C'est probablement à la fois un avantage (si on fait un FPS) et un inconvénient (si on veut faire autre chose).
[^] # Re: Comparaison de rendus
Posté par lululaglue (site web personnel) . Évalué à 2.
Lors de la libération des sources du moteur id tech3 (Quake3) on a vu quelques mods devenir des jeux standalone. C'est le cas par exemple de Tremulous, OpenArena, World Of PadMan, Urban Terror, Smokin Guns.
Je pense que des moteurs comme ioquake3 ou Xreal pourraient gagner en fonctionnalités en puisant dans le code de l'id Tech4. Par contre je doute que des jeux existants essayent d'adapter ce moteur. Ce serait un travail colossal pour pas grand chose.
[^] # Re: Comparaison de rendus
Posté par Thomas Debesse (site web personnel) . Évalué à 2.
Ils ne pourront pas faire mieux que s'inspirer des idées exprimées par le code, mais ils ne pourront pas prendre directement du code de iodoom3 pour améliorer ioquake3 ou Xreal, car Doom3 a été libéré en GPLv3, alors que les projets précédents étaient en GPLv2 !
Je n'ai pas du tout suivi les mods de doom3. Ayant apprécié les sorties de Tremulous, d'UrbanTerror et de SmokinGuns particulièrement, est-ce que l'on connait déjà des mods encore suffisamment actifs qui pourraient profiter de cette libération et vivre un renouveau ? Y a t'il sur DLFP des joueurs de mods de Doom3, ou qui au moins connaissent l'écosystème pour émettre des suppositions, ou des souhaits ?
ce commentaire est sous licence cc by 4 et précédentes
[^] # Re: Comparaison de rendus
Posté par Octabrain . Évalué à 2.
Il y a déjà The Dark Mod (http://www.thedarkmod.com/), un mod qui ramène l'univers du jeu Thief (FPS/infiltration médiéval mais loin de la fantasy, voir Dark Project : La Guilde des voleurs)
# Coquille de typo
Posté par gillux . Évalué à 2.
Le lien wikipédia vers la page Carmack's reverse ne fonctionne pas, car vous avez utilisé une apostrophe courbe (’) au lieu d’une droite ('). Dans Wikipédia, les titres d’articles utilisent des apostrophes droites.
[^] # Re: Coquille de typo
Posté par Benoît Sibaud (site web personnel) . Évalué à 3.
Corrigé. Merci.
# Doom 3 sous GPL v3
Posté par antistress (site web personnel) . Évalué à 10.
God Bless John Carmack
[^] # Re: Doom 3 sous GPL v3
Posté par imr . Évalué à 9.
On écrit GNU/god.
[^] # Re: Doom 3 sous GPL v3
Posté par Octabrain . Évalué à 7.
Indice : les initiales de John Carmack.
[^] # Re: Doom 3 sous GPL v3
Posté par imr . Évalué à 8.
Jteve Cobs ?
[^] # Re: Doom 3 sous GPL v3
Posté par zebra3 . Évalué à 3.
Peut-être que Quake 4 sera sous GPLv4 ?
Article Quarante-Deux : Toute personne dépassant un kilomètre de haut doit quitter le Tribunal. -- Le Roi de Cœur
# Ya plus qu'a
Posté par Laurent Carlier . Évalué à 1.
Ya plus qu'a trouver une version de doom 3 encore vendue. Et là ce n'est pas facile!
Des tuyaux ?
[^] # Re: Ya plus qu'a
Posté par Étienne . Évalué à 10.
Non ça c'est Mario.
[^] # Re: Ya plus qu'a
Posté par zebra3 . Évalué à 1.
Pas dur :
http://www.amazon.fr/ACTIVISION-Doom-3/dp/B000G2Y5EO/ref=sr_1_3?ie=UTF8&qid=1322124955&sr=8-3
Article Quarante-Deux : Toute personne dépassant un kilomètre de haut doit quitter le Tribunal. -- Le Roi de Cœur
[^] # Re: Ya plus qu'a
Posté par Laurent Carlier . Évalué à 1.
Que de l'occasion, pas du neuf :-)
[^] # Re: Ya plus qu'a
Posté par Littleboy . Évalué à 2.
Steam?
# Hello Phobos !
Posté par Thomas Debesse (site web personnel) . Évalué à 3.
Un nouveau site pour suivre l'évolution du code de Doom3, iodoom3, porté par l'équipe d'ioquake3 : http://www.iodoom3.org/
Encore très succint, mais à suivre de près... peut-être est-ce un lien à ajouter à la dépêche ?
Ils annoncent un bugzilla : https://bugzilla.icculus.org/enter_bug.cgi?product=iodoom3
une mailing list : http://lists.iodoom.org/listinfo.cgi
et un chan irc #iodoom3 sur Freenode
ce commentaire est sous licence cc by 4 et précédentes
[^] # Re: Hello Phobos !
Posté par BAud (site web personnel) . Évalué à 4.
ça tombe bien, la sonde n'est pas complètement perdue http://www.sciencesetavenir.fr/espace/20111123.OBS5181/phobos-grunt-le-contact-n-est-pas-tout-a-fait-rompu.html :D
plus sérieusement, j'ai ajouté le lien ;-)
[^] # Re: Hello Phobos !
Posté par dest . Évalué à 2.
Plus récent
# Switch vers C++
Posté par weeber (site web personnel) . Évalué à 8.
Quelqu'un a un lien vers une explication de Carmack sur les raisons du switch vers le C++?
Je pense que son point de vue doit être intéressant.
# Escape from butcher bay & dark athena
Posté par deasy . Évalué à 2.
Ce jeu avait mis une claque visuelle à tout les fps existants.
Pourquoi en parler? Son moteur est lui aussi basé sur OpenGL.
Starbreeze Studios a annoncé son passage à Unreal Engine 3 pour leurs prochains titres, pour je suppose se débarrasser de la phase de portage console au maximum.
Qui veut les soudoyer avec moi pour leur demander si ils voudraient bien libérer leur moteur, comme idsoft le fait?
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.