#0 

17-12-2006 19:49:51

kedu
Modérateur
Date d'inscription: 23-09-2006
Messages: 155

Voici, pour Irrlicht.fr, une (très) succincte interview de Jérémie Laval contributeur au projet Mono.Xna ! (Suite à un précédent sujet lancé, il apparaissait intéressant d'avoir des informations sur ces technologies C-sharpiennes ^^) Un grand merci à lui pour cette présentation et sa disponibilité !!

Q : - Qu'est-ce que Tao ?

R : Tao est une bibliothèque qui fournit aux développeurs .NET des bindings sur différentes bibliothèques C orientées multimédia comme OpenGL, OpenAL, SDL ou GLFW. Il faut garder à l'esprit que Tao fournit des bindings "pures" et bas-niveau c'est à dire qu'aucun travail n'est fait pour encapsuler les fonctions dans des classes ou même pour s'adapter au standard de nommage .NET (si tu utilises Tao.OpenGL ce sont les même noms de fonction que dans la version C de OpenGL). Pour avoir une liste complète de tous les bindings que propose Tao le mieux reste de regarder la page consacrée : http://www.taoframework.com/Category:Bindings . Après il y a d'autres projets qui encapsulent ces fonctions dans des bibliothèques orientées-objet, comme SDL.Net (http://cs-sdl.sourceforge.net/index.php/Main_Page) ou encore ODE.Net (http://odedotnet.sourceforge.net/index.php/Main_Page) qui sont toutes deux maintenues par des développeurs de Tao.

--

Q : - Sur quelles technologies se base Tao ?

R : Tao utilise le mécanisme P/Invoke de .NET pour appeler les fonctions natives contenues dans les bibliothèques dynamiques correspondantes au système (.dll sous Win et .so sous Linux). Comme Mono implémente ce comportement et que les bibliothèques que Tao propose sont portables alors l'ensemble est multi-plateforme. Au niveau des bindings proposés ils ont été choisis car les bibliothèques sous-jacentes sont matures, standards et bien connues (pour une liste complète voir le lien précédent).

(Je ne suis pas bien sur du sens de cette question  :-) )

--

Q : - Que peut-on réaliser avec Tao ?

R : On peut dire (modestement  :-P ) qu'avec Tao on peut faire tout ce qui est possible avec les versions C/C++ des bibliothèques de base (et même de manière plus agréable si on prend des versions de plus haut-niveau et orientées-objet comme SDL.NET...)

--

Q : - Existe-t-il un lien entre Tao et Mono.Xna ? Qu'est-ce que Mono.Xna ?

R : Oui Tao et Mono.Xna sont très liées. En fait Tao prend en charge tout le sous-système graphique-audio-fenêtrage... de Mono.Xna (soit directement, soit à travers des bibliothèques plus haut-niveau). Mono.Xna est donc un moteur/framework (tel Irrlicht) qui a pour but de faciliter la vie d'un développeur de jeux vidéos en lui évitant les tâches répétitives et bas niveau et qui vise à rendre portable le framework XNA de Microsoft sur d'autres plateformes que Windows ou XBox.

--

Q : - Que peut-on réaliser avec Mono.Xna ?

R : Pour l'instant pas grand chose vu l'état d'avancement  smile. Pour le moment le travail est de recréer l'API de Xna version Microsoft afin d'avoir une base mais en réalité rien n'est implémenté (les méthodes renvoient une exception de type NotImplementedException). Le travail a été cependant commencé sur les parties les plus "faciles" de Mono.Xna qui sont les maths (formules, vecteur, quaternions...) et les collisions (BoudingBox...). La partie Storage est également implémentée et la partie Input est en bonne voie pour ma part tandis que Rob et d'autres travaillent plus sur la partie graphique.

--

Q : - Quelle contribution apportes-tu à Mono.Xna ?

R : Comme je te l'ai dit je ne suis pas vraiment un programmeur "graphique" dans le sens où la 3D n'est pas ma spécialité, donc je m'occupe plutôt de tous ce qui va a côté comme la partie Storage (pour gérer les sauvegardes des jeux, l'accès aux modèles, les tiles...) ou la partie Input dont je m'occupe actuellement (entrée clavier, souris, joystick).

--

Q : - Quel est l'objectif à terme de Mono.Xna ?

R : A terme le but est de pouvoir faire tourner un jeux programmé avec XNA sur toutes les plateformes supportées par Mono et Tao, ce qui inclus Linux, Mac et d'autres, sans travail de la part du développeur et sans recompilation des jeux.


Réponses faites par Jérémie Laval, contributeur de Mono.Xna ! ( Ca n'est pas évident de résumer de tels projets en quelques phrases, merci à lui )

Hors ligne


#1 

17-12-2006 20:06:24

DeusXL
Abonné
Lieu: Paris
Date d'inscription: 27-09-2006
Messages: 174

Merci bien pour ces quelques précisions et quoi d'autre à dire que bonne chance à ce projet qui me semble bien intéressant smile


Fanatique d'Irrlicht + Fanatique de Mono + Fanatique de Linux => Créateur d'Irrlicht .NET CP bien sûr !
Version actuelle d'Irrlicht .NET CP : 0.8, Version en test : 0.9.

Hors ligne


#2 

17-12-2006 20:38:55

izguit
Administrateur
Lieu: 127.0.0.1
Date d'inscription: 14-09-2006
Messages: 306
Site web

pareil, merci de la contrib
Projet à suivre


Athlon 64 3000+ // 1Go RAM // Geforce 6600GT 128Mo
Turion 64 X2 // 1Go RAM // ATI X1250

Hors ligne


#3 

17-12-2006 21:10:35

Jerry Kan
Habitué
Date d'inscription: 21-11-2006
Messages: 265

interressant tout ca, merci wink

Hors ligne


#4 

18-12-2006 16:19:31

Garuma
Petit nouveau
Date d'inscription: 18-12-2006
Messages: 6
Site web

Je rappelle également que Mono.Xna est ouvert à toutes contributions (elles seraient mêmes grandement appréciés :-D). Si vous avez envie de participer prévenez nous sur le Forum ;-).

De plus si vous avez des questions supplémentaires n'hésitez pas à demander.

Hors ligne


#5 

18-12-2006 18:31:01

izguit
Administrateur
Lieu: 127.0.0.1
Date d'inscription: 14-09-2006
Messages: 306
Site web

Merci beaucoup de ta participation Garuma et bonne chance pour open xna, c'est ambitieux mais on voit qu'il y a du niveau smile


Athlon 64 3000+ // 1Go RAM // Geforce 6600GT 128Mo
Turion 64 X2 // 1Go RAM // ATI X1250

Hors ligne


#6 

18-12-2006 19:23:22

DeusXL
Abonné
Lieu: Paris
Date d'inscription: 27-09-2006
Messages: 174

Moi j'ai tout de même quelque chose à reprocher en parlant de Tao.

Je sais que je vais faire égocentrique mais quand j'ai conçu Irrlicht .NET CP, je me suis dit "pourquoi les gens programment pas sous Linux alors qu'il suffirait de faire un "make", parce qu'ils savent pas que ça suffirait". Du coup, j'ai livré les DLLs .NET, la DLL Windows et la DLL Linux au même endroit. J'ai dit "référencez la DLL .NET et copiez les autres".
Cette après-midi j'ai regardé Tao, et je reproche que rien n'est clair. Il n'est nulle-part expliqué qu'il suffit de copier une DLL pour la compatibilité Linux et on a même l'impression que c'est dur.
Certes TAO c'est plein de librairies, mais tout de même, on aura jamais de jeux sous Linux si on se bat pas pour expliquer que ça ne complique rien.


Fanatique d'Irrlicht + Fanatique de Mono + Fanatique de Linux => Créateur d'Irrlicht .NET CP bien sûr !
Version actuelle d'Irrlicht .NET CP : 0.8, Version en test : 0.9.

Hors ligne


#7 

18-12-2006 19:36:01

Ravine
Membre
Date d'inscription: 09-12-2006
Messages: 61

"My 2cents" comme on dit pour faire hype et branchouille

Ce qui m'a attiré vers Irrlicht et pas un autre moteur ça a été Irrlicht .Net tout en sachant que je me coupais d'une partie de la "population", etant donné le caractere tres windowsien de .Net, mono mis a part. Ce qui m'a fait super plaisir ensuite, ça a été de découvrir  .NET CP, et surtout, comme le souligne DeusXL, le fait que le portage Linux consistait en... ah, bah rien de plus que de faire une compil, et penser a gerer l'Open GL. (y'a surement quelques subtilités, mais j'en suis là pour le moment).

Et ça, c'est une force.

[EDIT MODO]Petite coupure, pour rester dans le sujet. Milles excuses...[/EDIT MODO]

Dernière modification par Ravine (18-12-2006 19:36:57)

Hors ligne


#8 

18-12-2006 20:59:56

Garuma
Petit nouveau
Date d'inscription: 18-12-2006
Messages: 6
Site web

DeusXL :

Moi j'ai tout de même quelque chose à reprocher en parlant de Tao.

Je sais que je vais faire égocentrique mais quand j'ai conçu Irrlicht .NET CP, je me suis dit "pourquoi les gens programment pas sous Linux alors qu'il suffirait de faire un "make", parce qu'ils savent pas que ça suffirait". Du coup, j'ai livré les DLLs .NET, la DLL Windows et la DLL Linux au même endroit. J'ai dit "référencez la DLL .NET et copiez les autres".
Cette après-midi j'ai regardé Tao, et je reproche que rien n'est clair. Il n'est nulle-part expliqué qu'il suffit de copier une DLL pour la compatibilité Linux et on a même l'impression que c'est dur.
Certes TAO c'est plein de librairies, mais tout de même, on aura jamais de jeux sous Linux si on se bat pas pour expliquer que ça ne complique rien.


Je ne comprend pas trop.

Les liens avec les bibliothèques natives sont effectuées grâce aux fichiers .config ce qui est la manière plus ou moins standard de procéder avec Mono (http://www.mono-project.com/Interop_wit … rary_Names)

Quand à la DLL de Tao elle ne contient aucun code natif donc elle est portable et peut donc être distribuée sur toutes les plateformes sans recompilation de l'appli.

Hors ligne


#9 

18-12-2006 21:27:25

DeusXL
Abonné
Lieu: Paris
Date d'inscription: 27-09-2006
Messages: 174

Garuma :

Je ne comprend pas trop.

Les liens avec les bibliothèques natives sont effectuées grâce aux fichiers .config ce qui est la manière plus ou moins standard de procéder avec Mono (http://www.mono-project.com/Interop_wit … rary_Names)

Quand à la DLL de Tao elle ne contient aucun code natif donc elle est portable et peut donc être distribuée sur toutes les plateformes sans recompilation de l'appli.


Je sais très bien que ça fonctionne et sûrement merveilleusement.
Mais je me suis mis dans la peau d'un développeur .NET lambda (allez soyons honnêtes, 90% des développeurs .NET ne savent même pas que Mono existe et 9% pensent que c'est une blague), qui arrive devant TAO. Rien n'est clairement expliqué pour le portage sous Linux, il faut savoir que la majorité des développeurs .NET n'ont soit rien à faire soit aucune connaissance dans un portage sous Linux, alors si en plus ils doivent s'initier à la programmation Linux (ne serait-ce que pour comprendre ce qu'est qu'un .so, ou ainsi de suite), ils n'utiliseront jamais la compatibilité Linux.
Je sors souvent cet exemple mais ça me rappelle le RealmForge GDK, quand on l'installait, on avait 150 dlls de référence, on savait pas lesquelles prendre, comment, lesquelles étaient natives, lesquelles ne l'étaient pas enfin bref, un vrai bazar.
On peut toujours penser que ce que je dis est subjectif mais dès lors qu'on se met dans la peau d'une personne pour qui un portage sous Linux n'est pas une priorité (et qui ne passera donc pas une seule seconde à se documenter), on se rend vite compte que dans beaucoup de cas, vous allez perdre un avantage de la librairie.

le fait que le portage Linux consistait en... ah, bah rien de plus que de faire une compil, et penser a gerer l'Open GL. (y'a surement quelques subtilités, mais j'en suis là pour le moment).


Aucune, bien coder IrrlichtW (la partie en C) n'a pas été simple mais si tu n'utilise que Irrlicht .NET CP (et le framework .NET normal), avec OpenGL ou un mode Software, tu n'as à te soucier de rien, les bugs de plateforme sont minimes et n'apparaissent dans 99% des cas que sous Windows.


Fanatique d'Irrlicht + Fanatique de Mono + Fanatique de Linux => Créateur d'Irrlicht .NET CP bien sûr !
Version actuelle d'Irrlicht .NET CP : 0.8, Version en test : 0.9.

Hors ligne


#10 

19-12-2006 18:40:39

Garuma
Petit nouveau
Date d'inscription: 18-12-2006
Messages: 6
Site web

Donc si je comprend bien pour toi le problème viens de l'absence des librairies natives dans la distribution de Tao ?

Moi je pense a contrario que Mono commence a avoir du succès comme en témoigne le nombre croissant de gens/entreprises qui l'utilise ou tout simplement le fait qu'une grande partie des contributeurs de Mono soit Windowsien (ce mouvement devrait s'accentuer avec l'apparition d'outil comme Moma ou même tout simplement le fait que Microsoft commence reconnaisse Mono).

De plus si un portage est effectué c'est rare qu'il soit fait à la va vite et sans se documenter (même si la plateforme Linux a toujours été délicate pour distribuer des logiciels (mais... Work In Progress smile ), de plus ce n'est pas comme si il fallait porter un logiciel C/C++ qui utilise massivement l'API Win32 ou de l'assembleur.

Hors ligne


#11 

19-12-2006 18:53:36

DeusXL
Abonné
Lieu: Paris
Date d'inscription: 27-09-2006
Messages: 174

Garuma :

Donc si je comprend bien pour toi le problème viens de l'absence des librairies natives dans la distribution de Tao ?


Hélas je ne donne qu'un problème, pas vraiment ni solution ni raison. De plus ce problème est une impression qui peut donc être -par définition- erronée.

Garuma :

Moi je pense a contrario que Mono commence a avoir du succès comme en témoigne le nombre croissant de gens/entreprises qui l'utilise ou tout simplement le fait qu'une grande partie des contributeurs de Mono soit Windowsien (ce mouvement devrait s'accentuer avec l'apparition d'outil comme Moma ou même tout simplement le fait que Microsoft commence reconnaisse Mono).


Je n'ai jamais dit le contraire wink Juste que pour l'instant il est vraiment pas assez connu. Trop de personnes associent .NET à Windows et Microsoft, c'est un constat, et ce quelque soit la tendance. Je ne veux pas faire de link vers un autre site mais va lire les posts de développez.net et estime dans cette jungle de développeurs .NET la quantité qui savent que Mono est aussi avancé ! (alors même que les admins, MVP ou équivalent clament haut et fort dans leurs tutoriaux que Mono est tout juste bon à faire des Hello World !)

Garuma :

De plus si un portage est effectué c'est rare qu'il soit fait à la va vite et sans se documenter (même si la plateforme Linux a toujours été délicate pour distribuer des logiciels (mais... Work In Progress smile ), de plus ce n'est pas comme si il fallait porter un logiciel C/C++ qui utilise massivement l'API Win32 ou de l'assembleur.


Oui mais déjà que le monde du jeu vidéo ne laisse aucune place à Linux (principalement à cause de DirectX, il faut l'avouer), alors si en plus on dit à des développeurs "vous allez vous casser le *** pendant un mois pour peut-être 0.1% de votre marché", bien fou sera celui qui suivra.
Voilà pourquoi je vois dans un framework comme TAO, -ou dans un moteur comme le mien, un peu d'égocentrisme ne fait pas de mal- une mini opportunité de changer la donne, en rendant un portage tellement simple et tellement rapide qu'au fond les développeurs se diront "autant faire plaisir à cette communauté si ça ne nous coûte rien". C'est un peu mon cas sur mon projet actuel puisque je le développe sous Windows (besoin de faire fonctionner le serveur oblige) mais sans même avoir à me soucier de quoi que ce soit, il fonctionne sous Linux aussi donc quand bien même je ne connaîtrais pas la plateforme, il ne me coûterait rien de faire la compatibilité.

Comme dit au début je n'ai pas vraiment de solution. J'ai essayé de faire un truc vraiment "plug and play" de mon côté, je pense y être pas trop mal arrivé étant donné que j'ai déjà eu des retours de personnes ayant recodé leur projet avec le wrapper en le rendant dispo sous Linux.

Dernière modification par DeusXL (19-12-2006 18:55:01)


Fanatique d'Irrlicht + Fanatique de Mono + Fanatique de Linux => Créateur d'Irrlicht .NET CP bien sûr !
Version actuelle d'Irrlicht .NET CP : 0.8, Version en test : 0.9.

Hors ligne


#12 

19-12-2006 19:41:33

Garuma
Petit nouveau
Date d'inscription: 18-12-2006
Messages: 6
Site web

C'est justement une des missions de Mono.Xna de permettre au développeur d'avoir un programme portable sans se soucier de travailler dessus (enfin dans le cas idéal smile ). Les mentalités commencent tout de même à évoluer je pense (Neverwinter Nights existe en version Linux (et marche très bien) et dernièrement le studio qui s'occupe de Ankh a reçu assez de précommande de Linuxien pour démarrer une version Linux du jeu).

Au niveau des API graphiques je ne peut pas donner mon avis vu que je ne m'y connais pas trop. Mais des avis que j'en ai OpenGL n'a rien a envié à DirectX si ce n'est la masse marketing de Microsoft et peut être une trop grande latence.

Je suis d'accord au niveau de l'association Microsoft-.NET mais bon les gens finiront bien par mettre de côté leur réflexe : "C'est Microsoft donc c'est le mal".

Hors ligne


#13 

19-12-2006 19:54:26

DeusXL
Abonné
Lieu: Paris
Date d'inscription: 27-09-2006
Messages: 174

Garuma :

C'est justement une des missions de Mono.Xna de permettre au développeur d'avoir un programme portable sans se soucier de travailler dessus (enfin dans le cas idéal smile ). Les mentalités commencent tout de même à évoluer je pense (Neverwinter Nights existe en version Linux (et marche très bien) et dernièrement le studio qui s'occupe de Ankh a reçu assez de précommande de Linuxien pour démarrer une version Linux du jeu).

Au niveau des API graphiques je ne peut pas donner mon avis vu que je ne m'y connais pas trop. Mais des avis que j'en ai OpenGL n'a rien a envié à DirectX si ce n'est la masse marketing de Microsoft et peut être une trop grande latence.

Je suis d'accord au niveau de l'association Microsoft-.NET mais bon les gens finiront bien par mettre de côté leur réflexe : "C'est Microsoft donc c'est le mal".


1] Les phénomènes sont encore trop minimes. Quant à dire qu'on progresse, moi je me souviens d'une époque (celle d'Half-Life) où la plupart des jeux existaient en OpenGL (idem pour ID Softwares). Certaines associations (comme Cedega) se battent pour rendre l'exécution sous Linux plus simple mais on ne peut pas dire (jeux OpenGL comme Neverwinter 1, les jeux de Blizzard ou d'ID Softwares [...] exclus) que ça soit de la tarte.

2] Je suis assez d'accord là dessus, je parlais de pourcentage d'utilisation dans le jeu-vidéo, mais après tout il me semble que OpenGL a déjà les shader 4.0 via une extension sur certaines Nvidia alors à partir de là, qu'a-t-il à envier ?! Quant à pourquoi ce pourcentage ? Je l'explique de la même manière que j'explique le fait que Mono n'est pas encore très connu, les gens visent uniquement Windows et se disent "DirectX est fait par les gens de Windows, DONC il est bien intégré, plus rapide et fait les pizzas" (vous l'aurez remarqué, l'erreur est dans le donc wink).

3] Béni soit ce jour où les gens sauront faire la part des choses et sauront reconnaître d'un côté que Windows n'est pas l'alpha et l'omega et d'un autre côté que ce n'est pas non plus la réincarnation du démon en pantalon de guerre wink


Fanatique d'Irrlicht + Fanatique de Mono + Fanatique de Linux => Créateur d'Irrlicht .NET CP bien sûr !
Version actuelle d'Irrlicht .NET CP : 0.8, Version en test : 0.9.

Hors ligne


Options Liens officiels Caractéristiques Statistiques Communauté
Corrections
irrlicht
irrklang
irredit
irrxml
xhtml 1.0
css 2.1
Propulsé par FluxBB
Traduit par FluxBB.fr
881 membres
1427 sujets
11117 messages
Dernier membre inscrit: Bidule
45 invités en ligne
Aucun membre connecté
RSS Feed