Bon comme je sais que certains d’entre vous sur ce forum ont déjà taté du c-sharp, j’en profite pour demander des conseils Voila mon petit problème : je code depuis quelques années dans des langages comme C, C++ ou Java. Bon je suis toujours étudiant, donc je n’ai pas eu beaucoup de temps pour coder avec ces langages sur des projets professionnels. Avec quelques amis, nous sommes en train de mettre en place un petit projet de jeu vidéo ( pas un AAA hein juste un jeu correct ). Temps estimé de production : 5 mois, a cinq codeurs environ. Les technologies utilisées : directx9 ( graph son input ), winsock ( netcode ).
Donc la grande question du moment c’est que pensez vous de C# pour ce genre de projet ?? Est ce que ce langage va vraiment apporté un gain de productivité et de simplicité ( dans la mesure ou se donne la peine de bien l’apprendre ), ou est ce que pour vous C++ regroupe tous les avantages ? De même si des personnes ont ici une expérience C#/DirectX, que pense t il de la vitesse d’exécution des programmes en C# ?
Bon apparement chacun y va de son petit avis sur le net, et ce sujet enflamme pas mal les threads des forums de programmation, mais j’attend avec impatience les avis de la Cafone
PS2 : Merci de ne comparer uniquement que C++ et C#, parce que oui l’asm et la C pur c’est bien ( mais pas ici hein B) ) et non Java n’est pas le langage du futur ( Die Java Die !! ).
Je ne suis pas un expert de ces deux langages, je ne les connais que peu, mais à mon avis le C# pour faire des jeux vidéos ça reste encore limité aujourd’hui comme tu peux pas accéder à l’intégralité des fonctions Direct X à l’heure actuelle (mais peut-être dans le futur…). A mon avis à l’heure actuelle c’est jouable en C# si vous voulez pas faire quelque chose de trop ambitieux. Et puis le garbage collector du C#, dans le jeu vidéo, je sais pas si c’est un bon ami vu qu’il faut plutôt avoir un véritable contrôle sur la mémoire, ce que permet le C++. A ce sujet je te renvoie au blog de Herb Sutter, sur pluralsight.com, où il a récemment parlé de ces deux systèmes de gestion de mémoire.
On peut tout a fait faire un jeu sérieux en C#. Le meilleur exemple reste Arena Wars. Par contre, il me semble que c’était pas complètement du DirectX (de mémoire fatiguée). Par contre il a été dévelopé en 2 ans par un seul développeur.
[quote name=‘bishop’ date=’ 28 Nov 2004, 23:14’]On peut tout a fait faire un jeu sérieux en C#. Le meilleur exemple reste Arena Wars. Par contre, il me semble que c’était pas complètement du DirectX (de mémoire fatiguée). Par contre il a été dévelopé en 2 ans par un seul développeur.
[right][post=“307986”]<{POST_SNAPBACK}>[/post][/right][/quote]
Ce n’est effectivement pas (du tout) du DirectX, mais de l’OpenGL wrappé. Ce qui n’empeche pas que l’on peux faire des truc supers en DirectX…
Franchement, si ton ambition se limite a faire un jeu correct (mais pas AAA) qui tourne sous Windows comme tu le dis, a priori le C# sera très adapté à tes besoins. En effet tu ne pourras pas aller tripoter le bas niveau de la gestion mémoire patati patata, en effet tu as un léger overhead du a la CLR, mais franchement, ce sera probablement négligeable. Sauf si tu comptais faire du SSE en asm ou en intrinsic dans ton jeu évidemment
A priori, en C# tu auras un gros gain de productivité, ne serait-ce que parce que tu n’auras plus vraiment à te soucier de la mémoire, des memory leaks & co, vive le garbage collect. A priori la doc DX annonce qu’en Managed DX t’as 98% des perfs de DX « normal », ça me semble tout a fait crédible sachant que de toute façon en DX le travail est censé être fait par le hardware principalement…
Bref, je te conseille de foncer sur C# pour ton jeu, a mon avis tu n’auras que de bonnes surprises.
(cela dit, je suis un grand fan du C++ et pour moi les jeux professionnels ont encore un bel avenir devant eux en C++ :P" mais ça m’empeche pas de faire du C# aussi )
En effet, mon ambition n’est pas de coder un petit jeu avec un moteur 3D kick ass qui utilise les shaders dernieres versions tout frais tout beaux, le tout bien optimisé en asm avec plein de morceaux de C inline dedans. La , le projet c’est plutot de fournir un gameplay, de transformer une idée en jeu … dans les temps ! Donc je penche de plus en plus pour C#, et ej prend bien note de vos commentaires.
?? arg Pourrais tu développer svp , je n’ai pas trouvé cette information ailleurs ?
Ca m’interresse de participer a votre projet en tant que graph/codeur (chui infographiste avec une formation informatique derrière)… je peux? (ca m’a toujours interressé de faire un petit jeu vidéo, en team, mais les projets ont toujours été avortés)
Si mes souvenirs sont bons, dans une interview, Tom Miller, le responsable de Directx managé, disait que pour l’instant C++ reste d’actualité pour des jeux genre Doom3, Unreal, HL2, ou tout autre jeux demandant beaucoup de rapidité et de qualité. (tous les fps en sorte).
Il voyait plutôt C# s’immiscer dans les boites de dev sur des domaines a coté. Genre, le développement d’outils, de générateur de scripts, de tous produits utiles au développement d’un jeu. Et ca marchera parce que d’un point de vue productivité, C# ça oune C++.
Les mecs vont faire ça en douceur, faire du C++ managé puis passer à C#…
Ca fait 2 ans qu’on utilise intensivement .NET (sous forme de C++ Managed et de C# principalement) pour les outils de dev des jeux Même 2 ans et demi tiens, le temps passe…
A priori jusqu’à présent j’ai toujours pu faire tout ce que je voulais en Managed DX, mais je n’ai pas non plus développé de jeu complet avec (je reste en C++, ça reste le meilleur choix pour le multiplateforme en jeux).
En effet, pour l’instant le choix parait difficile entre C++ et C#, mais est ce que quelqu’un pourrait confirmer que longhorn integrera de maniere native .Net, et donc du coup que C# pourrait devenir plus puissant que C++ sur cette plateforme ? Quelqu’un aurait il une source à cette information ?
En tout cas, si tel est le cas il est clair que l’avenir appartient a C#, et dans ce cas autant si mettre tout de suite.
Je me renseignerait sur monsieur tom miller si j’ai le temps dans l’aprés midi
Pour cela , il faudrait demander à Glop , je pense qu’on peut pas vraiment faire mieux placé que lui pour ça !!
Alors soit tu as de la chance et tu trouves un invocateur SegFault level 275 pour le summoner sur ton thread, soit tu vas le chasser dans les marecages poisseux de l’irc au lieu maudit prénommé #cafzone ( rempli de vilaines entités telles que le Yavin lvl 55 par exemple )
Bon finalement je ne vais pas avoir besoin de summoner glop Il precherait un convaincu
Apres deux jours de recherches, de tests et de lectures, mon choix est donc fait : ce sera C# / managed directx9 . C’est le choix qui me parait le plus adapté et ceci pour plusieurs raisons :
Longhorn sera basé sur la plateforme .Net
Le point le plus cricial sur mon projet est qu’il soit fait à l’heure. Ceci est incontestablement un bon point pour C# ( augmentation de productivité importante ).
A tres moyen terme, directx ( ou xna ) sera entierement managé. ( cf la doc complètement changé du sdk update octobre 2004 ! ).
Les performances des programmes en C# n’ont rien a envier à ceux en C++ ( tant qu’on fait pas des ray tracers temps réel
Il semblerait qu’une partie de l’industrie video ludique teste ou développe maintenant avec C#. Il parait évident que ce sera le langage majeur dans deux ans sous longhorn, donc autant commencer tôt
tu peut peut-être aussi utiliser un moteur 3D écrit en C# comme Axiom 3D…
[quote]100% C# codebase built targeting the .Net Framework 1.1.
Design and architecture based on OGRE (Object-Oriented Graphics Rendering Engine).
Flexible design allows for Axiom to be integrated into other projects for use as the rendering “middleware”.
Strict adherence to the best practices of .Net framework naming standards and methodologies (i.e. Use of properties instead of GetX()/SetX(). Usage of .Net framework class library wherever possible. No Hungarian notation, other than the “I” prefix for interfaces. Microsoft .Net Coding Guidelines.
Flexible plugin architecture for dynamically extending core functionality at runtime.
…[/quote]