Bonjour,
Étant le fournisseur du patch non-officiel pour linux j'aimerai apporter quelques précisions qui me semblent-ils sont utiles quand je lis ce qui me semble être des erreurs d'appréciations, erreurs, nous le verrons, qui ont leur origine dans la bataille commerciale à laquelle se livre microsoft contre les autres.
Il y a un soucis concernant la diffusion des patchs avec mac et linux. Soucis qui peut se résoudre facilement, bien que ce soit un contournement du problème ; on peut avoir le patch le même jour et la même heure que le patch windows. Mais j'y reviendrai.
Il y a une conception fortement ancrée dans les esprits que pour faire tourner un jeu, et plus généralement un programme, sur autre chose que windows exige des efforts importants de la part des devs. Ceci est faux. Il n'y a pas de raisons objectives pour qu'un jeu tourne moins bien sur mac ou linux que sur windows et il n'y a pas non plus de raisons de déployer un effort très important qui viendrait handicaper le développement PC pour faire tourner le jeu sur mac ou sur linux.
La plus part du temps, régler un bug pour le PC, revient automatiquement à le régler pour le mac et linux. Il doit bien y avoir des bugs spécifiques, mais comparativement aux efforts pour faire un patch, ils sont marginaux.
Ainsi quand je fais une recherche dans le développement de ryzom avec le mot clé linux, je ne trouve que 121 ajouts de code, sur les ~2000 ajouts. Ce qui nous fait du ~5%, et encore il faudrait regarder le nombre de lignes que ça concerne, car j'imagine que la plus part du temps, ce ne doit pas être grand chose.
http://dev.ryzom.com/search/index/ryzom?q=linux&scope=&al l_words=&all_words=1&titles_only=&changesets=1&su bmit=Soumettre
Alors, pourquoi cette idée que faire tourner un jeu sur mac et linux est complexe et pourquoi cette idée semble être confirmée par le retard à l'allumage du patch ryzom sur mac et linux ?
Quelques faits tout d'abord :
De nombreux jeux de qualité professionnelle est été porté sur linux par un homme seul, certes très compétent. Il s'agit d'icculus qui a porté des jeux comme braid, pray, second life, google earth, unreal tournament, quake 3...
http://en.wikipedia.org/wiki/Ryan_Gordon#Ported_titles
La société ID software (quake, doom...) a porté de nombreux jeux sur linux avec l'aide d'un seul homme (plusieurs en fait dans l'histoire de la société, mais c'est le dernier en date) : http://en.wikipedia.org/wiki/Timothee_Besset
Comment cela est-il possible et pourquoi est-ce si difficile pour d'autres jeux ?
Cela dépend en grande partie des choix initiaux qui sont fait dans le développement : le programme s'appuie sur des briques logicielles pour gérer différentes choses de bas niveau, et pour un jeu, la brique graphique est sans doute la plus importante. Si au départ le choix est fait de s'appuyer sur une brique dite "portable" alors il sera aisé de faire tourner le jeu sur mac et linux, si au contraire au départ le jeu se contruit sur une brique propriétaire alors le portage sur mac ou linux sera complexe.
Concernant le graphisme, les briques de bases sont généralement DirectX ou bien OpenGL. Si ID software a pu porter facilement ses jeux sur mac et linux, c'est qu'ils ont choisi OpenGL (et ils le choisissent toujours aujourd'hui !). Ryzom aussi s'appuie sur OpenGL.
OpenGL est dit "portable" car cette brique pour le graphisme existe aussi bien sur windows que sur mac et linux. Dès lors porter un jeu devient aisé. En effet, OpenGL est un standard et il est libre à tous de créer une brique OpenGL. Cependant, à l'heure actuelle, linux vient d'avoir la version 3.0 d'openGL pour les cartes intel, alors qu'on en est à la version 4 et des poussières. Mais ce n'est pas un soucis, car les fabriquants de cartes graphiques (nvidia et ati) livrent leurs pilotes avec la dernière version dedans.
De l'autre côté, DirectX est complètement fermé, c'est une boite noire qui n'existe que sur windows et microsoft ne se prive pas de mettre toute sa puissance commerciale à son service pour justement empécher que des jeux sortent sur windows, mac et linux !
Cet article retrace l'historique de la bataille entre DirectX et OpenGL ; "L’utilisation [...] a changé en faveur de DirectX lorsque Microsoft mena une double campagne autour du lancement de la Xbox 360 et Windows Vista, en y ajoutant la propagation de FUD (peur, incertitude et doute) à propos de l’avenir d’OpenGL, et en exagérant sur les mérites de DirectX. Depuis lors, les effets de réseau ont amplifié cette divergence, jusqu’à ce qu’OpenGL ait presque complètement disparu des plateformes de jeux traditionnelles."
http://www.jeuxlinux.fr/a285-Pourquoi_devriez-vous_utiliser_OpenG L_et_non_DirectX_.html
Enfin les termes pour nommer ce dont on parle sont trompeurs : il n'a pas de "PC" qu'on peut opposer à mac ou linux. Aujourd'hui, les macs tournent sur du matériel "PC" et linux aussi. La boîte qui est posée à côté de votre bureau et qui fait tourner un windows, ou un mac ou un linux contient le même genre de matériel : un PC. Ce qui change le plus ce n'est pas l'ordinateur, mais la couche logicielle qui est entre l'ordinateur et le jeu ; ce qu'on appelle windows, mac ou linux. On peut donc installer windows, mac et linux sur le même ordinateur : http://www.commentcamarche.net/forum/affich-10823398-tuto-triple- boot-windows-7-ubuntu-macosx
Enfin, pourquoi le patch ryzom a-t-il du mal à sortir sur mac et linux ?
Pour le mac cela tient au mode de distribution des logiciels par leur sytème de "store". Le patch est proposé par l'équipe ryzom et cela prend du temps pour l'avoir sur le store. Je ne sais pas pourquoi.
Pour linux, ils auraient pu le sortir le jour même... à partir du moment où ils rendent le code source public, ce qu'ils doivent faire de par la licence sous la quelle est ryzom, il suffit de compiler ryzom en "static", comme je l'ai fait et d'ajouter les fichiers de donnés qui ont changé. Cela m'a pris quelques jours pour trouver la procédure adéquate pour le faire ; au prochain patch j'espère être en mesure de sortir la version linux le jour même.
Donc, pour le coup je pense que c'est l'équipe de dev qui devrait chercher à synchroniser les sorties, je ne sais pas si c'est possible avec apple (et aussi ubuntu qui a son store lui aussi). Peut-être peuvent-ils sortir le patch à destination d'apple et ubuntu une semaine à l'avance et leur dire de le publier tel jour pour que nous ayons tous le patch en même temps.
De mon côté il me suffit d'avoir les sources et je repompe les données du client windows. C'est l'affaire d'une heure environ.
J'espère avoir montré qu'il n'y a pas de difficulté technique particulière pour les mac et linux ; ce n'est qu'un problème de diffusion.
Étant le fournisseur du patch non-officiel pour linux j'aimerai apporter quelques précisions qui me semblent-ils sont utiles quand je lis ce qui me semble être des erreurs d'appréciations, erreurs, nous le verrons, qui ont leur origine dans la bataille commerciale à laquelle se livre microsoft contre les autres.
Il y a un soucis concernant la diffusion des patchs avec mac et linux. Soucis qui peut se résoudre facilement, bien que ce soit un contournement du problème ; on peut avoir le patch le même jour et la même heure que le patch windows. Mais j'y reviendrai.
Il y a une conception fortement ancrée dans les esprits que pour faire tourner un jeu, et plus généralement un programme, sur autre chose que windows exige des efforts importants de la part des devs. Ceci est faux. Il n'y a pas de raisons objectives pour qu'un jeu tourne moins bien sur mac ou linux que sur windows et il n'y a pas non plus de raisons de déployer un effort très important qui viendrait handicaper le développement PC pour faire tourner le jeu sur mac ou sur linux.
La plus part du temps, régler un bug pour le PC, revient automatiquement à le régler pour le mac et linux. Il doit bien y avoir des bugs spécifiques, mais comparativement aux efforts pour faire un patch, ils sont marginaux.
Ainsi quand je fais une recherche dans le développement de ryzom avec le mot clé linux, je ne trouve que 121 ajouts de code, sur les ~2000 ajouts. Ce qui nous fait du ~5%, et encore il faudrait regarder le nombre de lignes que ça concerne, car j'imagine que la plus part du temps, ce ne doit pas être grand chose.
http://dev.ryzom.com/search/index/ryzom?q=linux&scope=&al l_words=&all_words=1&titles_only=&changesets=1&su bmit=Soumettre
Alors, pourquoi cette idée que faire tourner un jeu sur mac et linux est complexe et pourquoi cette idée semble être confirmée par le retard à l'allumage du patch ryzom sur mac et linux ?
Quelques faits tout d'abord :
De nombreux jeux de qualité professionnelle est été porté sur linux par un homme seul, certes très compétent. Il s'agit d'icculus qui a porté des jeux comme braid, pray, second life, google earth, unreal tournament, quake 3...
http://en.wikipedia.org/wiki/Ryan_Gordon#Ported_titles
La société ID software (quake, doom...) a porté de nombreux jeux sur linux avec l'aide d'un seul homme (plusieurs en fait dans l'histoire de la société, mais c'est le dernier en date) : http://en.wikipedia.org/wiki/Timothee_Besset
Comment cela est-il possible et pourquoi est-ce si difficile pour d'autres jeux ?
Cela dépend en grande partie des choix initiaux qui sont fait dans le développement : le programme s'appuie sur des briques logicielles pour gérer différentes choses de bas niveau, et pour un jeu, la brique graphique est sans doute la plus importante. Si au départ le choix est fait de s'appuyer sur une brique dite "portable" alors il sera aisé de faire tourner le jeu sur mac et linux, si au contraire au départ le jeu se contruit sur une brique propriétaire alors le portage sur mac ou linux sera complexe.
Concernant le graphisme, les briques de bases sont généralement DirectX ou bien OpenGL. Si ID software a pu porter facilement ses jeux sur mac et linux, c'est qu'ils ont choisi OpenGL (et ils le choisissent toujours aujourd'hui !). Ryzom aussi s'appuie sur OpenGL.
OpenGL est dit "portable" car cette brique pour le graphisme existe aussi bien sur windows que sur mac et linux. Dès lors porter un jeu devient aisé. En effet, OpenGL est un standard et il est libre à tous de créer une brique OpenGL. Cependant, à l'heure actuelle, linux vient d'avoir la version 3.0 d'openGL pour les cartes intel, alors qu'on en est à la version 4 et des poussières. Mais ce n'est pas un soucis, car les fabriquants de cartes graphiques (nvidia et ati) livrent leurs pilotes avec la dernière version dedans.
De l'autre côté, DirectX est complètement fermé, c'est une boite noire qui n'existe que sur windows et microsoft ne se prive pas de mettre toute sa puissance commerciale à son service pour justement empécher que des jeux sortent sur windows, mac et linux !
Cet article retrace l'historique de la bataille entre DirectX et OpenGL ; "L’utilisation [...] a changé en faveur de DirectX lorsque Microsoft mena une double campagne autour du lancement de la Xbox 360 et Windows Vista, en y ajoutant la propagation de FUD (peur, incertitude et doute) à propos de l’avenir d’OpenGL, et en exagérant sur les mérites de DirectX. Depuis lors, les effets de réseau ont amplifié cette divergence, jusqu’à ce qu’OpenGL ait presque complètement disparu des plateformes de jeux traditionnelles."
http://www.jeuxlinux.fr/a285-Pourquoi_devriez-vous_utiliser_OpenG L_et_non_DirectX_.html
Enfin les termes pour nommer ce dont on parle sont trompeurs : il n'a pas de "PC" qu'on peut opposer à mac ou linux. Aujourd'hui, les macs tournent sur du matériel "PC" et linux aussi. La boîte qui est posée à côté de votre bureau et qui fait tourner un windows, ou un mac ou un linux contient le même genre de matériel : un PC. Ce qui change le plus ce n'est pas l'ordinateur, mais la couche logicielle qui est entre l'ordinateur et le jeu ; ce qu'on appelle windows, mac ou linux. On peut donc installer windows, mac et linux sur le même ordinateur : http://www.commentcamarche.net/forum/affich-10823398-tuto-triple- boot-windows-7-ubuntu-macosx
Enfin, pourquoi le patch ryzom a-t-il du mal à sortir sur mac et linux ?
Pour le mac cela tient au mode de distribution des logiciels par leur sytème de "store". Le patch est proposé par l'équipe ryzom et cela prend du temps pour l'avoir sur le store. Je ne sais pas pourquoi.
Pour linux, ils auraient pu le sortir le jour même... à partir du moment où ils rendent le code source public, ce qu'ils doivent faire de par la licence sous la quelle est ryzom, il suffit de compiler ryzom en "static", comme je l'ai fait et d'ajouter les fichiers de donnés qui ont changé. Cela m'a pris quelques jours pour trouver la procédure adéquate pour le faire ; au prochain patch j'espère être en mesure de sortir la version linux le jour même.
Donc, pour le coup je pense que c'est l'équipe de dev qui devrait chercher à synchroniser les sorties, je ne sais pas si c'est possible avec apple (et aussi ubuntu qui a son store lui aussi). Peut-être peuvent-ils sortir le patch à destination d'apple et ubuntu une semaine à l'avance et leur dire de le publier tel jour pour que nous ayons tous le patch en même temps.
De mon côté il me suffit d'avoir les sources et je repompe les données du client windows. C'est l'affaire d'une heure environ.
J'espère avoir montré qu'il n'y a pas de difficulté technique particulière pour les mac et linux ; ce n'est qu'un problème de diffusion.
---
http://sagaofbastien.fr