2009-05-14 23 views

Respuesta

5
  • Compuesto para hacer todo por cada paso de actualización (por ejemplo, representación) (Y de hecho común entre todas las bibliotecas de IU).
  • peso mosca para la elaboración de muchos de los mismos tipo de elemento en la pantalla (árboles/arbustos/balas)
  • El observador de una gran cantidad de bibliotecas de interfaz de usuario (de nuevo, no específica de cada juego)
  • Estado para la transición entre el juego/menú/consola/pausa/etc. estados
  • Fábrica abstracta en algunos juegos tipo beat-em-up para crear mobs/NPC (los juegos con cantidades ridículas de personajes AI a la vez - es decir, Left 4 Dead).
  • Estrategia para el intercambio de heurística en algoritmos de búsqueda de rutas como A *
  • editar> Comando para juegos como MMO que tienen una barra de acciones con botones intercambiables en los que puedes hacer clic para lanzar hechizos y otras cosas.

Eso es todo lo que se me ocurre ver en este momento.

0

Las variaciones en el patrón de estado son útiles para modelar el estado del juego. El Enginuity series of articles es una buena descripción de algunos de los aspectos de bajo nivel del diseño de los motores de juegos. Está incompleto, pero bueno. Los diseñadores del marco Guff outlined the use of state hierarchies para manejar el estado del juego. El concepto de jerarquía es bueno, aunque su visión de un estado de juego es limitada (abarca todo el bucle del juego en lugar de estado). También tienen un paper on real-time game loops.

Al implementar secuencias de comandos, es extremadamente útil y potente para utilizar un lenguaje de scripts que admite algún tipo de multiprocesamiento cooperativo. Stackless Python ofrece esto. Desde Mono 2.6, usted can do this in C# using continuations, pero solo en la plataforma Mono (no .NET), ya que requirió cambios en la máquina virtual.

Existen soluciones comunes para gráficos en 2D y 3D, animación, entrada, etc. Muchas de ellas son manejadas por DirectX, SDL o marcos similares.

1

No creo que haya ningún patrón de diseño de software particularmente específico del juego. Los juegos usan los mismos idiomas, bibliotecas, plataformas que todos los demás y enfrentan exactamente los mismos problemas a nivel de software.

Existen ciertos métodos o enfoques que parecen ser populares, pero que no están formalizados a nivel de código en la forma en que los patrones de diseño clásico son. Un ejemplo son los actores basados ​​en componentes, que a menudo ni siquiera se agregan en el mismo objeto, sino que comparten una ID y se comunican a través de un mecanismo de señales/ranuras. Otro sería la incrustación de un segundo idioma con fines de scripting, como Lua, Python o Javascript.

+0

Realmente estoy buscando algunos patrones arquitectónicos generales, como la forma de organizar todos los diferentes componentes del juego en algo que sea comprensible y mantenible desde un alto nivel. Algo así como el desarrollo de juegos equivalente a una arquitectura de tipo MVC o una arquitectura en capas. –

+2

¡Ellos no existen, me temo! Este tipo de preguntas surgen una y otra vez en GameDev.neto, pero en realidad no hay un enfoque estándar ni nada parecido a uno. Todo tiene un bucle input-update-render/output, y a menudo hay un sistema de estado de juego similar al descrito por Matt Olenik, pero más allá de eso, es una disposición ad-hoc de varios sistemas y patrones de pequeña escala. Podría dar algunos consejos, pero mentiría si dijera que mis sugerencias son "comunes". – Kylotan

1

Encontré this PDF detallando posibles arquitecturas de juegos. Sin embargo, podría ser "desagradable para los lectores que estén más inclinados a pensar en términos de diseño orientado a objetos".

Cuestiones relacionadas