Motor de juego 2D recomendado para creación de prototipos [cerrado]

76

¿Qué motor de juego de alto nivel recomendarías para desarrollar un prototipo de juego 2D en Windows? (o mac / linux si lo desea)

El tipo de cosas que quiero decir con "alto nivel" incluye (pero definitivamente no se limita a):

  • no tener que gestionar cosas de bajo nivel como buffers de pantalla, contextos gráficos
  • tener una API para dibujar formas geométricas
  • bueno, iba a omitirlo, pero supongo que estar basado en un lenguaje de "alto nivel" real es una ventaja (la gestión automática de recursos y la existencia de un conjunto razonable de estructuras de datos en la biblioteca estándar vienen a mi mente).

Me parece que Flash es el elefante proverbial en la sala para esta consulta, pero me gustaría ver diferentes respuestas basadas en todo tipo de idiomas o SDK.

Thomas Dufour
fuente

Respuestas:

31

He usado pygame ampliamente y tiene muchos aspectos positivos:

  • es una biblioteca para Python, que es un lenguaje de alto nivel
  • tiene buena documentación clara
  • tiene una comunidad activa

Pygame es un contenedor alrededor de SDL, una biblioteca de gráficos 2D multiplataforma. Pygame también tiene envoltorios para sonido, música, etc. Tenga en cuenta que a pesar de que Python es un lenguaje de programación de alto nivel, pygame es (en su mayor parte) una biblioteca de gráficos de nivel bastante bajo.

talljosh
fuente
3
Es posible que desee mencionar que, aunque está en un lenguaje de alto nivel, como marco de juego todavía es de nivel bastante bajo.
Henk
55
Sí, puedes pasar fácilmente unas semanas construyendo lentamente un motor de juego en PyGame sin mucho juego real que mostrar. Es una gran biblioteca, pero en mi experiencia, tendrá que construir un código de marco con el tiempo antes de que funcione para la creación rápida de prototipos de ideas más involucradas.
James
35

Si quieres mirar otras cosas. Puedes ver Löve (que usa Lua)

Ólafur Waage
fuente
44
¡Vaya, parece una forma súper divertida de aprender lua!
GloryFish
99
Solo para tener en cuenta, escribí el comentario anterior el 22 de septiembre de 2010. 7 días después me senté y en una noche creé mi primer juego de Löve sin haber escrito ningún Lua antes. Desde entonces, he creado varios juegos con Lua y Löve y actualmente estoy portando un juego de Löve a iOS. Ha sido un gran lenguaje de creación de prototipos y una excelente manera de aprender Lua.
GloryFish
2
Es asombroso escuchar eso: D
Ólafur Waage
20

Creo que XNA es un lenguaje muy agradable para crear prototipos. Es fácil reunir ideas rápidas para ver cómo funcionaría el juego / mecánica, y lo suficientemente fuerte como para realmente hacer el trabajo. También tiene una gran comunidad en los foros de ayuda, y varias herramientas de terceros (motores de física / bibliotecas auxiliares / etc.)

usuario159
fuente
Dado que Microsoft XNA es DOA, la siguiente mejor opción es Monogame (implementación de código abierto de XNA).
ashes999
2
Todavía lo admitirán, y aún puedes crear prototipos de juegos con él. Simplemente no están enviando nuevas características. No lo llamaría muerto, sino más bien en retiro :)
18

GameMaker parece una buena herramienta introductoria de creación de prototipos o construcción de juegos. Se basa en arrastrar y soltar "sin la necesidad de escribir una sola línea de código", por lo que parece estar dirigido a principiantes. (Nunca lo he usado, solo sucedió en él, pero su sitio web ciertamente se ve elegante. :)

Cíclope
fuente
14

El Flixel de Adam Atomic también vale la pena mencionar. Un motor de juego simple, moderno y básico escrito en Flash. Puedes aprenderlo en minutos, no días. Y el uso de Flash (o Processing / Java) te mantiene alejado de uno de los peligros más peligrosos de la creación de prototipos: no puedes usar el código del prototipo en ninguna plataforma seria. Es el juego que quieres prototipar, no el código.

martinpi
fuente
1
+1 para Flixel. Gran motor Lo usamos en el Global Game Jam (y ganamos :). ¡No se pueden obtener prototipos semipulidos mucho más rápido que 48 horas!
michael.bartnett
Realmente realmente genial. Tuve una obra de teatro esta mañana y me enseñó ActionScript desde cero.
mcintyre321
@ michael.bartnett, ¿puedes vincular tu juego ganador? Simplemente curioso :)
James McMahon
@JamesMcMahon Agradezco tu curiosidad :) ¿Podrías hacerme ping en el chat al respecto? Además, quiero mencionar para futuros lectores de comentarios que preferiría Flashpunk sobre Flixel hoy en día entre los dos.
michael.bartnett
8

No es específicamente un motor de juego, pero mira Procesamiento . Algunos de los puntos positivos son:

  • Se requiere una configuración mínima. Puede tener algo en pantalla en 30 segundos.
  • Puede sumergirse en Java en cualquier momento para cosas como colecciones, pero gran parte de la sintaxis de dibujo, animación e interacción es mucho menos detallada que Java directo.
  • Todo lo que escriba será compatible con Processing.js , por lo que puede trabajar con él en cualquier lugar donde tenga un navegador moderno.
lti
fuente
8

Yo uso Novashell.

Usé Game Maker como herramienta principal, pero tuve un problema con YoYo Games (no lo explicaré aquí ahora), luego encontré Novashell.

Novashell es REALMENTE una herramienta de creación de prototipos, fue hecha por la persona que también hizo "LORD" (Leyenda del Dragón Rojo) y "Dink Smallwood" para poder hacer juegos rápidos para Ludumdare (una competencia de gamejam de 48 horas), tiene un editor de mapas , admite secuencias de comandos LUA, está hecho en C ++, tiene licencia zlib (lo que significa que puede hacer lo que quiera con la fuente, salvo afirmar que inventó cosas que no hizo), y tiene un motor de física (Box2D), sistema de partículas (Partícula lineal para ClanLIB), es compatible con MikMod y Fmod, funciona en Linux, Mac y Windows, es muy fácil de usar, ¡y puede pedirle cosas a Seth!

EDITAR: Seth es el nombre del programador (que también hizo a LORD)

reductor de velocidad
fuente
¡Gracias! Nunca he oído hablar de este antes, pero la lista de características es lo suficientemente interesante como para probarlo. también de código abierto
Nek
¡Sí! Mi propia versión de Novashell está un poco mejorada en relación con la versión oficial, pero tomará MUCHO tiempo antes de poder lanzarla :( (ni siquiera está en una computadora físicamente cerca de mí)
deslizador
de todos modos no tengo tiempo para aprenderlo antes del Ludum Dare este fin de semana. Espero que lo publiques antes del próximo LD.
Nek
¡también la nota clave de este LD es del propio Seth!
Nek
Sí :) Seth es increíble ... No estoy al día con LD :( Así que no tengo ni idea de cuándo será el próximo LD.
Speeder
7

Game Maker es muy bueno, básicamente hace todo lo que has descrito. Tiene iconos de arrastrar y soltar para principiantes y código para usuarios avanzados. Sin embargo, después de haber usado C ++ exclusivamente durante más de un año, volver a Game Maker fue ... doloroso.

Desventajas:

  • No hay estructuras de datos definidas por el usuario (nada como estructuras C o clases C ++, solo "objetos")
  • Escrito dinámicamente (escriba "varAwesome = 0" y, oh, Dios mío, acaba de aparecer)
  • YoYo Games es malvado

Upsides:

  • Fácil de usar, difícil de dominar.
  • Hace muchas cosas de bajo nivel para ti
  • Comunidad vibrante y activa

Comencé a hacer juegos usando Game Maker en 2002. :)

caballero666
fuente
66
jajaja en tipeado dinámicamente - desventaja ...
RCIX
Sí, eso y el tipeo débil. Obtuve algunos errores realmente extraños antes de darme cuenta de que el operador del módulo estaba devolviendo respuestas en coma flotante.
James
Ninguna estructura de datos definida por el usuario es una molestia. Si necesita devolver más de un valor de una función, debe crear un objeto para ella, pero todos los objetos son actores completos del juego con una posición, eventos, etc. No puede pasar conjuntos (si no especifica un índice, asumirá [0])
Bart van Heukelom el
Recomiendo GameMaker también si quieres crear un prototipo rápido del diseño de tu juego. GameMaker es muy poderoso y he visto algunas cosas increíbles hechas con él. Potencialmente, podría ahorrarse mucho tiempo y dolor si crea un prototipo del diseño de su juego en GameMaker antes de pasar a desarrollar un motor de juego en C ++ o XNA.
Cooper
De hecho, tengo una biblioteca de scripts de asignación de memoria dinámica específicamente para solucionar el problema de la falta de estructuras de datos. Diré que tener tales bibliotecas y poder hacerlo dentro de la versión lite ciertamente hace que sea muy fácil trabajar con ellas.
The Great Duck
5

He estado usando DarkBASIC Professional durante 2 años y realmente lo disfruto. Si no puede permitirse el lujo de comprar la versión completa, puede simplemente descargar la versión gratuita con publicidad. Los creadores de juegos, creadores de DBPro, también lanzan un boletín periódico que hace una lectura bastante buena, además de que tienen una comunidad activa bastante grande; Todo lo anterior se puede encontrar aquí:

https://www.thegamecreators.com/

Compruébalo, espero que encuentres algo allí.

Saludos, BFM

Pies ardientes
fuente
5

cocos2d que usa pyglet . Utilizo estas dos bibliotecas de Python ampliamente para la creación de prototipos.

Mucho más fácil de trabajar que el pygame.

¡Me sorprende que aún no se haya mencionado!

rev. Gerald Kaszuba
fuente
5

Recomiendo Scirra Construct para principiantes y prototipos rápidos.

El motor del juego en sí es abstracto, por lo que puedes centrarte en tu juego por completo. Los complementos permiten una funcionalidad adicional, el "código" está hecho de bloques de eventos, condiciones y acciones arrastrables, etc.

Construct está en desarrollo activo y tiene una comunidad activa también.

Miha Petelin
fuente
3

El Scrolling Game Development Kit versión 2 es la segunda iteración principal (reescritura) de un IDE de desarrollo de juegos y un marco para exactamente este tipo de creación de prototipos y desarrollo de juegos 2D simples. Como segunda iteración, aprovecha los lenguajes modernos (C #) y las tecnologías (reflexión sobre el código personalizado), además de resolver algunos de los defectos fundamentales en el diseño (ahora le permite colocar sprites directamente en el editor de mapas en lugar de solo una ruta que debe estar conectada externamente a un sprite, y no trata de ser un editor de Wysywig porque hay algunas cosas que quieres que sucedan solo en tiempo de ejecución y otras que solo quieres en tiempo de diseño).

Algunas de las características de interés:

  1. La gran mayoría del código marco está expuesto y editable dentro del IDE. Si no le gusta la forma en que se comporta la función incorporada "PushTowardSprite", puede abrir el editor y cambiarlo, o agregar el suyo que aparecerá en la lista junto con todos los comandos incorporados.
  2. Mencionaste la capacidad de dibujar polígonos. Este marco se basa en OpenTK, que es un contenedor .NET alrededor de OpenGL. Entonces tienes todo el poder de OpenGL a tu alcance. Hay una sola clase "Display.cs" en el código de marco que puede editar dentro del IDE, agregue las características de dibujo que desee.
  3. Gran parte del marco está dirigido a la física de desplazamiento lateral (caminar en pendientes, andar en plataformas, etc.), por lo que gran parte de ese código ya está hecho para usted; por supuesto, puedes personalizarlo o ignorarlo para otros tipos de juegos en 2-D. Se ha escrito un juego de Tetris con él.
  4. Desplazamiento de paralaje
  5. La translucidez alfa puede incrustarse en los gráficos o aplicarse al dibujo de cualquier gráfico.
  6. Todos los datos del proyecto se guardan en un solo archivo XML (un conjunto de datos .NET). Los editores externos pueden acceder al archivo ampliando las funciones disponibles en el IDE si es necesario.
  7. Los proyectos se compilan primero en proyectos de C # (compatibles con Visual Studio) y luego en archivos EXE (con todos los recursos integrados). Si es necesario, puede cargar el proyecto en Visual Studio para una depuración mejorada o una interfaz de desarrollo de código.
BlueMonkMN
fuente
3

Con PreviewLabs, una compañía especializada en la creación rápida de prototipos , a menudo usamos Unity3D para crear prototipos de juegos 2D.

Aunque es un motor 3D, hay varias formas de usarlo para la creación de prototipos 2D. Estas son las principales ventajas:

  • Es de uso gratuito para las plataformas PC y Mac
  • Las versiones pagas también funcionan para iOS y Android, lo que le permite ver cómo funcionaría su concepto en una plataforma diferente.
  • Viene con un motor de física, que también puedes usar para crear prototipos de juegos en 2D.

Estoy escribiendo una serie de publicaciones de blog sobre cómo Unity3D se puede usar para la creación de prototipos de juegos en 2D; este es el primero: prototipos de juegos 2D en Unity3D

bernardfrancois
fuente
3

El Marco Slick escrito en Java es una buena opción. Es lo que solía aprender a programar. Los beneficios son que se ejecuta en varias plataformas, puede producir applets para la web y tiene un fantástico soporte de herramientas / biblioteca a través de Eclipse o cualquier otra cosa que tenga el entorno Java. Dicho esto, eventualmente cambié a Flash simplemente porque si quieres distribuir tus juegos no hay nada más fácil o más efectivo.

Alex Schearer
fuente
2

Comencé a usar FlashPunk para mi primer proyecto de desarrollo de juegos, y hasta ahora ha sido muy hábil. Es una biblioteca Flash creada para el diseño de juegos. Es un motor de juego básico similar a Flixel, pero se parece más a GameMaker, siendo más fácil de usar para los principiantes que Flixel. FlashPunk junto con el Editor de Ogmo hacen que sea muy eficiente llegar al diseño de nivel sin tener que dedicar mucho tiempo a la codificación. Puede encontrar más información sobre estos tres en el Flash Game Dojo .

Curtidor
fuente
1

Secundaré la mención de Game Maker. Diría que si todos los motores de juego caen en un continuo de "fácil de usar / aprender pero limitado en lo que puedes hacer" a "realmente poderoso, pero lleva mucho tiempo dominarlo" ... Game Maker es más o menos la definición del extremo fácil de usar. Como dice Cyclops, la funcionalidad más básica (sprites, creación de objetos de juego, movimiento, detección de colisión, control de puntuación, etc.) son iconos de arrastrar y soltar. En realidad, incluye un lenguaje de secuencias de comandos bastante robusto que también puede usar, una vez que comienza a mejorar ... pero cuando comienza a escribir todo el juego en su lenguaje de secuencias de comandos incorporado, tal vez sea hora de "graduarse" en un lenguaje de secuencias de comandos como Flash o PyGame

Aún así, he tenido un gran éxito con Game Maker como una herramienta para principiantes y sin necesidad de programación para estudiantes de diseño de juegos, y no puedo recomendarlo lo suficiente.

Ian Schreiber
fuente
1

Soy un principiante en la creación de juegos, y me impresionó lograr hacer algo de pygame tan rápido y fácil. Python + SDL = facilidad asegurada.

gokoon
fuente
1

Bueno, si es para la creación de prototipos, realmente no necesita un sofisticado back-end con gestión de recursos y cosas por el estilo. Siempre que pueda cargar gráficos y mostrarlos, estará configurado principalmente. Voy contra la corriente y propongo 'escribe el tuyo'. Perderá cero tiempo descubriendo cómo usar la API de alguien. Si escribir-tu-propia no es realmente una opción, DirectX viene con un marco de muestra que proporciona la mayoría de los servicios básicos. No estar obligado por un marco significa no perder tiempo siguiendo sus reglas y no estar limitado por su alcance. He estado creando prototipos como trabajo, y mis resultados más rápidos fueron cuando pude criticar el código sin tener que preocuparme o tener que obstaculizar un marco. Un contenedor 2D realmente no necesita más que cargar imágenes y poder mostrarlas en x, y, posiblemente con escala, rotación y si quieres ser trippy, sombreador. El resto lo puede codificar según lo necesite. Para un prototipo que es, el código no será bueno.

Kaj
fuente
1

Torque-2d de GarageGames es un gran motor de juego con una gran comunidad, algunos complementos realmente impresionantes y soporte incorporado para Windows, Mac y Wii, e incluso iOS (con licencia separada). Cuesta $ 99.

Unity3d (puedes desarrollar juegos en 2D) es otro motor de juego de muy buena calidad con una barrera de entrada relativamente baja. Nuevamente, excelente comunidad y soporte multiplataforma realmente genial, incluidos iOS y Android, además de Win / Mac, Wii, Xbox, Playstation y la web.

Un gran motor de juegos centrado en iPhone es cocos2d para iOS.

Todd Hopkinson
fuente
1

Su pregunta es sobre lo que se necesita para escribir un prototipo de juego 2D, pero creo que hay algo más que considerar: la mayor ventaja de Flash es lo que se necesita para compartir ese prototipo con otros. Casi todos ya tienen Flash instalado. Puedo subir un SWF y pasarle la URL a alguien por chat o correo electrónico. Sin descarga, sin instalación, sin descomprimir, sin exe, sin problemas de plataforma cruzada. Terminé eligiendo Flash porque era muy fácil compartir y recibir comentarios. La iteración implica cargar de nuevo y decirles que vuelvan a cargar, y quería una iteración rápida para la creación de prototipos. (Javascript + Canvas / SVG es otra opción útil, y estoy seguro de que pronto veremos bibliotecas como Flixel / Flashpunk para JS).

amitp
fuente
1

HGE parece genial. Tiene un editor de partículas, un editor de GUI y es usado por programadores profesionales.

Saleh
fuente
1

Siempre hay GLBasic .

Es un lenguaje de nivel bastante alto y recientemente ha estado expandiendo su soporte móvil.

  • Es a la vez 2D y 3D
  • Gratis para no comercial
  • Comandos básicos de sprites, con colisión de píxeles o bloques
  • Escriba una vez e implemente en muchos dispositivos y plataformas (principalmente)
  • Tiene soporte Box2D a través de wrapper (foros de búsqueda)
  • TIPOS de datos personalizados con funciones (cerca de una clase pero falta mucha funcionalidad OOP)
  • Puede hacer que un sprite se mueva en la pantalla en poco tiempo con pocas líneas de código
Doug.McFarlane
fuente
1

PixieEngine es un entorno de desarrollo de juegos e IDE basado en la web. Utiliza CoffeeScript para las secuencias de comandos y proporciona editores integrados para pixel art y efectos de sonido.

PixieEngine IDE

Daniel X Moore
fuente
1

He estado en una búsqueda similar y encontré algunas otras herramientas que no se mencionan aquí:

  • Stencylworks es un entorno IDE / dev para construir juegos Flash de forma muy rápida y fácil, interfaz visual para módulos existentes. parece ser 100% gratuito, no de código abierto, y las ventajas clave incluyen la codificación ingeniosa y sin código (no es como el script esquitzoideo / interfaz visual de Gamemaker). Me preocupan los límites de la interfaz visual: no estoy claro qué tan orientado a objetos está realmente; ciertamente tiene cosas simples; presumiblemente, el editor de scripts de JavaScript está en algún lugar, pero aún no lo he visto. Parece estar destinado al desarrollo colaborativo en su núcleo (chat incorporado a IDE; todos los recursos y comportamientos alojados en un servidor, contribuido por el usuario). Eso podría ser GENIAL para el desarrollo de prototipos. Todavía no he hecho mucho, pero el tutorial fue muy simple, y ahí '

También he probado algunos otros más extraños.

Alice es un entorno de juego / desarrollo en 3D que es de código abierto, parece un poco torpe

Kodu, yendo más allá de Gamemaker en el espectro fácil / limitado, dirigido a niños, te permite crear juegos con un controlador Xbox. libre de Microsoft Research

Scratch, de MIT Labs, es 2D gratuito y realmente básico, destinado a que los niños entren en la codificación. Visualmente torpe. Aunque flexible.

Volviendo muuuucho al LOGOTIPO de Papert, Microworlds JR te permite escribir un logotipo, supuestamente. Necesita una actualización para ser útil, OMI.

Para mí, hasta ahora, todo se reduce a Construct 2 vs Stencylworks ... aunque veré lo fácil que es construir un juego 2D decente en Unity, como sé y me gusta Unity.

joshoff
fuente