¿Cuáles son algunos de los patrones de diseño más comunes utilizados al desarrollar juegos en 3D? ¿Hay algún patrón arquitectónico de alto nivel que se use comúnmente? ¿Qué pasa con los patrones generales de software dentro de la arquitectura?¿Cuáles son algunos de los patrones comunes de juego en 3D?
Respuesta
- 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.
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.
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.
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".
- 1. ¿Cuáles son los patrones de diseño comunes en Cocoa Touch?
- 2. ¿Cuáles son algunos malentendidos comunes sobre TDD?
- 3. ¿Cuáles son los usos comunes de UDP?
- 4. ¿Cuáles son algunos de los esquemas de ramificación/compromiso de vida más comunes de Git?
- 5. ¿Cuáles son algunos de los mejores patrones y prácticas para el desarrollo de PHP?
- 6. ¿Cuáles son los patrones de diseño de servicios de Windows más comunes?
- 7. ¿Cuáles son los patrones de diseño más comunes para cualquier aplicación de formularios de Windows?
- 8. ¿Cuáles son los patrones comunes de DDD (Diseño controlado por el dominio)?
- 9. ¿Cuáles son algunos usos de los cierres para OOP?
- 10. ¿Cuáles son los errores comunes de configuración de Magento?
- 11. ¿Cuáles son algunos ejemplos de la vida real de patrones de diseño utilizados en el software
- 12. ¿Cuáles son algunos EWD imperdibles?
- 13. ¿Cuáles son algunos riesgos/errores comunes de Java para el programador de C++?
- 14. ¿Cuáles son algunos usos de los metadatos de Clojure?
- 15. ¿Cuáles son algunos de los usos inteligentes de LINQ?
- 16. ¿Cuáles son algunos buenos tutoriales de Wireshark?
- 17. ¿Cuáles son algunos de los mejores recursos para aprender MSBuild?
- 18. ¿Cuáles son los "errores" al desarrollar un juego de iPhone?
- 19. ¿Cuáles son algunos de los complementos recomendados para Trac?
- 20. ¿Cuáles son algunos usos interesantes para los agentes de Java?
- 21. ¿Cuáles son algunos ejemplos de implementaciones de patrones de diseño usando JavaScript?
- 22. ¿Cuáles son algunos patrones de diseño para hacer control de versiones de un objeto?
- 23. ¿Cuáles son algunos ejemplos de interfaces Go?
- 24. ¿Cuáles son algunos guiones de shell interesantes?
- 25. ¿Cuáles son algunos buenos patrones de interfaz de JavaScript/AJAX para sitios web?
- 26. ¿Cuáles son las bibliotecas comunes para C?
- 27. ¿Cuáles son algunos ejemplos en los que los árboles de expresiones son útiles?
- 28. ¿Cuáles son tus optimizaciones sql más comunes?
- 29. ¿Cuáles son los errores más comunes cometidos en el desarrollo de WPF?
- 30. ¿Cuáles son algunos buenos tutoriales de juegos para iPhone 3D/2D OpenGL ES?
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. –
¡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