¿Qué debe hacer un motor de juego? [cerrado]

20

Me gustaría mejorar mis habilidades / probar algo nuevo y me gustaría comenzar con 3D. He leído Iniciando programación en 3D con C ++ pero tengo dudas sobre los motores:

  • ¿Qué debe hacer el motor? Sé que es una capa de abstracción por encima de la API 3D (es decir, OpenGL o DirectX), pero ¿qué debería hacer exactamente?
Maciej Piechotka
fuente
Para las recomendaciones de libros, esta pregunta debería ayudarte: gamedev.stackexchange.com/questions/455/…
Tetrad

Respuestas:

27

Tienes razón al decir que un motor de juego se está alejando de las API de gráficos de bajo nivel, pero un motor de juego completo hace mucho más.

Los motores de juego están destinados a facilitar todo lo relacionado con el desarrollo del juego. Cada uno tiene sus propias características únicas, pero generalmente proporcionan capas de abstracción fáciles para gráficos, audio, entrada, gestión de escenas, detección de colisiones, matemáticas y utilidades generales útiles. Algunos proporcionan envoltorios y complementos para API de física y algunos incluso tienen algún soporte de IA (principalmente limitado a FSM, pathfinding y, la tendencia actual, árboles de comportamiento). Muchos de ellos apoyan y se enorgullecen de la funcionalidad multiplataforma.

El propósito de un motor de juego es hacer que sea más fácil para el usuario crear un juego, sin tener que lidiar con las pequeñas molestias en la creación de un juego desde cero o tener que instalar un montón de bibliotecas y escribir sus propios envoltorios para que se adapten a su juego.

Hay muchos motores, pero ten cuidado con la diferencia entre un motor de gráficos y un motor de juegos (por ejemplo, Unity sería un motor de juegos, mientras que Ogre sería un motor de gráficos).

Tengo dos libros sobre el tema, pero proporcionan una buena visión general sobre el tema:

  • Arquitectura de motor de juego 3D por David H Eberly

  • Codificación del juego completada por Mike McShaffry

No son demasiado profundos, ya que necesitaría varios libros sobre cada componente para obtener la profundidad de conocimiento que necesitaría para crear un motor de juego completo y profesional, pero creo que explican muy bien los conceptos.

Si estás comenzando el desarrollo del juego, no hagas un motor. Te remito a la siguiente página: http://geometrian.com/programming/tutorials/write-games-not-engines/

Los motores son complicados para acertar. Si escribes una gran cantidad de juegos, verás que tienes un montón de código reutilizable después de un tiempo que puedes usar para hacer tu propio motor personal para ayudarte. Y tener muchos juegos (completos) en tu haber es mucho más impresionante que un solo motor.

Espero que ayude.

Rayo

Ray Dey
fuente
1
+1 para el artículo del blog. Dice exactamente lo que diría al respecto.
Tetrad
55
Sí, nadie debería hacer un motor de juego antes de hacer un juego. ¿Cómo puede saber que su código es reutilizable si aún no sabe que es utilizable?
Kylotan
@Kylotan Me doy cuenta de que es muy tarde, pero me gustaría agradecerle por ese comentario, ya que lo he estado citando constantemente a otros :)
Ray Dey
@RayDey el enlace a "escribir juegos, no motores" está muerto, para tu información. Tenía ganas de leerlo :(
DrewJordan
5

Agregando a la respuesta de Ray: los motores (juegos, gráficos, audio, etc.) no solo facilitan la interacción con las API subyacentes, sino que también implementan funcionalidades específicas del juego, por ejemplo: modelo de sombreado, sonido 3D.

Específicamente para los motores de juego: gestionan los objetos del juego, los recursos (memoria, hilos, todos los demás motores) y la comunicación entre módulos. Le dan al juego estructura, escalabilidad y flexibilidad, lo cual es esencial para cualquier proyecto no trivial.

Ramon Zarazua B.
fuente
+1 para el punto de estructura, escalabilidad y flexibilidad y olvidé agregar administración de memoria
Ray Dey
1

He escrito un tutorial detallado sobre qué es un motor de juego, específicamente en el contexto de las plataformas iPhone y Android. He incluido descripciones detalladas con ejemplos de las diversas partes de un motor de juego: interfaz de usuario, gráficos, sonido, física, efectos de partículas. El tutorial está disponible aquí: ¿Qué es un motor de juego? . Espero que sea útil.

Ben Smiley
fuente
0

Cada motor de juego tiene una idea ligeramente diferente de lo que debe hacer un motor de juego.

Pero debido a que ya hay demasiados motores de juego, realmente recomiendo que hagas un JUEGO, no un MOTOR.

MarkR
fuente