[Programmation] Priviligier les langages de Bas Niveau ou basic pour les jeux vidéo ?

stilobique Message lu Posté le 09 Jan 2008 à 15:28 Bulle
Avatar de stilobique
Newser

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 :

Faut-il privilégier les langages de Bas Niveau ou les langages dit basic pour les jeux vidéo ?



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 !


(___/)
(='.'= )Voici Lapin. Copiez et collez Lapin dans votre signature
(")_(") pour l'aider à concrétiser sa domination du monde.
Darktib Message lu Posté le 09 Jan 2008 à 16:38 Bulle
Avatar de Darktib
Membre Ultime

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 Message lu Posté le 09 Jan 2008 à 16:51 Bulle
Avatar de Daru13
Membre Elite

Messages : 2884
GCPoints : 108090
Comme le dit Darktib, les languages de haut niveau, si bien maitrisés, peuvent donner de bons résultats :smile: .

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 :confused: .

Donc c'est selon le jeu qu'il faut privilegier le niveau du language de programmation utilisé je pense :cool: .

Maintenant, je pense que le C# / C++ est bien plus utilisé, donc si des personnes le maitrisent, autant s'orienter vers lui :wink: .
Mod Message lu Posté le 09 Jan 2008 à 16:56 Bulle
Avatar de Mod
Webmaster

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 Message lu Posté le 09 Jan 2008 à 17:11 Bulle
Avatar de noob4ever
Explorateur

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 :smile:

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 Message lu Posté le 09 Jan 2008 à 17:12 Bulle
Avatar de stilobique
Newser

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

(___/)
(='.'= )Voici Lapin. Copiez et collez Lapin dans votre signature
(")_(") pour l'aider à concrétiser sa domination du monde.
noob4ever Message lu Posté le 09 Jan 2008 à 17:55 Bulle
Avatar de noob4ever
Explorateur

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 :

Vis à vis de ta remarque Noob4ever, j'aimerais bien voir un jeu simple (tétris par exemple) programmé sur plusieurs de ces langages...



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 :lol:

@Mod


Citation :

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.



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 :smile:

http://research.microsoft.com/fsharp/fsharp.aspx
What did C:/DARTHVADER said to C:/DARTHVADER/LUKESKYWALKER ?

I'm your folder
gus Message lu Posté le 09 Jan 2008 à 18:55 Bulle
Avatar de gus
Explorateur

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 Message lu Posté le 09 Jan 2008 à 19:35 Bulle
Avatar de Huntil
Modérateur

Messages : 1012
GCPoints : 289843
J'ai l'impression que noob4ever fait de la propagande pour le C# :happy: (d'ailleur comment on prononce "#" en anglais ?)
Copyright © 2007 - 2010 Huntil
"Il faut toujours un drame"
noob4ever Message lu Posté le 09 Jan 2008 à 19:47 Bulle
Avatar de noob4ever
Explorateur

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 Message lu Posté le 09 Jan 2008 à 20:51 Bulle
Avatar de Mod
Webmaster

Messages : 4954
GCPoints : 2100823

"noob4ever" a écrit :

et arreter de voir le paradigme orienté objet, comme la révélation du siècle



Je citais ça en exemple :wink: .



"noob4ever" a écrit :

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# .



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 :

J'ai l'impression que noob4ever fait de la propagande pour le C# :happy: (d'ailleur comment on prononce "#" en anglais ?)



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 :smile:.



"noob4ever" a écrit :

J'aime la programmation en général donc tout les langages.



Même le JavaScript ?
noob4ever Message lu Posté le 09 Jan 2008 à 21:02 Bulle
Avatar de noob4ever
Explorateur

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 :lol:
What did C:/DARTHVADER said to C:/DARTHVADER/LUKESKYWALKER ?

I'm your folder
Squarch Message lu Posté le 09 Jan 2008 à 21:53 Bulle
Nouveau Membre

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 :smile:
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 :smile:
Dernière édition le 10 Jan 2008 à 15:35
stilobique Message lu Posté le 10 Jan 2008 à 12:36 Bulle
Avatar de stilobique
Newser

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.

(___/)
(='.'= )Voici Lapin. Copiez et collez Lapin dans votre signature
(")_(") pour l'aider à concrétiser sa domination du monde.
Huntil Message lu Posté le 10 Jan 2008 à 12:45 Bulle
Avatar de Huntil
Modérateur

Messages : 1012
GCPoints : 289843

Citation :

personnellement, je pense que l'on peut réaliser n'importe quel projet avec n'importe quel language, seul le programmeur fait la difference


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 :happy:
Copyright © 2007 - 2010 Huntil
"Il faut toujours un drame"
Daru13 Message lu Posté le 10 Jan 2008 à 15:41 Bulle
Avatar de Daru13
Membre Elite

Messages : 2884
GCPoints : 108090

Citation :

Cependant sa doit être compatible pour la Xbox il me semble.


Vu que Xbox c'est Microsoft, et que ça a, qui plus est, tout d'un ordinateur, c'est plus que probable :wink:.
noob4ever Message lu Posté le 10 Jan 2008 à 18:03 Bulle
Avatar de noob4ever
Explorateur

Messages : 295
GCPoints : 48742
C# pas portable ? ça la don de m'enerver ça ... maintenant tu le sauras :lol:

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 Message lu Posté le 10 Jan 2008 à 18:09 Bulle
Avatar de stilobique
Newser

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...

(___/)
(='.'= )Voici Lapin. Copiez et collez Lapin dans votre signature
(")_(") pour l'aider à concrétiser sa domination du monde.
noob4ever Message lu Posté le 10 Jan 2008 à 18:22 Bulle
Avatar de noob4ever
Explorateur

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 :smile:

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 Message lu Posté le 13 Fév 2008 à 12:12 Bulle
Explorateur

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.
Répondre
GameCorp - Site d'apprentissage et d'entraide à la création de jeux vidéo.
XHTML Valid 1.1 - Page générée en 0.0561 secondes