Mundo Maker
¡Bienvenid@ a Mundo Maker!

¿Quieres aprender todo sobre el RPG Maker?



Regístrate y forma parte de Mundo Maker.

Pseudo-cosas de diseñador de vídeojuegos: diseño de IAs en un RPG

Ver el tema anterior Ver el tema siguiente Ir abajo

Pseudo-cosas de diseñador de vídeojuegos: diseño de IAs en un RPG

Mensaje por silvanash el 2017-11-04, 00:19

Disclaimer: el tito silva no tiene ninguna titulación de diseñador de vídeojuegos. Ni falta que hace.

A random useless rant. Para que el foro parezca estar vivo y eso.

===

"Voy a hacer mi propio RPG, con juegos de azar y mujerzuelas" - niño rata random.

Pues hala, ya te has bajado has comprado el Maker y ahora vas a hacer un juego de la rehostia por el que vas a cobrar 15 dólares la unidad (como mínimo), pese a usar solo RTP y recursos robados ripeados robados. Pero como eres un niño rata con un mínimo de seriedad, has decidido hacer un sistema de batalla personalizado (con battlers de distintos estilos, por supuesto). Y, tarde o temprano, te acabarás encontrando con el problema que hace que orochii y yo mandemos a tomar por culo a todos los SBPs:

Diseñar una IA.

A simple vista, y más si nunca has intentado hacer una IA, programar una IA es algo muy simple. Todos tenemos sentido común y sabemos que hay que hacer ciertas cosas en ciertas situaciones. Ahora dile eso a un niño rata autista. El niño rata autista hará lo que le dé la gana, tenga sentido o no. No por autista, sino por niño rata.

===

"Why are you so fucking retarded?" - el tito silva, varias veces al día

El problema base de diseñar una IA está en que los ordenadores no piensan. Los ordenadores analizan y ejecutan, pero no tienen la capacidad de crear ideas propias (al menos no todavía). Una IA es tan buena como el programador que haya detrás de ella, y si ese programador resulta ser el niño rata que todos llevamos dentro... Mala suerte, hoygad.

Hay géneros de vídeojuegos en los que no hace falta IA. Los puzzles, por ejemplo, no necesitan una IA. Para que un puzzle funcione, sólo necesita reglas y unas condiciones iniciales. Por ejemplo, un puzzle que consista en empujar una pelota dentro de una cesta con un límite de X movimientos sólo necesita esas reglas, y la posición de los obstáculos en cada nivel del juego son sus condiciones iniciales. El único agente en un puzzle es el propio jugador.

En un RPG, en cambio, los enemigos también son agentes que tienen que actuar y reaccionar, y parte de la satisffacción del juego viene por la capacidad de esos agentes para aparentar inteligencia.

===

"FUCK THIS!"

La solución más simple, más cutre, y la que todo el mundo usa (grandes compañías de vídeosjuegos incluidas) es diseñar una IA muy simple y luego "añadir dificultad" dándoles bonuses de stats ridículos a los enemigos.

Diseñador de vídeojuegos? escribió:Enemigo que sólo tiene 3 ataques diferentes, usa uno de ellos al azar cada turno, nunca se cura, nunca se defiende, no hace nada excepto atacar. Para darle desafío al juego, cada ataque quita un 35% de los HPs del jugador y el enemigo aguanta 20 golpes antes de morir.

Yay, fun! LOLNOPETHEFUCKOUTTATHISGAME.

Hacer esto es de diseñadores vagos y malos. Sobre todo vagos, y sobre todo malos. Algunos juegos llevan esto al extremo, y sus distintas dificultades consisten simplemente en modificadores al daño causado/recibido. Los enemigos siguen comportándose de la misma forma, pero puedes sentir un 500% más de "balance" por el mismo precio. Yay, more fun!

===

"Choke on this, bitch!" - cleric casting a healing spell

Oigo a los niños rata del fondo diciendo "pero eso es lo más rápido y el jugador es retrasado y va a seguir comprando el juego igual si tiene buenos gráficos" o "pero eso lo haces tú porque eres un mal diseñador, yo puedo hacerlo mucho mejor". En el primer caso, GO FUCK YOURSELF WITH A SCREWDRIVER.

En el segundo caso, YOU ARE GOING TO FUCK YOURSELF ANYWAY. Se pueden introducir condiciones simples en la IA para que ejecute ciertas cosas en ciertas situaciones:

Cleric escribió:Cada vez que caiga a menos del 20% de HP, me curo.

... pero esas condiciones sólo funcionarán correctamente en situaciones muy concretas, muy limitadas, y en un juego con muy pocas opciones abiertas. Ésta es otra forma de hacer IAs: limitar las opciones disponibles. De este modo, la IA sólo tiene que considerar y balancear un puñado de opciones. Los juegos de Pokémon usaban este tipo de IA en ocasiones, como el legendario Venomoth que acabó con el Dragonite de Lance porque Barrier y Agility tenían ventaja de tipo sobre Venomoth (Gen I shenanigans), y la IA daba prioridad absoluta a la ventaja de tipo.

Un ejemplo de IA sería, comprobar, por este orden:
-> ¿Debo curarme?
-> Sí
-> No
-> -> ¿Tengo algún ataque con ventaja de tipo?
-> -> Sí
-> -> -> Uso el ataque con ventaja de tipo más poderoso que tenga
-> -> No
-> -> -> Uso el ataque más poderoso que tenga (quizás incluso al azar)

Estos algoritmos se pueden complicar más, aunque luego está la opción de diseñar a enemigos que usen bien la IA, en lugar de hacer una buena IA general. Siguiendo con el ejemplo de Pokémon, se pueden crear enemigos con buenos movesets para complementar a la IA (y luego les das bonuses de stats para "balancear" el juego).

Este tipo de IAs está bien para juegos cortos (no más de 5 horas), pero en juegos más largos, el jugador acabará dándose cuenta de que la IA siempre hace lo mismo en ciertas situaciones. En el caso de Pokémon no se nota tanto porque Pokémon tiene una cantidad ridícula de movimientos disponibles, con lo que se minimiza el efecto de la opciones a evaluar limitadas. Además de que la IA de Pokémon ha ido mejorando con cada juego.

===

"A2, hit. A3, miss. A2, miss."  - one of the boats FUCKING CHANGED PLACES.

Ahora viene hardcore shit: más acciones a evaluar.

Por ejemplo, movimiento. Y aquí entramos en territorio de diseño de vídeojuegos en general. ¿Cómo influye el movimiento en la batalla? ¿Altera los ataques disponibles? ¿Consume el turno moverse? ¿Hay algún límite al movimiento?

Si integras todos los posibles factores que influyan en la decisión de moverse o no al juego, lo normal es que dejes de diseñar la IA y vuelvas al punto de ataques al azar o condiciones simples.

Pero supongamos que el niño rata que llevamos dentro tiene ganas de hacer un juego con una IA como nunca se haya visto y consigue programar unos agentes que se muevan por el campo de batalla. En esta situación, la pregunta es: ¿vale la pena todo ese esfuerzo?

Nope.

Es decir, no en el mundillo del Maker. La gente que juega a los abortos que salen del Maker ya están acostumbrados a ver IAs decentes, así que un agente que se mueve en un juego del Maker es lo que esperarían verse, algo normal. O, también, que es alguno de los scripts que ya hay por ahí para hacer estas cosas.

Otra razón por la que no hago scripts para la comunidad: todos se acaban convirtiendo en "oh, otro juego hecho con X script". Eso por no mencionar que es jodidamente imposible tener en cuenta todas las incompatibilidades, que nadie aprenderá a configurar/personalizar los scripts, y que PROGRAMAR UNA IA ES UN DOLOR.

Otro factor a integrar en la IA: tiempo, en sistemas que permitan alterar el flujo de la batalla. Hoy me planteé hacer un script (al topic de ideas) que permitiría que el jugador stackeara varias acciones en su turno, y en cuanto hubiese llenado la lista de acciones, se ejecutarían. La idea era poder atacar 10 veces con el mismo personaje en el mismo turno (los demás miembros no podrían actuar porque ese personaje habría consumido todas las acciones disponibles).

"Eso suena guay".

Of course. Ahora vete a programar esa IA. La IA tendría que trabajar con al menos 2 enemigos por grupo, y tendría que evaluar las acciones disponibles, el potencial de cada enemigo, sus skills, qué hacer, en qué orden, qué no hacer, quién actúa y cuándo, cuántas acciones gastar, a quién atacar, a quién curar, usar buffs/debuffs y cuáles para evitar anular o acumular debuffs por encima del límite, etc.

La otra opción es que sólo el jugador tuviese acceso a ese sistema, y, como medida de "balance", todos los enemigos tendrían stats altísimos. Yay, fun! 5 minutes wailing at a wall! The main "strategy" is just piling attacks on a single foe and hoping they won't be overhealed when they have a chance, yay!

He oído a demasiada gente quejarse de que las IAs de los juegos son malas y los niños rata se creen que ellos podrían hacer mejores IAs.. Go and fucking do it, I dare you.

/rant
avatar
silvanash
Aventurero
Aventurero

0/3

Créditos 194

Gracias : 247

Volver arriba Ir abajo

Re: Pseudo-cosas de diseñador de vídeojuegos: diseño de IAs en un RPG

Mensaje por xXIsrael0499Xx el 2017-11-04, 01:01

Es decir que como todos somos ratas y vagos mejor dejamos que alguien haga una IA la copiamos y ya esta xD, OK no, ahora portando la seriedad.

Pues si yo también me he visto la necesidad de hacer un IA, pero... es un coñazo xD, sobre todo cuando el niño rata que tenemos dentro nos dice que cada enemigo sea distinto y tenga un montón de mariqueras (Tonterías varias), en lo que nos lleva a tardar mil años hacer el proyecto, con recursos ripiados,robados, y no sobre todo NO COMPRADOS, solo ItEm hace eso, pero si nuestra conciencia nos obliga a hacer todo eso.

Ahora, la gente que se queja de las IAs de los juegos, aparte de que las IAs son malas, porque lo son, pero hijo... Que persona en su sano juicio haría un IA buena,complicada, y bien chachi, Whatever, siendo una sola persona...

Si si si, hay gente que hace sus juegos solos, pero 1 de 1000, ademas son pro (Los mataba a todos), acabas de comprarte el maker y quieres hacer una IA level doctrina egoísta, ja-ja-ja me parto de la risa.

Resumiendo el tema: "No hagas IAs, robatelas, no vale la pena y si vas hacerlo hazlo con alguien mas porque si no el pelo se te cae".

Por cierto te falto poner que ponen battlers de distintos estilos + 3D xD.
avatar
xXIsrael0499Xx
Veterano
Veterano

0/3

Créditos 2048

Gracias : 112

Volver arriba Ir abajo

Re: Pseudo-cosas de diseñador de vídeojuegos: diseño de IAs en un RPG

Mensaje por orochii el 2017-11-04, 06:35

Silvia Nash escribió:Un ejemplo de IA sería, comprobar, por este orden:
-> ¿Debo curarme?
-> Sí
-> No
-> -> ¿Tengo algún ataque con ventaja de tipo?
-> -> Sí
-> -> -> Uso el ataque con ventaja de tipo más poderoso que tenga
-> -> No
-> -> -> Uso el ataque más poderoso que tenga (quizás incluso al azar)

Esto me recordó a algo llamado diagramas de flujo. Se pueden hacer para planificar ese tipo de cosas (peseudo-IAs, porque en realidad no son inteligencias, son comportamientos pre-programados con condicionales).

Básicamente, el reto está en hacer una IA que parezca suficientemente inteligente, aún si por detrás es tonta, e incluso a veces se auto-perjudica por balance. Supuestamente algunas inteligencias artificiales se perjudican a sí mismas, en juegos AAA y etc, porque es parte del diseño. A veces las inteligencias pueden llegar a ser demasiado perfectas, y es buen diseño dejar un "agujero" por donde el jugador medio (idiotus comun) pueda entrar. También no es del todo malo que el patrón se pueda discernir, total la idea es que el jugador tenga la oportunidad de tomar el control (es la idea de un juego, eso o que pase el juego a random puro y duro como el pan pasado del papa).

Es un tema amplio, complejo, y yo no lo entiendo y fuck IAs xD.

Cada vez que leo IA recuerdo a Ribbu, pero no porque Ribbu hiciera inteligencias artificiales sino por Imperial Age que DEP.
avatar
orochii
Reportero

0/3

Créditos 7772

Gracias : 458

Volver arriba Ir abajo

Re: Pseudo-cosas de diseñador de vídeojuegos: diseño de IAs en un RPG

Mensaje por Wecoc el 2017-11-04, 07:20

Complicar más o menos la IA es una buena manera de hacer dificultades para el juego. Hace más efecto a la profundidad del juego hacer los enemigos más "listos" que hacerlos más fuertes. Es importante hacer una buena IA para los juegos RPG, pero el maker no da demasiadas opciones por defecto en ese sentido... para esas cosas en general hay que hacer uso de scripts.

Dicho esto solo quería aportar en el tema con dos granitos de arena.

Lunatic Enemy A.I.
Script para XP que permite definir condiciones a las acciones por tal de construir una IA simple. Si se quieren condiciones encadenadas más complejas ya no sirve tal cual pero sí puede servir de base. Podéis ver ejemplos de IA en el mismo topic. Está inspirado en un plugin de Yanfly que pondré a continuación.

Battle A.I. Core
Plugin para MV que permite definir una A.I. simple en el proyecto.

Yo creo que algo interesante a rescatar de ahí es que la IA en batalla se puede separar en dos partes.
1) Prioridad de acción --> En cada situación, que el enemigo haga una opción u otra dependerá de toda una serie de condiciones.
2) Prioridad de target --> Al aplicar una acción usará también varias condiciones para saber a quien le favorece más aplicarla.

Además hay que considerar siempre el tipo de enemigo para definirla, especialmente en el primer punto. Algunos enemigos priorizarán más unas cosas y otros priorizarán otras. Hay que pensar en términos de comportamiento.
avatar
Wecoc
Administrador
Administrador



Créditos 12241

Gracias : 639

Volver arriba Ir abajo

Re: Pseudo-cosas de diseñador de vídeojuegos: diseño de IAs en un RPG

Mensaje por Contenido patrocinado


Contenido patrocinado


Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba


Permisos de este foro:
No puedes responder a temas en este foro.