.NET et le jeu

J’aurais juste voulu savoir si dans les 10 prochaines années (ou avant) les jeux sur MS seront développés en C#, ou si le C++ regnera même après ma mort…

(Ca n’as pas déjà été posté ?)

On doit certainement pouvoir développer des “petits” jeux en C# (comme en Java quoi), mais vu qu’il s’agit d’un langage de haut niveau, les performance ne seront à mon avis jamais les mêmes que celles des langages de plus bas niveau comme le C ou le C++.

c0unt0, je me trompe ?

Hop là !
Bon, pour les gros jeux bourins types FPS ou simu, où les perfs priment pour le joueur moyen, effectivement, il y a de fortes chances pour que le code reste du C++.
Par contre, rien ne dit qu’on ne verra pas un jour un Sims, ou autre jeu du même genre, voire certains STR, ou les perfs ne sont pas primordiales (déja que ce genre de jeux ne tire pas tout le potentiel de nos machines), codés en managés. Par contre, quelque soit le type de jeu, il n’y a aucune raison pour que les outils alentours (éditeurs de niveaux, sons, modeleurs…), redistribués ou nons, ne soient pas codés en managés, par soucis de rapidité de dev. Outils alentours, ou mods, vu qu’avec l’interop, il est possible de greffer du code managé sur une appli non-managée.

C’est en gros ce qu’en disent les designers de managed directX. Voire : http://msdn.microsoft.com/theshow/Episode037/default.asp 
(Oué, le show dure une heure, mais passez les news du début, et c’est grave interressant).

En tout cas, moi j’ai fait le pari c# …

J’ai eu des connaissances C et C++ consistantes à une époque, mais avec le temps, tout s’en va, et rien ne part aussi vite que les notions de programmation…

donc plutot que de me remettre dans le C++ et le C , j’ai decidé de faire péter un bon bouquin qui traite du c# du debut à la fin …( et accessoirement un bouquin dx9 et c# en english )

Je sais pas dans quoi je me lance , mais je m’y lance comme un con !

Deja deux choses. Faut distinguer consoles et PC et ensuite, on va surtout voir du mixte De la meme maniere que l’assembleur (ou le C bas niveau) a toujours de beaux jours devant lui, mais sa place, et les endroits ou l’investissement est rentable evolue. Tout depend du produit, du moment, de la taille du projet, etc.

De plus, plus ca va aller plus le jeu va se compartementaliser (c’est francaise ca?). Deplus en plus, et rapidement, a part quelques societes au monde, il sera bientot impossible a une seule boite de TOUT faire dans un jeu, de A a Z. Alors, plus que quelques boites au monde a produire du jeu? Ou alors tout va evoluer vers une sorte de lego fait de modules produits par differentes boites, une boite faisant l’IA, une boite pour le moteur graphique, une boite pour le code reseau, etc. Le produits etant les plus flexibles et les plus extensibles mettant la tole aux autres, car permettant de se distinguer de la masse et d’exprimmer la creativite particulierre d’une equipe.
 
Enfin le jeu est un domaine particulier ou les gens cherchent a la fois l’innovation et etre a la pointe sur le resultats, tout en restant tres conservateur sur les methodes Pourquoi? parceque ce que demandent les joueur a traditionnelement toujours ete base sur “plus de graphisme“ et autres demandes qui reposent a 90% sur plus de puissance pure. Est ce que ca sera toujours vrai dans 5 ans? Ou va t on commencer a en avoir marre de la course a toujours plus de polygones? Le facteur limitant va t il rester le CPU, a la limite la memoire, ou l’inventivite des programmeurs a inventer des nouveaux concepts (pas en terme de perfs)? Moi je peux pas repondre avec certitude mais une chose est sure, quelle que soit l’optique, le code natif a de beaux jours devant lui. Apres rien n’empeche que “la colle”, ou la tuyauterie au choix, ce qui met ces diverses parties ensemble, ou meme certaines parties qui n’ont pas un role critique dans les perfs soient faites en managed. Et dans les outils, comme dit Tzim, il y a pas photo

Il n’y pas qu’un moyen d’utiliser C#, et comme chacun sait : on passe 80% de son temps dans 20% de son code, donc, une facons d’utiliser le c# serait d’ecrire les partis necessitant de la perf en c++, dans des super DLL, et de gere le tout depuis une appli principale en c#, ce qui permetrait, theoriquement, d’avoir le meilleurs des 2…
Maintenant, meme dans 20 ans, y aura toujours un gusse (genre moi au hazard) qui se dira : "c’est quand meme con, j’ai une machine super puissante, et je sais que je perds de la perf parce que une partie est ecrite en c#, et ca, ca m’enerve !! "
Pour conclure, je dirais qu’utiliser C#, sur PC ca me semble relativement pas trops betes (et encore…), mais par contre pour la console, je vois pas ce genre de truc arriver avant… pfff… plusieur generations…
Parce que vu les nouveau hardwares qui se profilent… le gars et son C#, il va faire une gueulle bizarre (non, je ne sais rien, et je ne dirais rien non plus )
enfin bon, moi, c’est ce que je dis, maintenant je peux me tromper (je disais aussi y a 5 ans que l’avenir serait au rendu pur software, et la avec le vtx shader/pxl shader 3.0 et les nouveau hardware qui arrivent (dont je ne sais rien, et a propos desquels je ne dirais rien), je ne m’etait pas tromper )

Quand j’ai posé la question c’était plus pour avoir une idée de l’évolution de .NET.

Je sais que à ce jour c’est pas intéressant pour les gros jeux, en raison des performances, mais je suppose qu’avec le temps (d’où l’histoire des 10 ans), le compilateur .NET rendra un code de plus en plus performant, même si il n’atteint pas le niveau du C++ ou de l’assembleur.

De même qu’utiliser un post-compileur (genre ngen) fera encore gagner un petit truc conséquent, pour s’approcher plus du code natif.

Voilà, voilà…

EDIT: Ha oui je ne pensais pas du tout aux consoles en pensant à ça.
Ce message a été édité par Xas le 03/03/2004

Sur l’evolution de .Net lui meme, en tant que futur de la programmation sous win en tant que plateforme, y a meme pas photo. MS est parti a fond dedans. Un gros gros bout de longhorn est ecrit en managed et toute l’api est accessible d’abord en managed, eventuellement en natif (winfx). Si tu demande a MS, dans 10 ans, 95/98% des applications seront ecrite en managed. Apres, que les jeux rentrent ou pas dans ca, c’est une discution plus pointue et une question beaucoup plus difficile a repondre. Il y a quelques annees on disait “faire des jeux sous windows? mais ca va pas, c’est hypra plus lent”. Et au final ce qu’on y a gagne (une plus grande abstraction du materiel, directx) l’a emporte sur ce qu’on y a perdu. Mais c’est pas pour ca que l’histoire va se repeter pour le managed dans les jeux…
Ce message a été édité par GloP le 03/03/2004

hum …
/me sent qu’il a mis le nez dans un tres gros trucs

c’est bizarre que ce thread arrive le jour où j’ai decidé de me coller la dedans… un signe du destin , de dieu , d’allah , ou de billou, qui sait …

Ce qui est sur , c’est que tout ce que vous venez de dire ( enfin j’en ai pigé 50% ) peut se resumer à :
“le c#, oui c’est bon , mangez-en, mais pas trop,  ca peut perimer , ou alors  accompagnez le d’une bonne sauce de c++ preparée par un maitre saucier, dans un bon resto label .net”  ( oui j’ai la dalle là )

ai je bien saisi ?

Deja y a pas de notion de langage en .Net c’est pas limite a C#, mais le truc a retenir je crois c’est que .Net c’est pas pret de disparaitre. Le fait que ca soit “bon mangezan” c’est la cerise sur le gateau  Maintenant si tu veux devenir un programmeur pro de jeu, t’as pas interet a oublier ton C++ parceque tu vas encore en avoir besoin pendant de nombreuses annees. Et tu ferais bien de te mettre a l’assembleur aussi  Mais .Net ou C# va pas perimer, au contraire, ca va devenir la piece centrale de la programmation sous win pour les 10 prochaines annees. Apres si tu veux pas programmer des jeux, ou que tu as pas a supporter du code qui a ete ecrit en C++ et que tu tables sur les 10 prochaines annees, le C++ c’est plus arriver a en lire/comprendre pour bien gerer la transition qu’autre chose…

Rappelons que le C++ existe en version managée… Il existe d’ailleurs une version de Quake compilée en managé. Ca tourne 20 à 30% plus lentement, sans optimisations particulières, je crois. Moi, ça me semble pas idiot. Surtout quand tu vois ce qui tourne en code managé dans Longhorn.

Hop, j’en profite pour recoller une url comme ca, innocement :

http://www.kuhnstall.de/tutorials.html

Et puis une autre aussi

http://www.c-sharpcorner.com/Code/2002/Oct/SimpleOpenGL.asp

Encore un peu ? Ok, ok…

http://www.directx4.net/modules.php?name=C…ories&cid=1

http://www.programmationworld.com/site/Cou…&numero=306

http://staff.develop.com/candera/weblog2/a…irectX/Direct3D

Bon, ca réponds pas a la question mais ca devrait déjà donner une orientation.

HS: Faudrait un beau sticky sur ce genre de liens…
Et pis avec de belles catégories, et des couleurs, des petites fleurs, des petits coeurs, etc…
Ou foutre ça dans le Wiki…
Ce message a été édité par Xas le 04/03/2004

[quote]HS: Faudrait un beau sticky sur ce genre de liens…
Et pis avec de belles catégories, et des couleurs, des petites fleurs, des petits coeurs, etc…
Ou foutre ça dans le Wiki…
Ce message a été édité par Xas le 04/03/2004
Dieu t’a entendu, mon fils

http://www.3deurope.com/Wiki/default.aspx/…rammationCSharp

Le boulet que je suis… Je l’avais pas trouvé hier soir…

C’est parce que je l’ai rajouté après ta suggestion