¿Hacer un juego como tutorial? [cerrado]

19

Estoy a cargo de un club de desarrollo de juegos en mi escuela y me gustaría trabajar en un proyecto este verano que podría usar como tutorial el próximo semestre. Nunca he hecho algo así, así que me preguntaba si alguien tenía alguna guía o idea.

Lo que quiero hacer básicamente es hacer un juego muy simple. Algo así como un juego de disparos de arriba hacia abajo donde los enemigos se apresuran para que los mates y recojas un botín. Sin embargo, quiero que todo se modifique muy fácilmente. Las personas en el club tienen poca experiencia en el desarrollo de juegos, por lo que si pudiera configurar mi juego de tal manera que las personas pudieran modificar y agregar funcionalidad con facilidad, sería genial para ellos.

Cosas como tener una clase enemiga donde el comportamiento es fácil de jugar, o hacer que las armas disparen de manera diferente / agregar nuevas armas y un nuevo botín. Incluso agregando nuevos elementos al juego. ¿Cuál sería la mejor manera de construir el juego para permitir este tipo de maleabilidad?

Benixo
fuente
1
Echa un vistazo a esta respuesta en Stack Overflow.
Andrew Russell

Respuestas:

16

Una forma tradicional de lograr este objetivo en el desarrollo de juegos es utilizar una arquitectura basada en datos para los sistemas de juego.

En esencia, esto significa que el código no implementa un tipo particular de arma (una pistola) con valores explícitamente definidos para su alcance / daño / penetración, sino que puebla los conceptos genéricos de un arma a distancia (rango / daño / penetración ...) de una fuente de datos externa (al código). Esta fuente externa puede variar desde archivos analizables (quizás XML) leídos desde el disco, hasta archivos binarios o elementos de base de datos generados a través de herramientas internas o externas al motor del juego.

Al definir algo como un enemigo, el sistema de inteligencia artificial podría diseñarse para admitir cierto número de comportamientos genéricos (agresivo, defensivo, de apoyo, cobarde) que luego son modificados por elementos basados ​​en datos.

My New Enemy, comienza con el comportamiento agresivo de IA base con valores basados ​​en datos para: - ignorar jugadores> mi nivel + X - perseguir jugadores hasta X unidades más allá del punto de generación - huir cuando la salud <X - prioridades de habilidades clasificadas - prioridades de habilidades cuerpo a cuerpo (para cuando los jugadores se acercan demasiado)

Un esquema impulsado por datos más complicado podría permitir la definición de puntos de datos específicos (eventos) en los que una transición de estado AI (máquina de estado finito) a otro estado (o incluso la posibilidad de hacer la transición a uno de los otros N estados) permitiendo a sus usuarios definir un jerarquía complicada de comportamientos.

Por supuesto, todo esto es más trabajo que solo codificar un comportamiento explícitamente, pero es un desafío divertido permitir a los usuarios producir contenido sin modificar la fuente.

Hay puntos de bonificación para lograr:

  • si puede actualizar dinámicamente los datos y hacer que los cambios se reflejen en el motor del juego sin reiniciar la aplicación
  • si crea interfaces de usuario fáciles de usar sobre los datos, lo que permite a los usuarios utilizar una interfaz para interactuar con los datos en lugar de editar directamente archivos de texto (xml o lo que sea)

Para un juego tutorial dirigido a una multitud más técnica, la mayor parte del trabajo se realiza en clases / objetos diseñados que exponen interfaces limpias para que los usuarios las extiendan, lo que a su vez también puede estar basado en datos.

Christopher Larsen
fuente
¡Buena respuesta! +1
AttackingHobo
Gracias por tu contribución :)! ¿Conoces algún sitio que me muestre cómo implementar este tipo de código? Nunca he hecho juegos con fuentes externas como esa. Aunque definitivamente quiero que codifiquen en XNA en el club, entonces probablemente haré algo más en la línea de clases y objetos que podrían heredar fácilmente en sus propias clases. Pero voy a mirar definitivamente en esto,
Benixo
Una excelente manera de hacer esto requiere su propio analizador de configuración, para permitir la carga de estructuras controladas por datos muy simples. Esencialmente, la clave de cualquier tutorial es la enseñanza en fragmentos, por lo que la abstracción es absolutamente clave. Un buen ejercicio podría ser diseñar una GUI simple que permita al usuario definir y crear nuevos tipos de armas.
deceleratedcaviar
Los aspectos más comunes basados ​​en datos en los juegos son los niveles. Incluso si todo lo demás está codificado, los diseños de nivel (es decir, dónde se coloca el escenario, dónde se colocan los enemigos, etc.) casi siempre se definen en los archivos de datos que carga el juego. Su segundo punto extra describe una herramienta de edición de nivel.
jhocking
El proceso de escribir / leer objetos en / desde el disco se conoce como "des / serialización". Puede encontrar algunos tutoriales útiles bajo ese término.
Exilyth
1

Si está buscando algunas ideas sobre cómo comenzar su proyecto y desarrollarlo paso a paso para que se pueda convertir en un tutorial, eche un vistazo a XNA Game Programming Adventures . El autor tiene varios tutoriales configurados, con una explicación y un código fuente que se incrementa paso a paso.

Bart
fuente
0

Sugeriría mirar el tutorial de Java Game Development en www.thenewboston.com

Puede que no sea exactamente lo que estás buscando en términos de tipos con armas y todo ese jazz, pero ofrece un buen desglose paso a paso de una serie de factores clave en el desarrollo del juego. El presentador "Bucky" también tiene un estilo de enseñanza relajado y divertido. Disfrutar.

Jonny
fuente