Moteur de jeu 2D recommandé pour le prototypage [fermé]


76

Quel moteur de jeu de haut niveau recommanderiez-vous pour développer un prototype de jeu en 2D sous Windows? (ou mac / linux si vous le souhaitez)

Le genre de choses que je veux dire par "haut niveau" comprend (mais n'est certainement pas limité à):

  • ne pas avoir à gérer des choses de bas niveau comme les tampons d'écran, les contextes graphiques
  • avoir une API pour dessiner des formes géométriques
  • J'allais l'omettre, mais j'imagine qu'être basé sur un langage "de haut niveau" est un avantage (la gestion automatique des ressources et l'existence d'un ensemble raisonnable de structures de données dans la bibliothèque standard me viennent à l'esprit).

Il me semble que Flash est l'éléphant dans la pièce pour cette requête, mais j'aimerais beaucoup voir différentes réponses basées sur toutes sortes de langages ou de kits de développement logiciel (SDK).

Réponses:


31

J'ai beaucoup utilisé pygame , et il y a beaucoup de points positifs:

  • c'est une bibliothèque pour Python, qui est un langage de haut niveau
  • il y a une bonne documentation claire
  • il y a une communauté active

Pygame est une enveloppe autour de SDL, une bibliothèque graphique 2D multiplate-forme. Pygame possède également des wrappers pour le son, la musique, etc. Notez que, bien que Python soit un langage de programmation de haut niveau, pygame est (pour la plupart) une bibliothèque graphique de niveau assez bas.


3
Vous voudrez peut-être mentionner que, bien qu'il s'agisse d'un langage de haut niveau, le cadre du jeu reste assez bas.
Henk

5
Ouais, vous pouvez facilement passer quelques semaines à construire lentement un moteur de jeu dans PyGame sans trop de jeu à montrer. C'est une excellente bibliothèque, mais d'après mon expérience, vous devrez construire un code de structure au fil du temps avant de pouvoir travailler au prototypage rapide d'idées plus complexes.
James

35

Si vous voulez regarder d'autres choses. Vous pouvez vérifier Löve (qui utilise Lua)


4
Whoa, cela ressemble à une façon super amusante d'apprendre le lua!
GloryFish

9
Juste pour noter que j'ai écrit le commentaire ci-dessus le 22 septembre 2010. Sept jours plus tard, je me suis assis et, en une nuit, j'ai créé mon premier jeu Löve, n'ayant jamais écrit de Lua auparavant. Depuis lors, j'ai créé plusieurs jeux avec Lua et Löve et je suis en train de porter un jeu Löve sur iOS. C'est un excellent langage de prototypage et un excellent moyen d'apprendre Lua.
GloryFish

2
C'est génial d'entendre: D
Ólafur Waage

20

Je trouve que XNA est un très bon langage pour prototyper. Il est facile de lancer ensemble des idées rapides pour voir comment le jeu pourrait fonctionner, et assez solides pour faire le travail. Il existe également une grande communauté sur les forums d'aide, ainsi que plusieurs outils tiers (moteurs physiques / bibliothèques d'assistance / etc ..)


Comme Microsoft XNA est DOA, la meilleure chose à faire est Monogame (implémentation open source de XNA).
ashes999

2
Ils le supporteront toujours, et vous pouvez toujours créer des prototypes de jeux avec ce dernier. Ils ne livrent pas de nouvelles fonctionnalités. Je n'appellerais pas ça mort, mais plutôt à la retraite :)

18

GameMaker ressemble à un bon outil de création de prototypage ou de construction. Il est basé sur le glisser-déposer "sans la nécessité d'écrire une seule ligne de code", semble donc être destiné aux débutants. (Je ne l'ai jamais utilisé, c'est juste arrivé - mais leur site web a l'air génial. :)



14

Le Flixel d' Adam Atomic mérite également d'être mentionné. Un moteur de jeu simple, moderne et simple, écrit en Flash. Vous pouvez l'apprendre en quelques minutes et non en quelques jours. Et l'utilisation de Flash (ou Processing / Java) vous évite l'un des pièges les plus dangereux du prototypage: vous ne pouvez pas utiliser le code du prototype sur une plate-forme sérieuse. C'est le jeu que vous voulez créer, pas le code.


1
+1 pour Flixel. Excellent moteur. Nous l'avons utilisé au Global Game Jam (et avons gagné :). Impossible d'obtenir des prototypes semi-polis beaucoup plus rapidement que 48 heures!
michael.bartnett

Vraiment vraiment génial. J'ai eu une pièce de théâtre ce matin et cela m'a appris l'action à partir de zéro.
mcintyre321

@ michael.bartnett, pouvez-vous créer un lien vers votre jeu gagnant? Juste curieux :)
James McMahon

@JamesMcMahon J'apprécie votre curiosité :) Pouvez-vous m'envoyer un message sur le chat à ce sujet? En outre, je voudrais mentionner aux futurs lecteurs de commentaires que je préférerais Flashpunk à Flixel entre eux deux.
michael.bartnett

8

Ce n'est pas spécifiquement un moteur de jeu, mais regardez dans Processing . Certains des bons points sont:

  • Configuration minimale requise. Vous pouvez avoir quelque chose à l'écran en 30 secondes.
  • Peut puiser à tout moment dans Java pour des choses comme des collections, mais une grande partie de la syntaxe de dessin, d'animation et d'interaction est beaucoup moins détaillée que Java.
  • Tout ce que vous écrivez sera compatible avec Processing.js , ce qui vous permettra de l'utiliser avec n'importe quel navigateur moderne.

8

J'utilise Novashell.

J'ai utilisé Game Maker comme outil principal, mais j'ai eu un problème avec YoYo Games (je ne vais pas expliquer ici maintenant), puis j'ai trouvé Novashell.

Novashell est VRAIMENT un outil de prototypage, il a été conçu par le créateur de "LORD" (légende du dragon rouge) et de "Dink Smallwood" afin de pouvoir créer rapidement des jeux pour Ludumdare (concours de gamejam de 48h). , supporte les scripts LUA, est faite en C ++, possède une licence zlib (ce qui signifie que vous pouvez faire ce que vous voulez avec le code source, sans prétendre avoir inventé des choses que vous n’avez pas inventée), et dispose d’un moteur physique (Box2D), système de particules (Particule linéaire pour ClanLIB), supporte MikMod et Fmod, fonctionne sous Linux, Mac et Windows, est extrêmement facile à utiliser, et vous pouvez demander des choses à Seth!

EDIT: Seth est le nom du programmeur (qui a également fait Seigneur)


Merci! jamais entendu parler de celui-ci avant, mais la liste des fonctionnalités est suffisamment intéressante pour l'essayer. également en open source
Nek

Oui! Ma propre version de Novashell est un peu améliorée par rapport à la version officielle, mais il me faudra un bon bout de temps avant de pouvoir la publier :( (ce n'est même pas dans un ordinateur physiquement près de moi)
speeder

De toute façon, je n'ai pas le temps de l'apprendre avant le Ludum Dare ce week-end. J'espère que vous pourrez le publier avant le prochain LD.
Nek

aussi le discours de ce LD est par Seth lui-même!
Nek

Yep :) Seth est génial ... Je ne suis pas au courant des LD :( Je ne sais donc pas quand le prochain LD le sera.
speeder

7

Game Maker est très cool, il fait essentiellement tout ce que vous avez décrit. Il comporte des icônes de glisser-déposer pour les débutants et du code pour les utilisateurs avancés. Cependant, après avoir utilisé le C ++ exclusivement pendant plus d'un an, revenir à Game Maker était ... douloureux.

Inconvénients:

  • Aucune structure de données définie par l'utilisateur (rien comme les structures C ou les classes C ++, juste les "objets")
  • Dynamiquement tapé (tapez "varAwesome = 0" et oh mon dieu, il vient d'apparaître)
  • YoYo Games is evil

Upsides:

  • Facile à utiliser, difficile à maîtriser
  • Fait beaucoup de choses bas niveau pour vous
  • Communauté dynamique et active

J'ai commencé à créer des jeux avec Game Maker en 2002. :)


6
lol à typé dynamiquement - inconvénient ...
RCIX

Oui, ça et le typage faible. J'ai eu des bugs très étranges avant de réaliser que l'opérateur de module renvoyait les réponses en virgule flottante.
James

Aucune structure de données définie par l'utilisateur n'est pénible. Si vous devez renvoyer plus d'une valeur d'une fonction, vous devez créer un objet pour celui-ci, mais tous les objets sont des acteurs de jeu complets avec une position, des événements, etc. Vous ne pouvez pas faire passer de tableaux (si vous ne spécifiez pas un index, il assumera [0])
Bart van Heukelom

Je recommande également GameMaker si vous souhaitez prototyper rapidement votre conception de jeu. GameMaker est très puissant et j'ai vu des choses incroyables se réaliser avec. Vous pourriez potentiellement économiser beaucoup de temps et de peine si vous modélisiez d'abord la conception de votre jeu dans GameMaker avant de développer un moteur de jeu en C ++ ou XNA.
Cooper

En fait, j'ai une bibliothèque de scripts d'allocation de mémoire dynamique spécialement conçue pour résoudre le problème du manque de structures de données. Je dirai que le fait de disposer de telles bibliothèques et de pouvoir le faire dans la version allégée facilite certainement beaucoup le travail.
Le grand canard

5

J'utilise DarkBASIC Professional depuis 2 ans et j'en profite vraiment. Si vous ne pouvez pas vous permettre d'acheter la version complète, vous pouvez simplement télécharger la version gratuite prise en charge par la publicité. Les créateurs de jeux, fabricants de DBPro, publient également une lettre d'information régulière qui est une excellente lecture, en plus d'une communauté très active; tout ce qui précède peut être trouvé ici:

https://www.thegamecreators.com/

Vérifiez-le, j'espère que vous pourriez trouver quelque chose là-bas.

Cordialement, BFM


5

cocos2d qui utilise pyglet . J'utilise abondamment ces deux bibliothèques Python pour le prototypage.

Beaucoup plus facile de travailler que pygame.

Je suis surpris qu'il n'ait pas encore été mentionné!


5

Je recommanderais Scirra Construct pour les débutants et le prototypage rapide.

Le moteur de jeu lui-même est abstrait, vous pouvez donc vous concentrer entièrement sur votre jeu. Les plugins permettent des fonctionnalités supplémentaires, le "code" étant constitué de blocs d'événement, de condition et d'action déplaçables, etc.

Construct est en cours de développement et compte également une communauté active.


3

La version 2 du kit de développement de jeu à faire défiler est la deuxième itération majeure (réécriture) d’un environnement de développement de jeu (IDE) et d’un framework pour exactement ce type de prototypage et de développement de jeu simple en 2D. En tant que deuxième itération, elle tire parti des langages modernes (C #) et des technologies (réflexion sur le code personnalisé), tout en corrigeant certaines des lacunes fondamentales de la conception (elle permet désormais de placer des sprites directement dans l’éditeur de carte plutôt que de les modifier. seul un chemin qui doit être connecté de manière externe à un sprite, et il ne tente pas de devenir un éditeur de la sorte, car il y a certaines choses que vous voulez voir se produire uniquement au moment de l’exécution et d’autres que vous voulez au moment de la conception).

Certaines des caractéristiques d'intérêt:

  1. La grande majorité du code d'infrastructure est exposée et modifiable dans l'EDI. Si vous n'aimez pas le comportement de la fonction intégrée "PushTowardSprite", vous pouvez ouvrir l'éditeur et le modifier, ou ajouter le vôtre qui apparaîtra dans la liste avec toutes les commandes intégrées.
  2. Vous avez parlé de la possibilité de dessiner des polygones. Ce framework est basé sur OpenTK, un wrapper .NET autour d'OpenGL. Vous avez donc toute la puissance d'OpenGL à portée de main. Il existe une seule classe "Display.cs" dans le code d'infrastructure que vous pouvez éditer dans l'EDI, ajoutez les fonctionnalités de dessin de votre choix.
  3. Une grande partie du cadre est ciblée sur la physique à défilement latéral (marche sur les pentes, plates-formes d'équitation, etc.), de sorte qu'une grande partie de ce code est déjà faite pour vous; bien sûr, vous pouvez le personnaliser ou l'ignorer pour d'autres types de jeux 2D. Un jeu de Tetris a été écrit avec.
  4. Défilement parallèle
  5. La transparence alpha peut être intégrée aux graphiques ou appliquée au dessin de n’importe quel graphique.
  6. Toutes les données du projet sont enregistrées dans un seul fichier XML (un jeu de données .NET). Les éditeurs externes peuvent accéder au fichier, étendant ainsi les fonctionnalités disponibles dans l'EDI si nécessaire.
  7. Les projets sont d'abord compilés en projets C # (compatibles avec Visual Studio), puis en fichiers EXE (avec toutes les ressources incorporées). Si nécessaire, vous pouvez charger le projet dans Visual Studio pour une interface de débogage améliorée ou de développement de code.

3

Avec PreviewLabs, société spécialisée dans le prototypage rapide , nous utilisons souvent Unity3D pour créer des prototypes de jeux 2D.

Bien qu'il s'agisse d'un moteur 3D, il existe plusieurs façons de l'utiliser pour le prototypage 2D. Ce sont les principaux avantages:

  • Utilisation gratuite pour les plateformes PC et Mac
  • Les versions payantes fonctionnent également pour iOS et Android, vous permettant de voir comment votre concept fonctionnerait sur une plate-forme différente.
  • Il est livré avec un moteur physique, que vous pouvez également utiliser lors du prototypage de jeux 2D.

J'écris une série de billets de blog sur la manière dont Unity3D peut être utilisé pour le prototypage de jeux en 2D; voici le premier: Prototypage de jeux 2D dans Unity3D


3

Le framework Slick écrit en Java est un bon choix. C'est ce que j'ai d'abord appris à programmer. Les avantages sont qu’il fonctionne sur plusieurs plates-formes, peut produire des applets pour le Web et offre un support fantastique pour les outils et les bibliothèques via Eclipse ou tout autre élément de l’environnement Java. Cela dit, je suis finalement passé à Flash simplement parce que, si vous souhaitez distribuer vos jeux, rien de plus simple et efficace.


2

J'ai commencé à utiliser FlashPunk pour mon premier projet de développement de jeux, et jusqu'à présent, il s'est avéré très simple. C'est une bibliothèque Flash construite pour la conception de jeux. C'est un moteur de jeu simple, semblable à Flixel, mais qui ressemble plus à GameMaker, étant plus convivial pour les débutants que Flixel. FlashPunk et Ogmo Editor le rendent très efficace pour passer au niveau de la conception sans passer beaucoup de temps à coder. Vous trouverez plus d’informations sur ces trois activités au Dojo du jeu flash .


1

J'appuie la mention de Game Maker. Je dirais que si chaque moteur de jeu tombe dans un continuum allant de "facile à utiliser / apprendre mais limité dans ce que vous pouvez faire" à "très puissant, mais prend beaucoup de temps à maîtriser" ... Game Maker est à peu près la définition. de l'extrême facile à utiliser. Comme le dit Cyclops, la plupart des fonctionnalités de base (images-objets, création d’objets de jeu, mouvements, détection des collisions, tenue de score, etc.) sont des icônes de type glisser-déposer. Il comprend en fait un langage de script assez robuste que vous pouvez également utiliser une fois que vous commencez à bien travailler ... mais lorsque vous commencez à écrire tout votre jeu dans leur langage de script intégré, il est peut-être temps de passer à un langage de script tel que Flash ou PyGame.

Malgré tout, j’ai eu beaucoup de succès avec Game Maker en tant qu’outil novice pour les étudiants en conception de jeux, qui ne nécessite pas de programmation, et je ne saurais trop le recommander.


1

Je suis très débutant dans la création de jeux et j'ai été impressionné de pouvoir créer quelque chose avec pygame aussi rapidement et facilement. Python + SDL = facilité assurée.


1

Eh bien, si c'est pour le prototypage, vous n'avez pas vraiment besoin d'un back-end astucieux avec la gestion des ressources, etc. Tant que vous pouvez charger des graphiques et les afficher, vous êtes généralement paramétré. Je vais à contre-courant et propose «écris ton propre». Vous ne perdrez pas de temps à comprendre comment utiliser l'API de quelqu'un. Si écrire vous-même n'est vraiment pas une option, DirectX est fourni avec un exemple de structure fournissant les services les plus basiques. Ne pas être lié par un cadre signifie ne pas perdre de temps à suivre ses règles et à ne pas être limité par son champ d'application. Je fais du prototypage en tant que travail et mes résultats les plus rapides ont été lorsque je pouvais me baser sur du code sans avoir à me soucier d'un framework, ni à en être gêné. Un wrapper 2D n'a vraiment besoin que de charger des images et de pouvoir les afficher en x, y - éventuellement avec une échelle, rotation et si vous voulez être trippy, shader. Vous pouvez coder le reste selon vos besoins. Pour un prototype, le code ne sera pas agréable.


1

Torque-2d de GarageGames est un moteur de jeu génial avec une communauté fantastique, des add-ons vraiment impressionnants et une prise en charge intégrée de Windows, Mac, Wii et même iOS (sous licence distincte). Il en coûte 99 $.

Unity3d (vous pouvez développer des jeux en 2D sur celui-ci) est un autre très bon moteur de jeu de haute qualité avec une barrière d'entrée relativement basse. Encore une fois, excellente communauté et support multi-plateformes vraiment cool, y compris iOS et Android, en plus de Win / Mac, Wii, Xbox, Playstation et le Web.

Cocos2d est un excellent moteur de jeu pour iPhone.


1

Votre question porte sur ce qu'il faut pour écrire un prototype de jeu en 2D, mais je pense qu'il y a autre chose à considérer: le plus gros avantage de Flash est ce qu'il faut pour partager ce prototype avec d'autres. Presque tout le monde a déjà Flash installé. Je peux télécharger un fichier SWF et transmettre l’URL à une personne par chat ou par courrier électronique. Pas de téléchargement, pas d'installation, pas de décompression, pas d'exe, pas de problème de multiplateforme. J'ai fini par choisir Flash parce qu'il était si facile de partager et d'obtenir des commentaires. L'itération implique de télécharger à nouveau et de leur dire de recharger, et je voulais une itération rapide pour le prototypage. (Javascript + Canvas / SVG est une autre option utile, et je suis sûr que nous verrons bientôt des bibliothèques comme Flixel / Flashpunk pour JS).


1

HGE semble génial. Il possède un éditeur de particules, un éditeur graphique et est utilisé par les programmeurs professionnels.


1

Il y a toujours GLBasic .

C'est un langage de niveau assez élevé et a récemment étendu son support mobile.

  • C'est à la fois 2D et 3D
  • Gratuit pour non commercial
  • Commandes de base des images-objets, avec collision de pixels ou de blocs
  • Écrire une fois et déployer sur de nombreux appareils et plates-formes (principalement)
  • A le soutien de Box2D via wrapper (forums de recherche)
  • TYPES de données personnalisées avec des fonctions (proche d'une classe mais il manque beaucoup de fonctionnalités de POO)
  • Peut faire bouger un sprite sur l'écran en peu de temps avec quelques lignes de code

1

PixieEngine est un environnement de développement de jeux et d’EDI basé sur le Web. Il utilise CoffeeScript pour les scripts et fournit un éditeur intégré pour le pixel art et les effets sonores.

PixieEngine IDE


1

Je suis allé dans une quête similaire et ai croisé quelques autres outils non mentionnés ici:

  • Stencylworks est un environnement IDE / dev permettant de créer des jeux Flash très rapidement et facilement, interface visuelle pour les modules existants. il semble être 100% gratuit, pas open source, et les principaux avantages sont le codage fluide et sans code (ce n'est pas comme le script / l'interface visuelle schitzoid de Gamemaker). Je m'inquiète des limites de l'interface visuelle - j'ignore à quel point elle est réellement orientée objet. il a certainement des trucs simples; vraisemblablement, l'éditeur de script javascript est quelque part, mais ne l'a pas encore vu. Il semble être conçu pour le développement collaboratif à la base (discussion intégrée à l'IDE; toutes les ressources et tous les comportements hébergés sur un serveur, apportés par l'utilisateur). Cela pourrait être GRAND pour le développement de prototypes. Je ne l'ai pas encore beaucoup fait, mais le tutoriel était d'une simplicité déconcertante.

J'ai essayé quelques autres plus bizarres aussi.

Alice est un environnement de jeu / dev 3D qui est open source - a l’air plutôt maladroit.

Kodu, allant au-delà de Gamemaker sur le spectre facile / limité, destiné aux enfants, vous permet de créer des jeux avec une manette Xbox. gratuit de Microsoft Research

Scratch, de MIT Labs, est une 2D gratuite et vraiment basique, destinée à inciter les enfants à coder. Visuellement maladroit. Flexible cependant.

Pour revenir au LOGO de Papert, Microworlds JR vous permet d'écrire un logo, prétendument. Besoin d'une mise à jour pour être utile, OMI.

Pour moi, jusqu'ici, cela revient à Construct 2 vs Stencylworks ... bien que je vérifie à quel point il est facile de créer un jeu 2D décent dans Unity, comme je le sais et qui aime Unity.


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.