¿Cómo diseñan los diseñadores de juegos RTS las unidades individuales?

Comience considerando que una unidad militar tiene una capacidad ofensiva muy básica, como un emplazamiento de arma fijo: puede proyectar una cierta cantidad de fuerza a un cierto rango máximo, con una cierta precisión, a una determinada velocidad de disparo. También tiene un nivel de salud, que determina cuánto daño puede sufrir antes de que quede fuera de combate. Eso ya te da cinco atributos: poder de disparo , alcance , precisión , cadencia de tiro y salud . Ahora debe comenzar a agregar otras consideraciones. ¿Son explosivos los disparos? Si es así, ¿cuál es su radio de explosión ? ¿La cadencia de tiro consta de dos elementos diferentes, carga y puntería ? (Algunas armas grandes atraviesan solo lentamente). ¿La unidad está blindada ? ¿Cómo funciona la armadura? ¿Absorbe todo el daño hasta que desaparece (lo que significa que en realidad es solo más salud), o comienza a permitir que el daño pase para reducir los puntos de salud? ¿Tiene solo un número para la salud de toda la unidad, o se pueden dejar fuera de acción diferentes partes de la unidad de forma independiente, como la ametralladora de un tanque cayendo, pero su arma principal permanece en servicio? ¿La unidad tiene una cantidad limitada o ilimitada de munición ? Y luego está la cuestión de si una unidad tiene más de un arma, muchas unidades mecanizadas, como barcos, tanques y aviones.

Luego está lo que puede apuntar la unidad, unidades aéreas, unidades terrestres, unidades marítimas o alguna combinación. Los aviones de combate, por ejemplo, solo pueden disparar a otros aviones. Los aviones F / A (lucha / ataque) pueden disparar tanto a aviones como a objetivos terrestres.

Todo esto es antes de llegar al movimiento. ¿Qué tan rápido puede moverse la unidad ( velocidad ) y qué tan rápido puede girar y con qué radio de giro? ¿Cuál es su tasa de aceleración ? (Muchas unidades RTS solo tienen una velocidad y no aceleran; simplemente saltan instantáneamente a la velocidad máxima). ¿Sobre qué terreno puede viajar: tierra, mar, aire o alguna combinación? ¿Qué terreno no puede atravesar o atravesar solo lentamente (montañas, bosques, pantanos)?

Luego hay capacidades especiales. Muchos juegos tienen unidades que pueden ocultar otras unidades o darles producción adicional; hacerse invisibles ellos mismos; servir como minas que se autodestruyen al contacto; convierta dos unidades pequeñas en una superior; intercambia una capacidad, como el movimiento, por otra, como el aumento de la potencia de disparo. El tanque de asedio terrano en Starcraft hace esto.

De todos modos, calcula todas las cosas que desea tener en todas sus unidades, incluidas las actualizaciones, y diseña un costo y un tiempo de producción para cada una. Esto solo comienza a arañar la superficie, pero no tengo tiempo para más. Me temo que esto sonará como spam, pero es posible que desee comprar mi libro electrónico, Fundamentos del diseño de juegos de estrategia.

Agregaría a la respuesta de Ernest que necesita diseñar las categorías generales de vehículos antes de diseñar vehículos individuales.

Como sugiere Ernest, realmente deberías pensar en los “vehículos” del juego como unidades militares abstractas que proyectan poder. Cuando entiendes eso y luego miras la historia, queda claro que las unidades militares en general cayeron en ciertas clases:

  • Titulares de territorio lento
  • Tomadores de territorio y exploradores rápidos y algo frágiles
  • Lanzadores de misiles

O en tiempos antiguos, infantería, caballería y artillería. Puede (y probablemente debería) expandir estas clases principales. En tiempos más modernos, probablemente dividirías a la caballería en tanques (más lentos, menos frágiles, más poderosos) y exploradores (más rápidos, más frágiles, menos poderosos). Y así.

El núcleo de su diseño debe abarcar sus clases y cómo interactúan entre sí de manera equilibrada. El enfoque clásico consiste en tres clases que tienen una relación piedra-papel-tijera entre sí. En el ejemplo anterior, la caballería vence a la infantería que vence a los lanzadores de misiles que vencen a la caballería.

Una vez que tenga sus clases, puede diseñar unidades individuales para cada clase que se ajusten a los parámetros generales al tiempo que agrega variedad y capacidades únicas. Ernest da un gran plan para esto.

Pero sí creo que primero quieres hacer ese diseño de clasificación de nivel superior o tendrás dificultades para llegar a un conjunto equilibrado de vehículos para tu juego.

la opción más fácil y probablemente la mejor cuando se considera mantener las cosas ligeras y rápidas es configurar una clase que declare unidades y una clase para cada unidad
declare un conjunto de enteros y luego, en un espacio separado, asigne sus valores por unidad, que se asegura de coordinar con la clase de unidad en sí, estos valores suelen ser algo como salud, costo / valor, salida de daño, tasa de ataque, velocidad de movimiento, etc.

sin embargo, si desea que se creen, puede inicializar desde esa clase con la función de un botón o entrada clave y definir la salida de ubicación desde allí también

en algún lugar de la clase de unidad necesitará definir dónde y cómo obtener y usar texturas para las unidades, luego le indicará en la clase de unidad la textura exacta para agarrar

querrás asegurarte de que en algún lugar definas su capacidad de selección y movimiento, movimiento que recomiendo como su propia clase, no olvides asegurarte de que estén incluidos con actualizaciones de pantalla y repintado para que puedas ver su movimiento

una vez que haya logrado definir entradas para que conozcan comandos básicos como movimiento y ataque, entonces puede trabajar en habilidades o actualizaciones u otros valores

el diseño es la parte fácil, se trata principalmente del equilibrio numérico, el tamaño de la textura y el atractivo visual de la representación de la unidad (la textura en sí)

Aquí hay un ejemplo en Java para la clase enemiga misma, puedes ver dónde otros elementos de una unidad se separarían en sus propias clases

paquete X;

import java.awt.Image;

import javax.swing.ImageIcon;

Enemigo de clase pública {

Public static final Enemy [] enemyList = new Enemy [200];

Public static final Enemy UnitX = new EnemyUnitX (0, 5, 2, 10, 3, 4) .getTextureFile (“UnitX.png”);

public String textureFile = “”;
Textura de imagen pública = nulo;

id int público;
precio int público;
doble velocidad pública;
ataque doble público Velocidad;
daño int público;
salud pública internacional;

Enemigo público (int id, int price, int damage, int health, double speed, double attackSpeed) {
if (enemyList [id]! = null) {
System.out.println (“múltiples enemigos con la misma identificación”);
}más{
enemyList [id] = this;

this.id = id;
this.price = precio;
this.damage = daños;
this.health = salud;
this.speed = velocidad;
this.attackSpeed ​​= attackSpeed;
}
}

public Enemy getTextureFile (String str) {
this.textureFile = str;
this.texture = new ImageIcon (“res / enemy /” + this.textureFile) .getImage ();

devuelve esto;
}

inicio público vacío estático () {

}

}

Además de la respuesta de Ernest, busca en Tabletop Wargames como War Machine / Hordes, Warhammer / 40k y otros. Si bien están basados ​​en turnos, hay muchas formas en que ambos se relacionan. Especialmente en diseño de unidades. También busque juegos de rol como D&D 4th y 3.5 para ver cómo se pueden abstraer algunas cosas. Compare Warhammer 40k con Dawn of War para tener una idea completa de qué tan bien se relacionan, y cómo Relic tomó y modificó un conjunto de reglas existente.

En la mayoría de los juegos de estrategia en tiempo real, hace clic en el edificio que los produce y luego en su icono. Por lo general, toma algunos recursos y algo de tiempo. Luego aparecen y están listos para usar.

Pensé que esta sería una pregunta de desarrollo del juego cuando j hacía clic en él, pero carece de las etiquetas necesarias.