La manière la plus simple et la plus amusante de programmer des jeux 2D? Éclat? XNA? Un autre moteur? [fermé]


20

ceci est un article détaillant ma recherche de la manière la plus agréable pour un programmeur de jeux amateur de faire passer son temps libre à faire un jeu.

Mes exigences: j'ai d'abord regardé Flash, j'ai fait quelques petits jeux mais je doute de la performance. Je voudrais faire un jeu de stratégie assez grand, avec plusieurs centaines d'unités combattant simultanément, explosions et animations incluses. Cartes également zoomables. J'ai vu qu'Adobe a une nouvelle API 3D pour Flash, mais je ne sais pas si cela améliore également les performances 2D, je n'ai rien trouvé de similaire à cette question sur leurs sessions MAX10. Diriez-vous que Flash est une bonne technologie pour créer facilement de grands jeux 2D? J'aime vraiment Actionscript et j'adore la facilité avec laquelle tout est en Flash. Il existe plusieurs moteurs disponibles qui le rendent encore plus facile.

Je fais juste cela pour le plaisir, et ce serait encore mieux s'il y avait des éditeurs d'animation / particules appropriés et si le moteur que je devais utiliser serait disponible pour plusieurs plates-formes. (donc plus de gens peuvent jouer à mon jeu une fois terminé). J'aimerais également l'avoir sur de nombreuses plateformes mobiles. (parce que j'aime la saisie tactile pour une raison quelconque)

Je connais assez bien le framework XNA, mais il n'y a pas de bons moteurs disponibles pour cela, et il ne fonctionnera que sur Windows, ce qui est un énorme arrêt. Encore plus important, vous devez installer le XNA redistribuable chaque fois que vous voulez donner le jeu à quelqu'un. Si j'utilise XNA, je devrais créer tous les outils moi-même, et je devrais probablement les faire avec WPF. (J'adorerais créer des outils avec Adobe AIR, mais malheureusement, les API pour la manipulation d'images, etc. sont bien pires dans Flash que dans XNA / WPF.) Maintenant, je suis conscient que je pourrais créer mon propre moteur qui prend en charge chacune de ces plates-formes, mais franchement, ce serait trop de travail labourant via les API. Après tout, je veux faire un jeu, pas un moteur.

La question devient donc la suivante: existe-t-il un moteur multiplateforme (gratuit ou libre à développer?) Que je pourrais utiliser pour le développement 2D? Je préfère: C #, Actionscript. Cela ne me dérange pas d'utiliser c ++ si le jeu d'outils est supérieur à la moyenne, mais je doute fortement qu'il y ait quelque chose comme ça. Veuillez me prouver le contraire :) Donc résumé: je voudrais utiliser Flash, mais je ne sais pas s'il évolue assez bien. Je ne suis pas un scripteur, je veux de vraies API avec lesquelles je peux travailler à l'intérieur d'un IDE approprié.

Juste pour information, j'ai regardé plusieurs alternatives, je cherche déjà depuis longtemps déjà. Tu m'aiderais beaucoup à prendre une décision finalement.

  • Côté fonctionnalités, le moteur Flatredball serait idéal. Mais j'ai essayé leurs outils, et franchement, ils sont horribles. Absolument inutilisable, j'aurais besoin de faire le mien à coup sûr. Je n'ai pas regardé leur API, mais si leurs outils sont si mauvais, je n'ai pas envie d'aller plus loin.

  • Unity3D. Celui-ci est assez sympa, mais je n'ai vraiment pas besoin de 3D , et c'est assez ... beaucoup de travail à apprendre. Je n'aime pas non plus qu'il soit si cher à utiliser pour différentes plates-formes et que je ne puisse le coder que par script. Vous devez acheter chaque plate-forme séparément. La convivialité de l'éditeur est moyenne, le produit dans l'ensemble est assez bon pour la plupart des utilisations, mais l'apprendre moi-même serait exagéré.

  • Shiva 3D. Cela semble assez bon, mais encore une fois: je n'ai pas vraiment besoin de 3D. La convivialité de l'éditeur est un peu pire que Unity3D à mon avis et il n'était pas clair pour moi comment commencer la programmation. Je pense que cela nécessite C ++ pour le codage, donc c'est aussi un point négatif. Je veux m'amuser, et c # c'est amusant;)

  • SDL. Franchement, j'aurais encore besoin de porter sur toutes ces différentes implémentations SDL. Et je n'aime pas la programmation de style OpenGL, c'est tout simplement laid. Et il a besoin de c ++, je sais qu'il pourrait y avoir des wrappers disponibles, mais je n'aime pas utiliser des wrappers, car ...

  • Irrlicht. Beaucoup de fonctionnalités, mais le support semble faible et s'adresse aux passionnés. Les liaisons C # sont supprimées à plusieurs reprises. Je ne suis pas un passionné de moteur, je veux juste faire un jeu. Je ne vois pas cela se produire avec Irrlicht.

  • Ogre3D. Beaucoup trop de travail, c'est juste un moteur graphique. Pas de support de plateforme multiple et c ++.

  • Torque2D. Ça coûte quelque chose à utiliser, et je n'ai pas entendu beaucoup de bonnes choses sur le support et la documentation. Coûts supplémentaires pour chaque plate-forme.


Les outils du SDK FRB sont mauvais (Glue en particulier, je ne l'utilise pas) mais vous font gagner du temps lors de leur écriture et les formats de fichiers sont simples si l'écriture de vos propres outils est un must. L'API n'est pas si mauvaise et semble adaptée à cette portée, le plus gros problème en ce moment est le manque de port XNA 4.0 pour PC et Xbox. De plus, la redistribution XNA et d'autres conditions préalables peuvent faire partie de l'installation - et en utilisant clickonce, vous pouvez avoir la mise à jour automatique et le déploiement prêts à l'emploi.
Oskar Duveborn

Eh bien, mon point est que je ne les utiliserais pas, et donc les outils sont inutiles. Ils continuent de s'écraser sur moi en plus de leur mauvaise interface utilisateur / sensation générale. Et s'il s'avère qu'il leur manque une certaine fonctionnalité? Même s'ils étaient open source, je ne voudrais pas aller près de ces bases de code. Cela semble dur, mais je veux vraiment une programmation détendue, et FRB semble être un gâteau de frustration. Imaginez: j'ai essayé l'éditeur de particules et je n'ai même pas trouvé le bouton pour ouvrir un fichier image. Ce qui est sans doute la caractéristique la plus importante sur laquelle tout le reste s'appuie.
Maxi

Pas une réponse complète, mais Flash évolue mieux que vous ne le pensez. Si vous blit sur un canevas de données bitmap au lieu d'utiliser la pile d'affichage et que vous effectuez d'autres optimisations simples, vous pouvez en extraire beaucoup plus qu'il n'y paraît avec une solution plus naïve.
Gregory Avery-Weir

Le listitem dans l'éditeur de particules est simplement appelé "texture" dans le panneau des propriétés de l'émetteur ^^ Il y a des tutoriels sur tous les outils pour que les créateurs de contenu non codants puissent aider. Mais oui, les interfaces utilisateur sont vraiment horribles du point de vue de la conception d'interaction.
Oskar Duveborn

1
En ce qui concerne XNA étant uniquement Windows, il existe une implémentation open source de l'API de XNA appelée MonoGame qui fonctionnera sur toutes sortes de plates-formes non Windows: cocoa-mono.org/archives/400/… Je ne l'ai pas utilisé moi-même mais cela existe.
chaosTechnician

Réponses:


10

Pygame est de loin mon préféré. Étant donné que la programmation en python signifie que vous programmerez rapidement et que les choses 2D sont rapides à faire, pygame sera amusant ...


En prime si vous décidez de passer au monde 3D, il y a un pyglet qui enveloppe GL dans une peau de serpent;)
Wayne Werner

9

J'utilise LÖVE depuis un certain temps maintenant et je l'aime beaucoup. Il faudrait apprendre Lua, mais c'est quand même une petite langue amusante à apprendre. Les personnes présentes sur le forum sont extrêmement utiles.


Quelle est la performance? quel IDE puis-je utiliser?
Maxi

1
J'appuie ceci. Nous avons utilisé Lua et LOVE pour notre jeu Global Game Jam et cela a fonctionné de manière fantastique. Ils ont rassemblé de très bonnes bibliothèques open source sous une API commune, et chaque version continue de s'améliorer. Les performances sont excellentes (Lua est très rapide!), Et de nombreuses fonctionnalités avancées d'OpenGL comme les FBO sont exposées, ce qui est rare pour de nombreux moteurs 2D. En plus de tout cela, c'est multiplateforme (Win / Mac / Linux). Je lui donnerais certainement un bon coup d'oeil.
Bob Somers

1
@Maxi: Avec amour, vous avez juste besoin d'un éditeur et d'une console où vous pouvez écrirelove .
egarcia

2
Les Russes ont-ils fait un jeu avec ça? Ce serait De la Russie avec amour: P
Bart van Heukelom

5

J'ai décidé d'aller avec Flash. La nouvelle API Molehill 3D peut également être utilisée pour dessiner des sprites 2D dans l'espace 3D beaucoup plus rapidement. Je ne vois aucune raison pour laquelle Flash ne devrait pas être assez rapide pour le jeu que j'ai décrit plus tôt. Je vais devoir construire les outils moi-même, mais j'aurais probablement dû le faire de toute façon. L'utilisation d'AIR pour créer des outils est également assez intéressante à mon avis. Flash a également la portée la plus large avec les plates-formes, ce qui est cool.



1
Flash est probablement un bon choix, car il existe de très bons outils (matures) et bibliothèques pour le flash. L'API Molehill prendra une lourde charge sur le CPU (auparavant tout était géré par le CPU). Vous devez cependant penser à la distribution de votre jeu. Flash signifie généralement un jeu basé sur un navigateur ...
bummzack

Et faites attention aux jeux mobiles, le flash et les mobiles sont une mauvaise combinaison.
Gustavo Maciel

" Et faites attention aux jeux mobiles, le flash et les mobiles sont une mauvaise combinaison. ". @Gtoknu, une raison pour laquelle?
NemoStein

@NemoStein Essayez de rechercher sur youtube des flashs fonctionnant sur les mobiles. De plus, Adobe a interrompu son développement de flash pour Android, et il n'y a pas de flash pour iOS.
Gustavo Maciel

4

Essayez SFML


Bien qu'utile, SFML n'est qu'une API graphique / réseau / audio, pas tout à fait un moteur de jeu complet (bien qu'il soit assez proche).
a_m0d


2

Puisque vous avez dit que vous aimez Actionscript mais que vous recherchez une plateforme multiplateforme, jetez un œil à HaXe + NME . HaXe est un langage similaire à Actionscript, mais peut être compilé en Flash, Javascript, PHP ou C ++. NME est une bibliothèque similaire à la bibliothèque graphique de Flash, mais fonctionne également sur d'autres plateformes. Cette combinaison vous permet de compiler sur de nombreuses plates-formes différentes.

Je n'ai pas encore utilisé NME, mais mon premier test avec HaXe + Molehill (il y a quelques jours seulement) a produit 60 images par seconde lors du rendu de 10000 sprites rotatifs 16x16 sur mon ordinateur portable. Je n'utilise HaXe que depuis quelques jours et je n'ai pas assez d'expérience avec lui pour être sûr que c'est la bonne chose pour vous, mais ça vaut le coup d'œil.


1

Je suis personnellement un grand fan d' Allegro 5 , mais c'est une API C. Pourtant, c'est une API simple qui vous écarte et donne accès à:

  • Graphiques 2D (soutenus par OpenGL ou D3D, selon la plate-forme)
  • Du son
  • Polices (y compris bitmap et TTF)
  • Entrée (souris et clavier)
  • PhysicsFS (virtualisation du système de fichiers)
  • Chargement d'image

5.1 ajoutera également le support du shader.

SDL 1.3 se présente également très bien. Sam semble avoir fini de faire les principaux changements d'API, et ce qui est déjà dedans est déjà assez stable. Pourtant ... ce n'est même pas encore la version bêta, et Allegro 5.0 est sorti.

Certes, pour les jeux plus complexes et avancés, vous voudrez probablement coupler Allegro 5 avec une sorte de bibliothèque de physique ( Box2D , par exemple). Pourtant, vous pouvez faire un très long chemin et vous amuser, sans rien de plus qu'Allegro 5, la bibliothèque standard C ou C ++ et votre propre code.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.