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?
fuente
Respuestas:
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:
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.
fuente
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.
fuente
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.
fuente