He estado leyendo muchos artículos que cubren el diseño basado en datos para juegos. Parece que se reduce a:
- Sin codificación dura
- No hay código específico del juego en el motor
- Secuencias de comandos para IA, escenas, etc.
- Código de generalización para reutilización
- Diseño de componentes
- Modularidad
- Bajo acoplamiento
- Editores (para datos, mapas, guiones)
- Recuperación de datos externos.
- Constantes mantenidas en archivos de texto (
.ini
o de otra manera) - Exponer datos a través de editores para scripting y manipulación por diseñadores
Ahora, mi pregunta es, ¿es correcto este entendimiento?
terminology
OmniOwl
fuente
fuente
Respuestas:
Yo diría que esto no es correcto. Creo que la idea más importante en el diseño basado en datos es separar sus datos de lo que modifica (o actualiza) los datos .
Entonces, desde una jerarquía profunda OO estándar como esta:
a un estado y sistema separados
Uno de los paradigmas DDD más influyentes en este momento son los sistemas de entidades. Algunos buenos recursos para buscar son:
http://gamedevrubberduck.wordpress.com/2012/12/26/a-hybrid-entity-system-component-architecture/
http://entity-systems.wikidot.com/
Por supuesto, como con todos los paradigmas / ideas, no existe una definición exacta y no todos entienden la misma idea cuando hablan DDD, pero esto es lo que creo que es lo más importante.
fuente
Creo que estás complicando demasiado la definición. Ciertamente, muchos de los principios contenidos en su lista de puntos con viñetas son buenos desde una perspectiva de ingeniería de software, pero no todos son necesariamente parte de la definición de "basado en datos". Muchos de ellos tienen cierta superposición, o se implementan mejor utilizando un enfoque basado en datos, pero no constituyen el acto de impulsar algo.
La definición real de desarrollo de software basado en datos es generalmente bastante simple: un programa realiza acciones principalmente basadas en información externa (datos de nivel, datos de script, etc.) en lugar de tener una serie de pasos predefinidos y fijos dentro del código en sí mismo que determinan el flujo de control.
fuente