Propuesta, Maximizacion de Poder en videojuego RTS (Real Time Strategy)

Propuesta, Maximizacion de Poder en videojuego RTS (Real Time Strategy)

de Santiago Javier Alaniz Gonzalez -
Número de respuestas: 5
# Propuesta, Formulación y Solución de un Problema de Programación Lineal

## Enunciado

En un juego de estrategia en tiempo real (RTS), un jugador tiene la posibilidad de construir Estructuras y reclutar Soldados. Cada Estructura construida otorga un poder de p_1 y cada Soldado reclutado otorga un poder de p_2. El jugador dispone de una cantidad total de oro, madera y cuero, que puede ser utilizada para cumplir con los costos de construcción y reclutamiento.

El oro, ademas de ser empleado para construir, puede ser intercambiado por madera y cuero. El ratio de intercambio de oro por madera es \alpha_1 y el ratio de intercambio de oro por cuero es \alpha_2.

Para poder avanzar durante la partida, cada jugador comienza con x_{\text{1min}} Estructuras ya construidas.

Luego, el motor del juego impone cierta restricción en el número de soldados que se pueden controlar al mismo tiempo, por lo que el jugador no puede reclutar más de x_{\text{2max}} Soldados.

### Variables de Decisión

- x_1: Número de Estructuras a construir.
- x_2: Número de Soldados a reclutar.
- y_1: Cantidad de oro usada para intercambiar por madera.
- y_2: Cantidad de oro usada para intercambiar por cuero.

### Parámetros (Reales Positivos)

- c_{11}, c_{12}, c_{13}: Costos en oro, madera y cuero para construir una Estructura.
- c_{21}, c_{22}, c_{23}: Costos en oro, madera y cuero para reclutar un Soldado.
- p_1: Poder otorgado por una Estructura.
- p_2: Poder otorgado por un Soldado.
- R_1: Cantidad total de oro disponible.
- R_2: Cantidad total de madera disponible.
- R_3: Cantidad total de cuero disponible.
- \alpha_1: Ratio de intercambio de oro por madera.
- \alpha_2: Ratio de intercambio de oro por cuero.
- x_{\text{1min}}: Mínimo número de estructuras requeridas.
- x_{\text{2max}}: Máximo número de soldados permitidos.

### Función Objetivo

Maximizar el poder total:

  [    Z = p_1 \cdot x_1 + p_2 \cdot x_2  ]

### Restricciones

#### **Restricción de Oro:**

  [    c_{11} \cdot x_1 + c_{21} \cdot x_2 + y_1 + y_2 \leq R_1  ]

#### **Restricción de Madera (considerando intercambio):**

  [    c_{12} \cdot x_1 + c_{22} \cdot x_2 \leq R_2 + \alpha_1 \cdot y_1  ]

#### **Restricción de Cuero (considerando intercambio):**

  [    c_{13} \cdot x_1 + c_{23} \cdot x_2 \leq R_3 + \alpha_2 \cdot y_2  ]

#### **Restricción del Número Mínimo de Estructuras:**

  [    x_1 \geq x_{\text{1min}}  ]

#### **Restricción del Número Máximo de Soldados:**

  [    x_2 \leq x_{\text{2max}}  ]

#### **No negatividad:**

  [    x_1 \geq 0, \quad x_2 \geq 0, \quad y_1 \geq 0, \quad y_2 \geq 0  ]

Santiago Alaniz, santiago.alaniz@fing.edu.uy, 50826476
Marcelo Marenales, marcelomarenales@hotmail.com, 5048023-4
Lucas Fontes, fonteslucas007@gmail.com, 53951533

En respuesta a Santiago Javier Alaniz Gonzalez

Re: Propuesta, Maximizacion de Poder en videojuego RTS (Real Time Strategy)

de Omar Viera -
Un modelo de Programación Lineal que se puede resolver con el método Simplex Revisado que van a ver en este curso. Entraría dentro de lo que se `puede clasificar como Planificación Estratégica. Ahora, lo que no me queda muy claro es como se aplicaría el modelo rería en cada iteración del juego es decir, después que el otro jugador haga su movida?
Otra forma de verlo es aplicar Teoría de Juegos. Esa técnica no es mi fuerte pero hace justamente a toma de decisiones en tiempo real en función de lo que el otro jugador hace.
Saludos,
/Omar.
En respuesta a Omar Viera

Re: Propuesta, Maximizacion de Poder en videojuego RTS (Real Time Strategy)

de Lucas Samuel Fontes Vega -
Buenos días!

Hay distintas alternativas para enfocarse y adaptar el juego a lo que sea necesario, dejo un par de ejemplos:

Se puede reconocer la naturaleza secuencial dej luego y por cada turno recalcular el modelo con los recursos que se tienen a medida que van pasando la toma de decisiones.

Otros juegos también son de la forma: En cierto tiempo cada jugador utiliza los recursos para construir su ejercito y luego se enfrentan, al enfrentamiento lo gana el que haya optimizado más la función a maximizar, al inicio de la partida todos los jugadores tienen la misma cantidad de recursos, esa podría ser otra alternativa a tener en cuenta.

También otra posibilidad es que el juego tenga un "modo historia" donde el jugador participa contra un comportamiento fijo de la máquina, y dependiendo de su toma de decisiones va avanzando, o tiene que comenzar de nuevo la fase actual que perdió para optimizar los recursos e ir avanzando.
De esta forma se pueden plantear N problemas similares (uno por cada fase), para que el jugador vaya analizando y tomando decisiones.
En respuesta a Santiago Javier Alaniz Gonzalez

Re: Propuesta, Maximizacion de Poder en videojuego RTS (Real Time Strategy)

de Marcelo Marenales Maya -
Buenas!

Otra alternativa que estuvimos viendo es que cada usuario, dependiendo de la localizacion en el mapa donde comience, tendra acceso a los mismos recursos que los demas pero en distintas proporciones. A su vez, cada jugador dependiendo de la "faccion" que elija tendra distintos costos para estructuras/soldados, tambien sus ratios de intercambio de recursos por recursos pueden varias. A la hora de un encuentro, uno sabria la cantidad de recursos del otro jugador y su faccion, con esos datos, podria calcular su simplex vs el simplex del otro jugador, si su poder es mayor en esas condiciones, sabria que le es ventajoso tomar un enfrentamiento con el otro jugador, en el otro caso no. Esto implicaria que la nueva funcion a maximizar seria la de Z = Pfaccion1 - P2faccion2 donde la faccion 1 referenciaria a nuestra faccion como jugador
En respuesta a Marcelo Marenales Maya

Re: Propuesta, Maximizacion de Poder en videojuego RTS (Real Time Strategy)

de Santiago Javier Alaniz Gonzalez -
Quiero agregar otra cosa profesor, un enfoque nuevo que puede tener este planteamiento es evaluar la nivelación entre facciones, es decir, si cada jugador toma la estrategia optima en maximizar en poder, idealmente esa diferencia (Z = max P1-P2, con Pi=pi_1*xi_1 + pi_2*xi_2) tendría que dar (o estar cerca) de 0, de otra forma, los jugadores no tendrían un incentivo en elegir una facción que es desfavorable frente a la otra en términos de poder, eso puede ayudar por ejemplo a los desarrolladores del juego a ajustar los parámetros de cada facción y los recurso generales (por ejemplo, la varianza de recursos por cada zona de comienzo, o el costo en oro, madera y cuero de una estructura para cierta faccion).

Este enfoque ademas de ser realizable usando PL, puede ser generalizable a n facciones tratando de garantizar un justo equilibrio entre todas. O que ciertas facciones sean mas debiles/fuertes (en terminos de poder) contra otras.