simbologia sencillos objetos ejemplos diseƱo diagrama clases class project-planning class-diagram

class - sencillos - Ejemplos de diagramas de clase para RPG(juego de rol)



diagrama de objetos uml (7)

¡Conozco a Emmanuel Deloget de GameDev.net pero no estoy seguro de que opte por utilizar la jerarquía que tiene allí! Demasiada herencia, no suficiente flexibilidad.

Si estuviera escribiendo un juego de rol basado en texto (como lo he hecho en el pasado), se vería un poco así (aunque no tengo tiempo de dibujar un diagrama para él, por desgracia):

  • Criaturas, habitaciones y elementos derivados de WorldEntity, con objetos de WorldEntity organizados en una estructura compuesta, de modo que los elementos pueden vivir dentro de otros elementos, transportados por criaturas, que existen dentro de las habitaciones. La implementación del patrón de visitante para WorldEntities podría funcionar bien.
  • Las clases CreatureType y ItemType que contienen los datos de "clase" para las instancias individuales de Creature y Item, que se refieren al objeto "tipo" correspondiente. (p. ej., los puntos de golpe de base y las estadísticas en el primero, los puntos de golpe actuales y los efectos transitorios en el segundo). Podría implementarlas como listas prototípicas de propiedades que se copian en las instancias de Creature o Item cuando se crean. Puede implementar la herencia de propiedades a través de una propiedad ''primaria'' para que una instancia de Creature goblin específica pueda relacionarse con el tipo de creación ''goblin guerrero'', que contiene una referencia principal al tipo de creación ''goblin genérico''. Y así.
  • Salidas que son propiedad de su Sala, y son de una manera, y que detallan la dirección del viaje, diversas condiciones de paso, etc.
  • Áreas, que contienen grupos de salas conectadas por alguna organización lógica.
  • Una clase de Spawn para dictar dónde se crean las instancias de Creature y Item (por ejemplo, qué sala, o en qué coordenadas), cuándo se crean y con qué frecuencia y desde qué CreatureTypes y ItemTypes. Puedes tener algo de lógica aquí para aleatorizar un poco las cosas.
  • Hechizos, habilidades, habilidades, etc., todos derivados de una clase de acción base o interfaz que especifica los requisitos previos (por ejemplo, la posición actual, los puntos de maná, algún grado de aprendizaje de una habilidad, etc.). Los comandos y acciones normales también pueden ir aquí, ya que a menudo también tienen algún tipo de requisitos (por ejemplo, un comando ''dormir'' requiere que aún no estés durmiendo).
  • Una clase FutureEvent que es esencialmente una devolución de llamada que usted empuja en una cola de prioridad para ejecutar en el futuro. Puede usarlos para programar rondas de combate, deletrear tiempos de enfriamiento, ciclos de noche / día, lo que quiera.
  • Un hash / mapa / diccionario de pares nombre-> valor para estadísticas de jugador y artículo. No es seguro para el tipo, pero apreciará la flexibilidad más adelante. En mi experiencia, la creación de estadísticas de variables miembro es viable pero inflexible, y tener clases especializadas de ''atributos'' se convierte en una pesadilla complicada al depurar.
  • Un tipo de modificador que contiene un nombre de estadística y un valor de modificador (por ejemplo, +10, + 15%). Estos se agregan a tus criaturas a medida que se usan (por ejemplo, mediante un efecto de hechizo o empuñando un arma encantada) y se eliminan más tarde con un FutureEvent cronometrado o algún otro evento, como un comando que se está ejecutando.
  • Clases específicas del juego como PlayerClass o PlayerRace, cada una de las cuales describe la clase de un jugador (por ejemplo, guerrero, mago, ladrón) o raza (humano, elfo, enano) y establece valores y límites de estadísticas iniciales, listas de disponibilidad de habilidades, poderes especiales, etc.
  • Clases básicas de interfaz de jugador que variarán dependiendo de tu tipo de juego real. Es posible que tenga clases de representación para un juego gráfico, o en un MUD puede tener una clase de Conexión que refleje la conexión TCP con el cliente del jugador. Trate de mantener toda la lógica del juego fuera de estos.
  • Una interfaz de scripting. La mayoría de tus comandos, hechizos y AI de criatura se pueden realizar más rápidamente con una interfaz de scripts decente y también reduce los tiempos de compilación. También permite algunas excelentes funciones de depuración y diagnóstico en el juego.

Esa sería la estructura básica de alto nivel que usaría.

¿Alguien sabe dónde puedo encontrar ejemplos de diagramas de clase para el desarrollo de juegos RP? Algo similar a here sería bastante útil. No estoy buscando cosas que pueda copiar de forma servil, sino solo ejemplos diferentes que diagraman varias soluciones a los problemas que estoy descubriendo a medida que intento y escribo mis propias clases.



Es posible que desee considerar un sistema de entidad componente en lugar de una jerarquía de herencia tradicional; tienden a ser más flexibles para ciertos tipos de cambio, hacen que el desarrollo de herramientas (por ejemplo, el editor mundial) sea mucho más fácil, y presentan oportunidades para la paralelización que de otro modo no podrían ser obvias o fáciles.

Muchos motores de juegos modernos se están alejando del "objeto de clase monolítico" (o entidad de clase, lo que sea) y hacia un enfoque de "bolsa de componentes".

Hay numerosos libros y artículos alrededor. En general:

Específicamente (algunos notables, google "componente" y "entidad" en varias combinaciones para más):

Cada uno de estos artículos enlaza a algunos más.

Prueba el kool-aid, tal vez te guste. =)



Sé audaz, tu juego no debería ser un clon de tonterías. Sus actores deben poder cambiar de lado, tomar su propia iniciativa, reclutar a otros actores, etc. De lo contrario, ¿cuál es el punto?

+-----------------------------+ V | [Actor] ------- [Allegiance] ----+ - risk comfort - weight - temerity



<tongue_in_cheek_mode_because_it_is_friday>

Solo para empezar:

---------------- -------------- | Creature | | Item | |--------------| |------------| | Name | | Name | | Hp | | Value | | Abilities |--------------------| Weight | |--------------| -------------- | Attack | ---------------- ^ | ---------------------- | | ---------------- ---------------- | Hero | | Monster | |--------------| |--------------| | Level | | | |--------------| |--------------| | KillMonster | | AttackAndDie | | GrabTreasure | | DropTreasure | ---------------- ---------------- </tongue_in_cheek_mode_because_it_is_friday>