Salut, depuis quelques semaines je n'arrête pas de réfléchir sur quel langage de programmation serait idéal pour développer des jeux sur Linux et exclusivement sur Linux. Je me moque de la portabilité, ma principale motivation c'est de sortir des jeux pour Linux. La logique voudrait que je continue de programmer des jeux avec MonoDevelop et MonoGame mais je ne sais pas si c'est une bonne chose puisque le tout repose sur une technologie Microsoft breveté. C'est dommage, car j'aime le C# et je le comprend facilement contrairement au C++ qui ma embrouillé dernièrement. J'ai regardé du coté du Java également, car assez proche du C#, mais créer des jeux qui fonctionnent grâce à une machine virtuelle, je trouve que c'est moyen. Je n'ai jamais aimé les applications écrit en Java car il faut que la machine dispose de Java et je n'apprécie pas ce genre de dépendance. Il nous reste Python, vers lequel je penche le plus mais je n'ai trouvé aucun IDE qui vérifie le code pendant que je l'écris. De plus, j'ai du mal avec la syntaxe de Python étant donné que je me suis habitué au PHP et au C#.
Je ne cherche pas à faire des jeux très complexes. Pour le moment, je me considère comme débutant en programmation et en développement de jeux vidéo. J'ai un shoot'em up dont le code est presque terminée. Pour ne pas faire d'erreur, je préfère porter le projet sur Linux plutôt que Windows avec XNA.
Est-il préférable de continuer avec le C# sur Linux pour développer mes jeux ou est-il plus prudent de changer de langage de programmation et si oui, lequel ?
Merci pour votre aide et vos conseils.
# Pour l'IDE : Emacs + Flymake + pyflakes ou pylint
Posté par Ronan BARZIC . Évalué à 2.
Pour répondre au point particulier concernant l'IDE…
Personnellement, j'utilise Emacs et Flymake pour écrire la plupart de mes programmes, quelque soit le language (perl,python,C, Prolog, verilog…). Ça lance les programmes de vérification en tache de fond et ça met une ligne rouge là ou il y a une erreur
Ça permet de n'utiliser qu'un seul outil. Combiner à yasnippet, ça permet d'être super efficace
Spécifique à Python, j'ai googlé ça :
http://stackoverflow.com/questions/1259873/how-can-i-use-emacs-flymake-mode-for-python-with-pyflakes-and-pylint-checking-co
Sinon, il y a Eric comme IDE en Python pour Python, mais je ne l'ai jamais utilisé
# OpenGL pour les graphiques, C/C++ pour le code
Posté par NeoX . Évalué à 4.
avec ca, tu as presque tous les OS à ta portée.
reste à gerer l'audio et les interactions utilisateurs (clavier/souris)
sinon, java + opengl et ca te fais une appli multiplateforme
[^] # Re: OpenGL pour les graphiques, C/C++ pour le code
Posté par Mali (site web personnel) . Évalué à 4. Dernière modification le 22 février 2013 à 14:34.
Sinon, plus accessible (AMHA), la lib SDL est portable et dispose de nombreux Bindings pour l'utiliser avec du C, C++, Python, Perl, lua, etc ..
[^] # Re: OpenGL pour les graphiques, C/C++ pour le code
Posté par benja . Évalué à 1.
Comparer SDL et OpenGL, n'est-ce pas un peu comme comparer des pommes à des poires ?
# Conseils
Posté par devnewton 🍺 (site web personnel) . Évalué à 3. Dernière modification le 22 février 2013 à 17:19.
C# et Monogame
Microsoft vient d'annoncer l'abandon de XNA. Créer un jeu avec Monogame, qui est un portage de XNA, me semble très hasardeux.
Les machines virtuelles
Python, Java et C# utilisent tous des machines virtuelles. Pour les trois, il faut que l'utilisateur installe Python, Java ou .NET.
Pour faire des jeux natifs, C++ est le langage le plus utilisé. Il y en a d'autres, mais c'est plutôt anecdotique.
Java ou Python
Java et Python dispose de très bons frameworks pour faire des jeux: les principaux sont pygame, libgdx, playn.
Après c'est une question de goût et du jeu que tu veux faire: python est plus lent, mais plus simple que java au début.
Pour te faire une idée, tu peux commencer par regarder le code voire contribuer à des jeux existants: http://linuxfr.org/wiki/jeux_libres_linuxfr
Le post ci-dessus est une grosse connerie, ne le lisez pas sérieusement.
# Python, le meilleur choix ?
Posté par shingo (site web personnel) . Évalué à 3.
Je me suis forcé à utiliser monogame / monodevelop et franchement ce n'est pas terrible. J'ai passé une après-midi à tout adapter. J'étais content car j'avais plus qu'à compiler et voir le jeu tourner… Bah tu parles, rien ! Impossible de charger / afficher les images etc. D'après la console c'est un bug de monogame et même quand j'essaie d'afficher une image dans un projet vide, même erreur. De plus, la communauté est vraiment silencieuse, du moins sur Linux. Bref, monogame j'oublie définitivement.
Je pense que je vais m'attaquer sérieusement à Python, le problème c'est que tout ce que je vois comme jeu, semble sous exploité cruellement ses possibilités ou alors peut être que je me trompe. Je vais vous présenter le jeu que je suis en train de réaliser en vidéo :
http://www.youtube.com/watch?v=05h3CaIVzlI
Je pense que Python devrait faire largement l'affaire.
[^] # Re: Python, le meilleur choix ?
Posté par lolop (site web personnel) . Évalué à 2.
Quelques liens de mes marques pages, glanés ici et là:
Si vous en avez d'autres liés au développement de jeux avec Python…
Votez les 30 juin et 7 juillet, en connaissance de cause. http://www.pointal.net/VotesDeputesRN
[^] # Re: Python, le meilleur choix ?
Posté par devnewton 🍺 (site web personnel) . Évalué à 2.
Il a l'air très bien ce shmup!
Tu utilises quoi pour éditer les niveaux?
Le post ci-dessus est une grosse connerie, ne le lisez pas sérieusement.
[^] # Re: Python, le meilleur choix ?
Posté par shingo (site web personnel) . Évalué à 1.
Tout est fait à la main :)
[^] # Re: Python, le meilleur choix ?
Posté par papap . Évalué à 2.
pas mal,mais ça à l'air difficile. J'espère que tu prévoiras des niveaux de difficulté (facile, normal, difficile) sinon, les débutants risqueraient d'être rebutés et de partir du jeu rapidement.
[^] # Re: Python, le meilleur choix ?
Posté par shingo (site web personnel) . Évalué à 1.
Oui, il y a déjà des ces trois modes . Le jeu est terminé, il me reste plus qu'à finaliser le comportement de deux boss. Mais le plus gros travail maintenant c'est de le convertir vers le nouveau langage pour que ça tourne sur Linux…
[^] # Re: Python, le meilleur choix ?
Posté par devnewton 🍺 (site web personnel) . Évalué à 2.
N'hésite pas à faire un journal quand ce sera prêt!
Le post ci-dessus est une grosse connerie, ne le lisez pas sérieusement.
[^] # Re: Python, le meilleur choix ?
Posté par devnewton 🍺 (site web personnel) . Évalué à 2.
Ca doit demander pas mal de boulot!
Regarde du côté d'éditeurs génériques comme http://www.mapeditor.org/. Ca permets d'avoir des contributeurs plus facilement.
Le post ci-dessus est une grosse connerie, ne le lisez pas sérieusement.
[^] # Re: Python, le meilleur choix ?
Posté par Nonolapéro . Évalué à 2.
Dans le monde python ya Kivy
http://kivy.org/
# Du web
Posté par dave_null (site web personnel) . Évalué à 2.
Je te conseille de te tourner vers le web.
Le web va te permettre de bénéficier de librairies nombreuses et performantes, de la plus grande communauté de développeurs. Tu vas pouvoir faire un jeu multiplateformes du premier coup ce qui te permettra de le partager efficacement. C'est plus simple de cliquer sur un lien que d'installer Python.
Si tu n'aimes pas le JavaScript, tu peux utiliser un des 12 000 langages qui se compile en JavaScript (voir cette liste https://github.com/jashkenas/coffee-script/wiki/List-of-languages-that-compile-to-JS). Je tiens juste à mentionner Emscripten qui est un compilateur vers JavaScript te permettant par exemple d'utiliser des outils en C.
En ce qui concerne les performances, les machines virtuelles JavaScript sont maintenant pas trop mauvaises pour un tel langage (interprété, prototypes, typage dynamique…). Même si un bench n'est pas une valeur universelle, regarde http://benchmarksgame.alioth.debian.org/u32/benchmark.php?test=all&lang=v8&lang2=csharp pour la différence entre V8 et Mono par exemple. Pour le rendu, les navigateurs récents peuvent utiliser le GPU de manière transparente, et les performances sont alors excellentes.
Ce n'est pas un hasard si de plus en plus de systèmes d'exploitations se tournent vers le Web (windows, tizen, firefox os, webos, etc…). Le jeu vidéo sur le web est peut-être encore un peu jeune et le marché n'est pas encore stabilisé (il suffit de voir le nombre d'outils en concurrence dans tout les domaines), mais te former sur ce domaine n'est à mon avis pas du temps perdu.
[^] # Re: Du web
Posté par needs . Évalué à 2.
Peut-être que faire des jeux dans un navigateur c'est cool, mais sa limite vachement les possibilités :
Après pourquoi pas, j'avais vu un clone de teeworlds hyper basique sur navigateur (je n'ai pas retrouvé le lien), le rendu graphique était bien mais totalement injouable, avec des clics de souris qui n'était pas pris en compte, et des lags après 2 minutes de jeu.
Une petite dernière chose : Si tu veux garder ton code secret, sa vas pas être possible niveau client.
[^] # Re: Du web
Posté par dave_null (site web personnel) . Évalué à 2.
Les performances 3D sont bof mais en 2D c'est quand même très correct.
Le mec qui est dans le cantal et qui n'a pas l'ADSL il attendra que ça charge, mais il a l'habitude. Et il ne va pas attendre plus qu'avec le téléchargement du jeu natif. Il faut peut-être plus faire attention à la taille des données qu'un jeu natif, mais c'est dommage de s'arrêter à ça.
La consommation mémoire ne va pas être forcément excessive. Sur le benchmark entre V8 et Mono, la consommation mémoire est en moyenne deux fois plus faible pour V8. Le rendu du navigateur risque de prendre lui aussi un peu de mémoire mais franchement c'est pas ça le principal.
Pour une LAN, rien n'empêche d'héberger le serveur en local. Et les websockets permettent une bonne latence en général.
Je vois pas le rapport avec les onglets youtube et compagnie. Le manque de mémoire à cause des autres applications ouvertes, c'est pareil en natif ou en web…
Pour les raccourcis clavier il y en a moins, mais jepense qu'un jeu qui arrive à utiliser tout les raccourcis clavier disponibles a certainement un problème de conception au niveau des interactions avec l'utilisateur.
Pour le débogage, je ne pense pas que ce soit différent qu'avec d'autres technologies. Webkit propose des outils de développement très complets avec un débogueur tout à fait fonctionnel.
[^] # Re: Du web
Posté par devnewton 🍺 (site web personnel) . Évalué à 2.
Je ne vois pas l'intérêt de développer un jeu en html5 directement alors qu'il existe des technos (playn, libgdx et emscripten)pour compiler du Java ou du C++ vers cette plateforme
Le post ci-dessus est une grosse connerie, ne le lisez pas sérieusement.
# Rejoins Flukz
Posté par Yukito (site web personnel) . Évalué à 4.
Suite à une suggestion de devnewton dans le journal Flukz 0.1, je me permets de te proposer de venir rejoindre Flukz. Il s'agit d'un moteur de shootemup programmé en Qt, dont les niveaux sont entièrement éditables à la façon d'un wiki. La première version vient d'être releasée, il y a quelques jours.
J'ai l'impression que Flukz pourrait fournir l'environnement que tu cherches pour implémenter tes idées. On a déjà une base de code solide et qui ne demande qu'à s'étendre. Bon, c'est codé en C++, avec lequel tu as eu apparemment une expérience difficile, mais la bibliothèque Qt est très bien conçue … et ça change tout. Elle permet d'éviter la quasi totalité des aspects techniques compliqués du C++. Et la base de code de Flukz est déjà suffisamment développée pour qu'il soit possible d'y faire des améliorations uniquement par imitation du code existant, sans spécialement connaître Qt notamment.
Si tu testes Flukz, tu seras peut-être déçu par la "pauvreté" du contenu actuel, et les fonctionnalités limitées des sprites. Comparé à ta superbe video de démo, la route est encore longue. Mais je suis persuadé que la possibilité pour les utilisateurs de participer directement à la création des niveaux à la façon d'un wiki est la fonctionnalité-clef qui permettra à terme de faire la différence sur tous les jeux existants. J'évite de le dire trop fort sur ce site pour ne pas perdre ma crédibilité (ça se perd facilement, il paraît :-), mais bon, voilà, l'objectif de Flukz, c'est de devenir l'équivalent de wikipedia pour les jeux videos 2D. Shoot'em up, mais aussi jeux de plateforme ou jeux de simulation type simcity.
Enfin, bref, tu es plus que bienvenu si ça t'intéresse, aussi bien en tant qu'utilisateur du logiciel pour créer des niveaux avec les fonctionnalités existantes, qu'en tant que développeur pour participer au codage de nouvelles fonctionnalités.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.