[Programmation] Priviligier les langages de Bas Niveau ou basic pour les jeux vidéo ?
| stilobique |
Posté le 09 Jan 2008 à 15:28
|
|
![]() Messages : 2387 GCPoints : 841900 |
Et voici le 1er débat de Gamecorp ! Je lance donc le sujet de discussion, vous êtes beaucoup de programmeur et je pense que sa peut être interessant d'avoir quelque avis sur se sujet : Débat a écrit :
On sait tous qu'il existe de nombreux langage de programmation : C/C++, Java, Delphi, C#, Darkbasic... la liste pourrait être assez longue, cependant comment choisir sont langage pour sont jeu ? S'orienter vers un langage de bas niveau afin d'obtenir un contrôle permanent sur les FPS ou bien utilisé un langage de haut niveau qui permettra de gagner un temps de travaille considérable ? Autant il y a des avantages, autant il y a des inconvénients, cependant le choix peut être compliqué pour un débutant dans le making amateur ! |
|
| Darktib |
Posté le 09 Jan 2008 à 16:38
|
|
![]() Messages : 4017 GCPoints : 347288 |
Personellement je pense qu'il faut utiliser les langages basic pour les petits jeux, mais pour un gros projet c'est ptet mieux les langages bas niveaux. J'ai pas le temps d'expliquer, je le ferai plus tard. |
|
| Daru13 |
Posté le 09 Jan 2008 à 16:51
|
|
![]() Messages : 2884 GCPoints : 108090 |
Comme le dit Darktib, les languages de haut niveau, si bien maitrisés, peuvent donner de bons résultats Mais il faut mieux les privilégier pour des jeux pas trop importants, car un jeu ( "important" aussi bien en popularité et en attente qu'en conception avancé, beaux graphismes, nombreux polygones, etc... ) importants pourraient lagger, ou ne pas convenir à ce qui était prévu Donc c'est selon le jeu qu'il faut privilegier le niveau du language de programmation utilisé je pense Maintenant, je pense que le C# / C++ est bien plus utilisé, donc si des personnes le maitrisent, autant s'orienter vers lui |
|
| Mod |
Posté le 09 Jan 2008 à 16:56
|
|
![]() Messages : 4954 GCPoints : 2100823 |
De mon point de vue, le chois d'un langage dépend fortement du type jeu créé (RPG, STR, Casual Game...), de l'ampleur de ce projet, et aussi des fonctionnalités du langage que l'on souhaite utiliser.. Un jeu simple comme un Tetris se contentera facilement d'un langage de programmation de haut niveau comme le Dark Basic. Dans ce genre de cas, programmer le jeu dans un langage de bas niveau comme le C++, ce serait perdre beaucoup de temps. La mise en oeuvre d'un projet en BASIC est souvent bien plus simple que celle d'un langage de bas niveau. Les BASIC (Dark Basic, PureBasic, BlitzMax/Blitz3D/BlitBasic, etc) ont souvent l'avantage d'être utilisables directement, sans installation autre que celle de leur IDE. Et aussi celui d'être initialisables rapidement, en une, deux voire trois instructions. Par comparaison, lorsqu'il faut commencer à programmer un projet en C++, c'est vérifier que le linker est bien paramétré, ou encore une initialisation qui prend à elle seule beaucoup de lignes. Pour idée un jeu sous Windows en C++ utilisant Win32 comme GUI, c'est plus de cent lignes de code pour créer la fenêtre et la gérer convenablement. Même chose lorsqu'il faut utiliser DirectX : il y en a pour une vingtaine de lignes de code. Tout le temps passé à préparer le terrain dans un langage de bas niveau pourrait presque suffire à créer le jeu dans un BASIC. La simplicité des BASIC va donc souvent bien avec la simplicité des projets. Les besoins en puissance du système ne sont pas très élevés, les performances peuvent être un peu moins bonnes, ça ne changera pas grand chose. Mais ça, c'est juste une constatation secondaire. Un projet ne nécéssitant pas beaucoup de puissance peut gagner à être développé dans un langage de bas niveau. Pour un jeu plus complexe, ce type de langage me semble plus adapté. J'en ai fait l'expérience moi-même, on ne peut pas ou difficilement développer un projet particulièrement complexe sur un langage simple. Par exemple en Dark Basic, dès lors qu'il faut gérer des zones mémoires un peu complexe on s'y perd. Le langage reste prévu pour une utilisation relativement simple. Effectuer une tâche complexe peut s'avérer plus facile dans un langage de bas niveau que dans un langage de haut niveau. Comme pour cet exemple de la mémoire. En C++ gérer la mémoire, c'est un vrai cadeau comparativement. Mais c'est là une restriction du Dark Basic, de ses fonctionnalités. Impossible de l'outrepasser. Il faut anticiper quelles structures de code pourraient accélerer le développement d'un jeu. Pouvoir programmer en orienté objet peut par exemple s'avérer un choix déterminant. Car simplifiant énormément le code une fois le temps de la création pris en compte. Au final, le temps passé à mettre en oeuvre un gros projet dans un langage de bas niveau peut être compensé par la simplicité de gestion des tâches complexes qui pourront en découler. Je pense encore une fois aux objets. Créer des objets en C++, C#, etc peut prendre du temps. Mais une fois cette tâche accomplie, les objets sont utilisables facilement et intuitivement, là où d'autres langages feront perdre un temps précieux à cause d'une syntaxe trop simpliste ou rigide. |
|
| noob4ever |
Posté le 09 Jan 2008 à 17:11
|
|
![]() Messages : 295 GCPoints : 48742 |
C# est beaucoup plus haut niveau que C++, ça je peux ta l'assurer ... Mais C# n'est pas du tout orienté jeux vidéo AMATEUR, en effet avec la plateforme XNA vous pourrez faire un magnifique jeu en C# mais ça reste + professionel. Il y a bien quelque libs, comme SDL dotNet mais pas aussi bien que SFML pour le C++ pas exemple. Cela dit un tetris en C# avec SDL dotNet doit etre amusant à programmer et arreter de voir le paradigme orienté objet, comme la révélation du siècle ... d'ailleurs beaucoup de gens pense que ceux qui ne savent pas programmer ou qui programme mal utilise la POO, même si je ne le pense pas (j'aime C# qui est 100% OO), ce type de remarque est intéréssant et bien fondée. un exemple habituelle : http://www.ffconsultancy.com/languages/ray_tracer/comparison.html Pour débuter, je conseille C++, car on est obligé de savoir ce qu'on fait, souvent la moindre erreur se conclue par un violation access, overflow etc amusant non ?
What did C:/DARTHVADER said to C:/DARTHVADER/LUKESKYWALKER ?
I'm your folder |
|
| stilobique |
Posté le 09 Jan 2008 à 17:12
|
|
![]() Messages : 2387 GCPoints : 841900 |
Moi de l'expérience que j'ai sur mes projet ; j'ai toujours fait appelle à des programmeurs en C ou C++ ; pourquoi ? Parce qu'on est toujours partie sur plusieurs principe : Portabilité du projet / Open Source / Librairie Simple d'accès. Niveau portabilité du projet, j'ai jamais étudier la question sur des langages comme le Dark Basic ; cependant pour la gratuité et libération du code certain de ces langage sont (était) payant, et côté librairie le travail sur la SDL permettait toujours de faire rapidement un jeu simple et se rapidement sans compter que la plupart des travaux sont aussi la pour démontrer un certain savoir faire, l'utilisation de telle langage aurait-elle discrédité mes projets vis-à-vis d'autre projet ? Edit : Vis à vis de ta remarque Noob4ever, j'aimerais bien voir un jeu simple (tétris par exemple) programmé sur plusieurs de ces langages...
Dernière édition le 09 Jan 2008 à 17:14
|
|
| noob4ever |
Posté le 09 Jan 2008 à 17:55
|
|
![]() Messages : 295 GCPoints : 48742 |
Les 3 principes que tu as cité, C# les a, et il a l'avantage d'etre plus facile. je te laisse juger par toi meme : http://cs-sdl.sourceforge.net/index.php/Main_Page Citation :
quels langages ? je n'ai cité que C#, et si tu veux des exemples : http://cs-sdl.sourceforge.net/index.php/Pong c'est un exemple d'un jeu de pong en C# avec SDL dotNet . Si tu voulais parler de OCaml, n'espere même pas faire un jeu avec @Mod Citation :
Je ne connais personne qui fais ça ... Maintenant on utilise soit une bibliothèque ( wxWidgets ) soit MFC qui est une surcouche de l'API WIN32, ou alors mieux, des winforms en C++/CLI ou C# . Le code est plus performant et plus propre. Par contre pour directx, tu peux avoir un résultat tout a fait honorable sans faire 1000 lignes de codes. Je dis ça car je repense a un jeu amateur de bagnole, réalisé avec OpenGL, on peut se promener dans une ville. Mais on est sur un forum de jeux vidéo hein ? alors le bon compromis reste C++, sufisament simple pour un débutant, et sufisament complexe pour un expert. Le vrai langage d'avenir c'est F#, mais pas pour le jeu vidéo http://research.microsoft.com/fsharp/fsharp.aspx
What did C:/DARTHVADER said to C:/DARTHVADER/LUKESKYWALKER ?
I'm your folder |
|
| gus |
Posté le 09 Jan 2008 à 18:55
|
|
![]() Messages : 371 GCPoints : 52046 |
Moi je vote pour le C++ a cause du nombre incomparable de bibliotheques qui simplifient la vie pour faire des jeux.Dans DrakBasic,le code est un peu boordelique et n'encourage pas la création de fonction.Les variables non typé sont plus simple c'est sur,mais sa rend la chose flou parfois. | |
| Huntil |
Posté le 09 Jan 2008 à 19:35
|
|
![]() Messages : 1012 GCPoints : 289843 |
J'ai l'impression que noob4ever fait de la propagande pour le C#
Copyright © 2007 - 2010 Huntil
"Il faut toujours un drame" |
|
| noob4ever |
Posté le 09 Jan 2008 à 19:47
|
|
![]() Messages : 295 GCPoints : 48742 |
J'aime la programmation en général donc tout les langages. C# ça se prononce C Sharp.
What did C:/DARTHVADER said to C:/DARTHVADER/LUKESKYWALKER ?
I'm your folder |
|
| Mod |
Posté le 09 Jan 2008 à 20:51
|
|
![]() Messages : 4954 GCPoints : 2100823 |
"noob4ever" a écrit :
Je citais ça en exemple "noob4ever" a écrit :
Là encore ce n'est qu'un exemple ^^. En écrivant ça je pensais notamment à DirectX. Les exemples de base fournis avec le SDK utilisent Win32. Citation :
Si tu n'a jamais essayé le C#, tu devrais tâter un peu de la bête un jour. C'est un véritable plaisir de programmer dans ce langage "noob4ever" a écrit :
Même le JavaScript ? |
|
| noob4ever |
Posté le 09 Jan 2008 à 21:02
|
|
![]() Messages : 295 GCPoints : 48742 |
Lol pourquoi ce langage en particulier ? Autant vous le dire, je n'aime pas (du tout) les langages web ( PHP, ASP et toute la tribus ) moi j'aime les langages compilés ! vous allez me dire, ASP c'est compilé ! ouai je sais mais c'est une exception
What did C:/DARTHVADER said to C:/DARTHVADER/LUKESKYWALKER ?
I'm your folder |
|
| Squarch |
Posté le 09 Jan 2008 à 21:53
|
|
![]() Messages : 16 GCPoints : 6336 |
je vais proposer un avis un peu different personnellement, je pense que l'on peut réaliser n'importe quel projet avec n'importe quel langage, seul le programmeur fait la difference je pense donc qu'il faut effectuer le choix du language utiliser non pas en pensant au résultat, mais en pensant comment obtenir ce résultat. Je veux dire par la que programmer est avant tout une passion, et programmer un jeux en cpp et directx peut etre un défi interessant pour certains, alors que d'autre préfèreront un language basic, la complexcité de la réalisation ne les interressant pas. Apres c'est sur qu'au niveau des performances, il vaut mieux utiliser un language de bas niveau, mais la je crois qu'on a tout dit
Dernière édition le 10 Jan 2008 à 15:35
|
|
| stilobique |
Posté le 10 Jan 2008 à 12:36
|
|
![]() Messages : 2387 GCPoints : 841900 |
L'un des défaut du C# que je donne c'est sa non portabilité, c'est peut être un bon langage mais sa ferme les portes pour les autres OS ! Cependant sa doit être compatible pour la Xbox il me semble. | |
| Huntil |
Posté le 10 Jan 2008 à 12:45
|
|
![]() Messages : 1012 GCPoints : 289843 |
Citation :
Peut-être mais le projet ne sera pas identique selon le langage utilisé et pourra surement etre plus optimisé si tu utilises un langage bas niveau puisque tu peux gérer plus de choses. D'ailleurs si ton projet concerne des sujets très pointus de l'informatique et des mathématiques il est possible que tu ne puisse pas le réaliser avec des langages de haut niveau (je pense à la représentation des nombres dans la machine). Enfin j'espère ne pas dire de connerie là. De toute façon ça ne concerne pas les game makers amateurs
Copyright © 2007 - 2010 Huntil
"Il faut toujours un drame" |
|
| Daru13 |
Posté le 10 Jan 2008 à 15:41
|
|
![]() Messages : 2884 GCPoints : 108090 |
Citation :
Vu que Xbox c'est Microsoft, et que ça a, qui plus est, tout d'un ordinateur, c'est plus que probable |
|
| noob4ever |
Posté le 10 Jan 2008 à 18:03
|
|
![]() Messages : 295 GCPoints : 48742 |
C# pas portable ? ça la don de m'enerver ça ... maintenant tu le sauras Tu connais Mono ? va donc taper Mono sur google ... Mono supporte entierement le framework 1.1 et 2.0 ne va pas tarder. Le 2.0 sur Mono sera enfaite le 3.5 de microsoft. De +, vous pouvez facilement developper sur xbox 360 avec C# et la plateforme XNA http://fearyourself.developpez.com/tutoriel/xna/intro/ mais je trouve ça plus chiant que sur PC, a cause des limites.
What did C:/DARTHVADER said to C:/DARTHVADER/LUKESKYWALKER ?
I'm your folder |
|
| stilobique |
Posté le 10 Jan 2008 à 18:09
|
|
![]() Messages : 2387 GCPoints : 841900 |
Hum en effet, mono serait la réponse au problème ! Cependant ; cela ne rend pas encore tout à fait compatible votre programme sur toute les plate formes ! Notamment à cause de "l'active X" ; faut dire que c'est pas plus mal parce que l'active X c'est le meilleur moyen de choper des virus pour Windows ! Sinon c'est vrai que c'est interessant... |
|
| noob4ever |
Posté le 10 Jan 2008 à 18:22
|
|
![]() Messages : 295 GCPoints : 48742 |
bof, de toute façon, meme si tu attrapes un virus sur linux, le système de fichier fera guise d'antivirus Pour Mono sur Mac OSX : http://www.mono-project.com/Mono:OSX de toute façon, tout les developpeurs mac que je connais ( et les autres :) ) programme en objective-c, c'est bien connue ! donc pas de problème.
What did C:/DARTHVADER said to C:/DARTHVADER/LUKESKYWALKER ?
I'm your folder |
|
| Crystal Noir |
Posté le 13 Fév 2008 à 12:12
|
|
![]() Messages : 46 GCPoints : 15655 |
Aucun langage n'est meilleur qu'un autre pour créer un jeu vidéo, seul la maîtrise du langage et la facilité avec laquelle on arrive à programmer avec et à créer, compte. | |











