Bonjour,
Je voudrais savoir quel langage choisir pour créer des applications (principalement des jeux, mais pas que ça) 2D et 3D rapidement, donc un langage de haut niveau (simple). On va dire entre python et C++.
Je recherche donc la simplicité mais aussi un minimum de rapidité, un langage compilé me conviendrais donc mieu qu´un langage interprété ;) .
J´ai fais du C++ mais j´avais trop de bugs dans mes programmes et je n´aime pas passer mon temps à débugué ^^ !
Je fais aussi du Python
, j´aime bien ce langage par sa simplicité, mais il n´est pas très adapté pour ce que je veu faire
...
Bon après je connais d´autres langages mais bon, je ne vais pas m´étaller sur ça ;) .
Bref, en gros:
Je veu un langage de haut niveau, compilé, assez utilisé, BIEN DOCUMENTE et adapté à la création de jeux vidéo aussi bien 2D que 3D .
Ah et j´oubliai, il fau qu´il soi portable au moins sur Windows et linux, je ne devrais pas tarder a avoir Linux...
Voilà,
Je remercie d´avance ceux qui m´aiderons
!
++
PS: Mettez des lien vers des tuto, en français si possible, s´il vous plais.
JAVA
Je n´aime pas passer mon temps à débugué ^^
Alors oublie la prog, et apprend Merise ou UML pour faire une belle analyse de ton programme...
Merise
:vomi:
Bien que je n´en connaisse pratiquement rien, je choisis de suite UML ![]()
J´ai fais du C++ mais j´avais trop de bugs dans mes programmes et je n´aime pas passer mon temps à débugué ^^ !
les bugs ne viennent jamais du langage utilisé mais toujours de l´utilisateur...
Java est d´assez haut niveau, super bien documenté, ... domage que ce se soit aussi rapide qu´un herrisson hemiplégique. > pas adapté pour faire des jeux (sauf des jeux pourraves sur telephones portable)
Pour ce qui est de python, il y a largement de quoi faire des jeux en 2D avec. Il me semble meme qu´il existe un port de la SDL (bibliotheque orientée jeux 2D en C) vers python.
Et pour ce qui est de Merise et UML, ayant fait des deux je dirais : que c´est tout aussi naze l´un que l´autre. Question perte de temps il n´y a pas mieu.
"Je n´aime pas passer mon temps à débugué ^^ "
--> Arrete tout alors.
Peu importe le langage que tu choisis, tu as une partie commune, qui fait bien 95% du code, qui est de la gestion de structures, de classes, du calcul, de l´évolution, de la mise a jour mémoire...
Le rendu (2D ou 3D) n´est que la partie de l´iceberg émergée...
Que tu fasses du Java, du Python, du C++ ou n´importe quel langage, quand tu voudras calculer les collisions de ton perso, la mise a jour des evenements, les interraction, etc...
--> Tu débuggueras.
je te conseille C++ car il est vraiment plus fiable que les autres languages tel que JAVA
la preuve les japonais ne programment leur jeux que par le language C++
Miled_Snake > pas que les japonais ! tout le monde !
Bref, sinon, je tiens a ajouter qu´il existe des libs extremement puissantes comme Irrlicht, qui, en quelques lignes, te permet de te promener dans un monde de Quake 3.
Le niveau requis en programmation est haut, et ça ne t´empechera pas de debugguer pour plein d´autres choses...
si tu ne veux pas déboguer, il faut programer en Caml. LE système de typage dulangage est très restrictif, ce qui fait qu´il y aura toujours des erreurs à la compilation (du moins au début), mais ensuite, la philosophie du langage fait qu´il n´y a pas de bogue dans ton code (bon d´accord, il peut y en avoir si la logique de ton code est mauvaise, mais pas sur l´implémentation).
T´as qu´à essayer Game Maker :
http://www.siteduzero.com/news-62-4937-concours-game-maker.html
Je recherche donc la simplicité mais aussi un minimum de rapidité, un langage compilé me conviendrais donc mieu qu´un langage interprété ;) .
Un langage interprété est plus lent, c´est vrai. En outre, je ne penses pas que tes besoins en performance et ton niveau global (puisque tu débutes) te permettent de voir une quelconque différence entre les deux...
On a déjà bien insisté sur le débuggage alors j´en reparlerai pas.
PS: Mettez des lien vers des tuto, en français si possible, s´il vous plais.
Bienvenu dans le monde de l´informatique. De la bonne doc en francais, ca n´existe quasiment pas.
Waw...
Merci pour toutes ces réponses
!
Mais, je croi qu´on s´est pas très bien compris:
Je sais ce que c´est que la prog et que je suis donc obligé de passer par une phase de débugage pendant un bon moment, voire plusieurs jours selon la taille du projet et quel que sois le langage.
Sinon Game Maker, j´en ai fais... mais je préfère programmer ;) !
Enfin, vous m´avez proposé plusieurs langage mais je ne sais pas le quel choisir donc quels sont leurs avantages et leurs défaut?
Euh, encore un dernier truc, godrik, pour les doc fr, je me doute que je ne trouverais pas grand chose, mais au moins une introduction en français, histoire de mieu me débrouiller dans les docs en anglais ou je ne comprendrais pas tous les mots... Vu que mon niveau en anglais est pas très élevé, pour ne pas dire faible.
Mais au pire je pourrais me débrouiller pour les docs.
Voilà, bon, en attendant vos réponse je retourne faire quelques recherches et en y pensant: le Caml et l´OCaml on l´air pas mals, mais la syntaxe ne ressemble pas franchement aux autres langages, on va dire, plus courrants.
Et ça parrais chaud.
effectivement, le Caml est un langage fonctionnel (contrairement à C, python, etc. qui sont impératif).
Donc pour commencer il faut un peu changer sa manière de programmer (mais on peut faire de l´impératif en Caml, même si ce n´est pas toujours le mieux), on s´y fait très vite et ensuite ça devient une manière tout à fait naturelle de programmer.
Personnelement, je suis beaucoup plus efficaces en Caml qu´en C, alors que je fait du C depuis plus longtemps.
histoire de donner un avis contradictoire pour étoffé le débat (je ne reviendrai pas dessus pour eviter que ça parte en sucette...)
Je trouve que le Caml est vraiment pas un langage pratique. Et si il n´y avait que le langage qui me pose probleme ça irait mais je trouve aussi que le interprete d´ocaml a toujours le don de sortir des erreurs qui t´mbrouille plus qu´autre chose.
je ne vais en citer que deux ici et tout ceux qui on t deja fait du caml vont forcement se reconnaitre.
This expression has type ´a -> (´b * ´c) -> ´d but is here used with type ´a -> (´b * ´c) -> ´d
va debuguer ton code avec ça... (pour info : la solution est de quiter ocaml et de le relancer, l´erreur ne vient pas forcement du code)
autre aide précieuse de ocaml qui m´a fait perdre au moins 1/2 h la semaine derniere : j´ai oublier un ´ a la fin de la declaration d´un caractere (let a = ´a au lieu de let a = ´a´) le probleme c´est qu´ocaml m´a dignostiqué une erreur environs 70 lignes plus bas... pratique.
Je prefere de tres loin le C ou meme le java (et pourtant je n´aime pas le java). Je tiens a signaler que cette année (master 1 info) la moitiée des tp du 1er semestre sont en caml (IA et traduction). Je bouffe pas mal de caml en ce moment et je deteste rester bloquer pendant de tres longues minutes sur un probleme que je pourait résoudre en moins de rien en C ou autre...
D´un autre coté c´est vrai que j´ai un peu de mal a "penser en Caml", je suis beaucoup plus a l´aise avec la Poo ou la prog imperative en générale.
Voila je vais arreter de dire du mal de ce langage dont le seul tort est de me rendre ineficace.
récapitulatif des langages proposés :
-caml : bon je reviens pas dessus
-C : bas niveau, mon preferé (mais je pense un peu chaud au debut
-> voir le siteduzero
-C++ / JAVA : si tu connais qqch a la POO, d´assez haut niveau (surtotu java), tres bien documenté (surtout java)
avantage au C++ pour l´efficacité des programmes et possibilité de mélanger avec du code C
avantage au Java pour la doc et l´api standard enorme.
-python / ruby : langage interprété, de haut niveau, pas mal a la mode en ce moment pas trop compliqué (d´apres ce que j´ai entendu)
Je ne suis qu´assez peu d´accord avec guyver.
Je ne connais pas vraiment de langage qui te fournit de vrai message d´erreur efficace.
L´avantage de caml, c´est qu´a partir du moment ou ca compile, ton programme a un sens. Deplus, le fait d´etre un langage a typage fort le rend tres agreable a programmer. Tu n´as pas de division de int par float qui renvoie une valeur de ´je sais quel type´.
C´est un langage fonctionnel, ce qui fait que si tu as compris ce que c´est une fonction en math, tu sauras faire du caml.
En outre, je le déconseille généralement au gens qui veulenet apprendre l´informatique parceque ce n´est pas un langage qui ressemble au fonctionnement d´une machine. Et je penses qu´un débuttant a besoin de voir ca.
"(pour info : la solution est de quiter ocaml et de le relancer, l´erreur ne vient pas forcement du code)"
Il ne faut pas utiliser caml en mode interactif. C´est super confusant. C´est pire que mapple ce truc la.
Une vrai erreur de C++ est a mon avis beaucoup plus difficile a trouver pour un débutant qu´une erreur de caml. Tu te retrouves super vite a avoir un pointeur dans les choux et debugger ca est souvent horrible.
Je ne suis pas non plus d´accord pour dire que C++ est plus simple que C. Mon dieu non, c´est beaucoup plus difficile.
C´est horrible du C++ je trouves. Presque tous les concepts de la programmation y sont. Avec tout un tas d´opérateur qui font des "opérations magiques" (construction d´objet, typecast implicite, comparaison d´objet, opérateur de recopie...)
Java je suis un peu plus d´accord. Parceque les messages d´erreurs sont assez clair. et tu n´as pas un screugneugneu de pointeur qui peut pointer n´importe ou. Ceci fait que c´est plus facil de comprendre ce qui ne marche pas.
Euh... Alors je dois comprendre que le Caml(ou l´OCaml) c´est pas génial pour commencer avec de "bonnes manières" et avec des erreurs clair et compréhensible (enfin pas toujours)?
Quoi que les erreurs en C/C++ ne sont pas toujours très claires non-plus !
Enfin... bon, donc je devrais me tourner plutôt vers C++ (oui je connais les classes et la POO) ou vers JAVA ?
Ben, il me reste plus qu´a me renseigner sur les 2 langages, les essayer et voir ceux qui me conviennent mieux
.
Bon eu cas ou vous avez d´autres remarques, vous pouvez toujours poster ;) .
et le dotnet dans tout ça? :p
Comme vb.net par exemple:
C´est gratuit, Facile à apprendre, rapide à écrire, rapide à compiler, rapide à executer, et couplé à DirectX Managed (ou xna si tu veux) c´est du pur bonheur pour de la prog 2d / 3d.
Testé et approuvé :D
3DMAN, le JAVA est beaucoup trop lourd que pour être utilisé dans de vrai jeux. C´est plutot utile pour des applications G.U.I ou eventuellement des mini jeux 2D... C´est juste très interessant pour sa portabilité vu que ca passe par la JVM. Le C++ semble beaucoup plus adapté... Je ne l´ai pas encore experimenté pour ma part (je n´en suis qu´au C , le C++ est pour l´année prochaine dans mes cours... Enfin c´est ma vie, on s´en fou :x).
Mais bon, courage, j´espere que tu as de bonnes pas de programmation et de l´orienté objet pour bien comprendre tous les subtils concepts de ce langage.
"3DMAN, le JAVA est beaucoup trop lourd que pour être utilisé dans de vrai jeux."
Gobelin produit par nekeme est ecrit en java.
Tu saurais m´en dire plus a son sujet ? Ca m´interesse bien sur de savoir jusqu´où on peut aller en JAVA vis à vis d´autres langages :x (vu que c´est le premier langage que j´ai appris...)