¿Dónde comenzar con el desarrollo del juego? [cerrado]


65

Lo pregunté anteriormente en este hilo en stackoverflow.com. Uno de los primeros comentarios me redirigió aquí a gamedev.stackexchange.com, así que estoy volviendo a publicar aquí.

Al buscar preguntas relacionadas, encontré una serie de preguntas muy específicas, pero me temo que los detalles me han resultado infructuosos y después de 4 horas en Google no estoy más cerca de lo que comencé, así que sentí que podría llegar a una comunidad. en orden.

Primero, mi objetivo: nunca antes había hecho un juego, aunque había confundido la posibilidad varias veces. Finalmente decidí sentarme y comenzar a aprender a codificar juegos, usar motores de juegos, etc. Todo para que algún día (con suerte pronto) pueda hacer juegos funcionales (aunque simples). Puedo comenzar a agregar complejidad más tarde, por ahora me alegraría tener una cámara controlada por teclado moviéndose en un mundo 3D sin interacción más allá de eso.

Mi experiencia: he trabajado en VARIOS lenguajes de programación que van desde PHP a C ++ a Java a ASM. No le temo a los desafíos que surgen al aprender la nueva sintaxis o las limitaciones inherentes a un nuevo idioma. Sin embargo, toda mi experiencia de programación pasada ha sido estrictamente no gráfica y, por lo general, con poca o extremadamente simple interacción durante la ejecución. He creado algoritmos amplios y brillantes para resolver problemas lógicos y matemáticos, así como problemas gráficos. Sin embargo, en todos los casos, la entrada se definió en un archivo, se pasó de un formulario HTML o se escribió en la consola. La interacción en tiempo real con el usuario es algo con lo que no tengo experiencia.

Mi pregunta: ¿por dónde debería comenzar tratando de hacer juegos? Mejor aún, ¿por dónde debería comenzar tratando de crear un entorno 3D navegable por teclado? Al buscar en línea, he encontrado varios recursos vinculados a motores de juegos, motores de gráficos y motores de física. Aquí hay un breve resumen de mis experiencias con algunos motores que probé:

SDK de Unreal: los videos del tutorial asumen que ya tienes un conocimiento profundo de modelado 3D, motores gráficos, animaciones, etc. La página "Getting Started" no ofrece una explicación formal del desarrollo del juego, pero salta sobre cómo Unreal puede optimizar los procesos. Ya estás familiarizado con. Después de descargar el SDK y ejecutarlo para ver si las herramientas eran tan intuitivas como afirmaban, me saludaron con unos 60 botones y un vacío en blanco para mi modelado 3D. Al hacer clic en "agregar volumen" (para intentar agregar un cubo básico) me encontré con un menú de 30 opciones. En pánico, cerré el editor.

Crystal Space: el sitio web parecía bastante informativo, explicando que Crystal Space era solo para gráficos y el software complementario, CEL, proporcionaba lógica de entidad para hacer juegos. Se proporcionó un juego de demostración, que fue construido usando "CELStart", su herramienta simple para personas sin conocimientos de programación de juegos. Lancé el juego para ver lo que podría crear. Se congeló varias veces, los menús tenían errores, había miles de fallas gráficas, los enemigos no respondían al daño y cuando cerré el juego se bloqueó. Se rindió en ese motor.

IrrLicht: El tutorial asume que tengo Visual Studio 6.0 (tengo Visual Studio 2010). Siguiendo sus instrucciones, no pude importar correctamente la biblioteca a Visual Studio y no pude llamar a ninguna de las funciones que seguían usando. Copiar manualmente archivos de encabezado, archivos de clase y archivos DLL en la carpeta de mi proyecto; el proyecto no se compiló correctamente.

Claramente, no he tenido un buen comienzo y voy en círculos. ¿Alguien me puede apuntar en la dirección correcta? ¿Debería comenzar descargando un programa como Blender y aprender el modelado 3D, o debería aprender a usar un motor gráfico? ¿Debería buscar un motor de juego con todo incluido, o es mejor intentar codificar mi propia lógica de juego? Si alguien realmente ha hecho sus propios juegos, preferiría saber cómo comenzaron.

Además, tomar clases en mi escuela no es una opción. No se ofrece nada


3
+1 Buena experiencia en programación buscando necesidades específicas.
Will Marcouiller

66
+1, esta es una pregunta bien pensada e investigada sobre cómo comenzar el desarrollo del juego. Además, siento tu dolor con respecto al Unreal SDK.
James

Recomiendo consultar los tutoriales de Raven67854 para el UDK. Están enumerados en videos, a la gente parece gustarles.
Jesse Dorsey

Mi consejo es comenzar a hacer algo. Por lo general, las personas que hicieron este tipo de preguntas quieren allanar su camino linealmente (porque una vez hago este mismo tipo de pregunta). Sin embargo, según mi experiencia pasada, la curva de aprendizaje del desarrollo del juego es una curva no lineal. Por lo general, paso de un problema a otro. Si me atoro, pido / busco una respuesta. Por lo tanto, solo pruebe cosas, aprenda de prueba y error. Normalmente comienzo con los tutoriales. Sin embargo, estos tutoriales nunca han dado suficientes detalles, por lo que debo pedir / buscar / experimentar respuestas.
user1542

Respuestas:


38

He hecho esa pregunta cuando me uní a GD. Aquí hay algunos enlaces que pueden ser de su interés y espero que lo guíen hacia su objetivo.

En resumen, iría XNA Game Studiopara controlar el desarrollo del juego. Luego, avanzando hacia lo que desea lograr como conocimiento / tecnología. XNAme enseñó a trabajar con sprites y me permitió aplicar parte de mi conocimiento desde el principio de mi curva de aprendizaje, de modo que pude comprender lo suficientemente rápido como para entender cómo debería diseñar mi juego para usar las clases mientras trabajo inyección de dependencia y demás. Entonces, no te tengo esperando más.

  1. ¿Dónde comenzar a escribir juegos, tutoriales o similares?
  2. ¿Cuáles son los fundamentos del desarrollo del juego? (Pregunta interesante, en mi humilde opinión)
  3. Separar la física y la lógica del juego del código de la interfaz de usuario
  4. Moviendo mi sprite en XNA usando clases

¿Por qué XNA preguntarás? Simplemente por tu experiencia en Java. XNA usa C #, que es similar a Java en varias formas, y también es un marco simple para usar que abstrae el Game Loop y otras cosas para que pueda concentrarse en lo que es importante.

Realmente espero que esto te ayude a comenzar. =)


1
Perdón por la respuesta tardía =) Estaba leyendo cada una de las publicaciones a las que me redirigió (Además, una de las publicaciones vinculadas a una página de MSDN sobre cómo hacer juegos 3D con XNA, lo que me interesó ya que la página del motor del juego XNA originalmente se parecía fue estrictamente para juegos en 2D). Definitivamente creo que este es un buen punto de partida. Gracias. Voy a descargar XNA esta noche e irme a la cama, luego espero que mañana pueda intentar hacer Pong o algo así.
stevendesu

@ Steven: ¡No hay problema! ¡Publiqué esta respuesta para ayudar a un desarrollador entusiasta como yo que pidió orientación! ¡Realmente espero que disfrutes haciéndolo! Mi primer y aún difícil desafío es desarrollar un juego simple tipo Arkanoid donde tenga que trabajar para detectar colisiones mientras escribo mis clases una para cada nave espacial, la bola de energía y el ladrillo. Luego, mi Game1clase se usa como un controlador de juego, que en mi opinión es la clase que controlará y les dirá a las otras clases qué hacer, etc. Explicaré un poco este aspecto en el enlace # 4 y # 5.
Will Marcouiller

Quizás haga otra pregunta muy pronto (mañana) xx Downloaded XNA Game Studio 4.0, lo instalé ... Y no había instrucciones obvias sobre qué hacer a continuación. Todo el sitio web oficial de XNA solo dice "crea juegos para Windows Phone 7" por todas partes, nada sobre hacer juegos para Windows. Lo resolveré por la mañana o preguntaré aquí si no puedo. Hora de
acostarse

1
Cree un nuevo proyecto con Visual Studio, luego, elija XNA en algún lugar donde pueda elegir el tipo de proyecto. ¡Entonces, comienza a hacer juegos para Windows! Su plantilla de proyecto de juego XNA (nuevo proyecto) se compilará y ejecutará en Windows de forma nativa. XNA es la biblioteca de Microsoft para el desarrollo de juegos, por lo que puede desarrollar juegos para Windows y XBox.
Will Marcouiller

1
Por el bien del futuro, vale la pena señalar que XNA está esencialmente en desuso, pero Monogame sigue vivo. En su mayor parte, el mismo código funcionará.
Magus

8

Puedes probar Unity 3D , porque

  • Se puede programar en JavaScript, C # o Boo
  • tiene un buen tutorial por aqui
  • su curva de aprendizaje no es tan empinada
  • hay Unity Answers , donde encontrarás aún más recursos.

(Descargo de responsabilidad: de ninguna manera estoy relacionado con los creadores de Unity, solo lo uso yo mismo y me pareció una gran herramienta para aprender lo básico).

Pero sí, te preparas para una tarea bastante. Ahora estoy en mi sexto semestre estudiando diseño de juegos, y todavía no siento que me rasqué más que la superficie. No es de extrañar que la industria tenga especialistas para casi todas las facetas del proceso de creación de un juego.

Editar: Ha habido un comentario acerca de que Unity es visto como un motor de juego no "apropiado", que podría ser malinterpretado cuando digo eso, lo que genera los comentarios a continuación. No era mi intención sugerir que Unity no podía usarse para hacer un diseño de juego adecuado, por el contrario. Lo uso yo mismo y me gusta. ;)


3
¿Qué tiene de malo?
lathomas64

Tengo curiosidad también.
Jesse Dorsey

¿Tal vez el hecho de que (como Flash o Java) requiere un programa contenedor para ejecutarse, por lo que lo considera "incorrecto" en el sentido de que no puede compilarse y distribuirse a una audiencia masiva sin problemas? De cualquier manera, estoy investigando XNA en este momento. Puedo ver Unity3D si XNA resulta demasiado difícil.
stevendesu

Bueno, escuché a la gente decir que para un diseño de juego "adecuado", Unity no debe ser tomado en serio. Como dije antes, lo estoy usando yo mismo y estoy bastante contento con él. En algunos casos, Unity simplemente hace las cosas sospechosamente fáciles, supongo ...;) Simplemente estaba ocultándome, porque no sabía cómo reaccionaría la gente aquí al mencionar a Unity. Tal vez eso causó el voto negativo?
xeophin

@steven_desu: En realidad, solo necesitas un programa contenedor para el jugador web. Los juegos compilados para ejecutarse en Windows o Mac son completamente autónomos.
xeophin

2

Bueno, si tuvo problemas con irrlicht, también debería probar Ogre3D; no es más fácil, pero puede funcionar mejor si le dedica algo de tiempo. Lo importante que debe comprender es qué es un oyente de marcos, cómo obtener el tiempo desde que se mostró el último marco, y eso es prácticamente lo único que debe comprender si desea hacer esta aplicación de la que está hablando.

También he tenido algunas dificultades con irrlicht, los tutoriales no están muy actualizados, ¡pero deberías haber probado las muestras!

También corrí mucho en círculos al principio, jugando con panda3d y otras cosas como pygame, etc. Intenta concentrarte en alguna idea de juego e implementar una cosa a la vez.

Y trate de recordar algunas matemáticas matemáticas, ¡tendrá algún uso en 3D!


2

Recientemente comencé la misma búsqueda que tú. Me encontré con un motor Java puro llamado jMonkeyEngine que me ha llevado a través de un fantástico conjunto de tutoriales. No sé si realmente explica el diseño del juego en gran medida, pero te ayuda a comenzar en el frente gráfico.

Sugiere enlaces a herramientas que podría usar para modelar y tiene ejemplos bien descritos que se pueden copiar y pegar para guiarlo a través de la colocación de un cuadro en la pantalla para configurar el motor de física.

Definitivamente vale la pena leerlo: tuve una buena idea de lo que estaba haciendo después de solo varias horas.


Vale la pena leer los tutoriales incluso si no está utilizando el motor. También hay buenos tutoriales sobre algunas matemáticas 3D.
DMan

2

Realmente deberías probar Flixel http://flixel.org/ Hice mi primer juego "demo" usando flixel. Buena comunidad, buenos tutoriales.

No es 3D, pero tiene muchas características agradables que facilitan sus primeros pasos en el entorno de programación de juegos.

De modo que: Muestre miles de objetos en movimiento
Colisiones básicas entre objetos
Agrupe objetos para simplificar Genere
y emita fácilmente partículas
Cree niveles de juego usando mapas de mosaicos
Pantalla de texto, guarde juegos, se desplace
Entrada del mouse y del teclado
Matemáticas y herramientas de color

Y es gratis para uso comercial, lo cual es increíble.


1

Si no ha trabajado con gráficos en absoluto, antes de comenzar a aprender open gl o direct x. Programé mi primer juego de esa manera. Los motores de nuestra compañía son internos y la mayoría de los sistemas son compatibles con open gl de alguna forma. Aprendí mientras estaba en el trabajo mirando el código escrito antes de comenzar a trabajar. Es posible que desee echar un vistazo a algunos proyectos de código abierto para ver cómo se configura la estructura de un juego y comenzar a modificarlos hasta que se sienta cómodo para comenzar su propio proyecto. También sugiero "Codificación completa del juego" como una gran referencia a todos los pequeños fragmentos de programación de juegos que no se dan cuenta, como la estructura de archivos adecuada y la gestión de recursos.


1

Prueba Source Engine . Es fácil desarrollar juegos en él y puede obtener una plataforma de distribución (Steam) y vender su juego de forma gratuita si firma un acuerdo con Valve Corportaion.


1

Recomiendo comenzar con juegos flash, ya que realmente tienes todo lo que necesitas en un solo paquete para hacer juegos simples. Hay toneladas de blogs con tutoriales, por ejemplo , Emanuele Feronato . Incluso tiene un libro con 10 juegos completos más o menos.

He estado usando FlashDevelop, que es suficiente para el desarrollo.

"Creación de un juego flash de asteroides" de Chris Moeller es un excelente ejemplo, con un enfoque completo paso a paso que utiliza el desarrollo de flash.

Para los juegos basados ​​en Tile, hay un excelente tutorial en Ironcoding .

Armado con todo eso, mi recomendación es encontrar un lugar donde haya un desafío de videojuego, con una comunidad de personas construyendo juegos. Crea un videojuego al mes, enfocándote en algo pequeño que puedas terminar, pulir y presentar antes de continuar con tu próximo proyecto. Estoy participando en un desafío mensual de videojuegos aquí .

Manténgalo pequeño para que pueda terminarlo y liberarlo.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.