Solo programadores, no mogos gracias: IA para juego de estrategia

davitin

Será en Octubre
Desde
20 Jul 2009
Mensajes
51.538
Reputación
100.279
olvidate


no puedes meter esos sistemas en un iphone


y llevan muchos años investigando sobre el tema muchas compañías


en el iphone lo que se lleva son juegos divertidos para las niñas, graficos divertidos


mira el muestario que había para juegos de spectrum y veras la cantidad de chuladas que todavía se pueden hacer
Hombre, yo tenia una pda y tenia juegos de estrategia...no me refiero a hacer un command & conquer, si no a juegos tipo civilization, por turnos, con una ia basica, vamos para pasar el rato.

Un jueguecillo, vamos...juegos asi para pedeas hay a punta pala, y un iphone es una pda.
 

Rubencillo

Cuenta inactiva
Miembro del equipo
Desde
5 Jul 2007
Mensajes
16.305
Reputación
21.348
Si hago esta pregunta es por que ya se algo, no soy Botarate, se programar.

Gracias por los animos hamijo, si tu nunca te has atrevido a hacer nada quedate mirando desde la barrera y no molestes, please.
Pero lo harás en PHP, ¿no? :D
 

ikifenix

Madmaxista
Desde
24 Dic 2006
Mensajes
5.885
Reputación
11.821
Hacer un juego de calidad una persona con poca o ninguna experiencia, como que es bastante complicado. La inversión en tiempo entre lo que tienes que aprender y programar será brutal. Y eso, sin contar que también necesitas un guion, grafistas, músicos...
Hay juegos hechos por grupos de 2 o 3 personas que están bastante bien. Con XNA, UDK o Infinity (este último no estoy seguro), se pueden hacer cosillas decentes sin apenas programación (siempre que no se quiera hacer algo muy raro). Por ejemplo un Braid o un juego a lo Supermario o Sonic sería factible (pero haciendose a la idea de que no lo va a hacer en 2 tardes, sino que puede tardar un año o más).
 

davitin

Será en Octubre
Desde
20 Jul 2009
Mensajes
51.538
Reputación
100.279
Pero lo harás en PHP, ¿no? :D
A ver, el lenguaje que usa el iphone es objetive-c (segun lo que dicen en el otro hilo), imagino que sera parecido al c++, de ahi el nombre...el c tiene parecida syntaxis que el javas c r i p t, si ya conoces conceptos basicos de programacion, variables, programacion orientada a objetos, y todo eso, te es muy facil aprender rapidamente otro lenguaje, todos vienen a ser parecidos, al menos los conceptos.
 

JyQ

Madmaxista
Desde
29 Jul 2009
Mensajes
9.331
Reputación
13.798
Hombre, yo tenia una pda y tenia juegos de estrategia...no me refiero a hacer un command & conquer, si no a juegos tipo civilization, por turnos, con una ia basica, vamos para pasar el rato.

Un jueguecillo, vamos...juegos asi para pedeas hay a punta pala, y un iphone es una pda.
No he jugado a civilization pero tiene pinta de ser como el ajedrez, decidir la mejor jugada pensando que en el contrincante hará la peor para ti.

Recomiendo pues usar algoritmos minimax:

Minimax - Wikipedia, la enciclopedia libre

En la función de utilidad programarás la puntuación mejor o peor que da elegir una cosa u otra (en el ajedrez sería mover tal pieza a tal casilla, en civilization supongo que sería inventar una tecnología, crear un nuevo campo, lanzar soldados...), la puntuación se extrae de explorar recursivamente un árbol de decisiones hasta un nivel n de jugadas futuras (donde normalmente n nunca es la jugada final del juego pues requeriría demasiados recursos calcularla)

También puedes implementarlo con un sistema experto, pero puedes dejar cosas sin tapar que luego sean fallos en la inteligencia de la máquina pues se trata de poner reglas de actuación a la máquina, estos algoritmos serán más óptimos en velocidad y recursos si usas un lenguaje tipo declarativo y no imperativo como los que conoces, que son más apropiados para ello.

Las redes neuronales se usan mucho más para el reconocimiento de patrones en datos como texto, audio, vídeo, foto...

PD: Yo ni loco me metería en una cosa así, lo digo porque se de qué va. Tiraría por juegos de hacer rebotar pelotas u objetos, o por aplicaciones útiles.
 
Última edición:

davitin

Será en Octubre
Desde
20 Jul 2009
Mensajes
51.538
Reputación
100.279
No he jugado a civilization pero tiene pinta de ser como el ajedrez, decidir la mejor jugada pensando que en el contrincante hará la peor para ti.

Recomiendo pues usar algoritmos minimax:

Minimax - Wikipedia, la enciclopedia libre

En la función de utilidad programarás la puntuación mejor o peor que da elegir una cosa u otra (en el ajedrez sería mover tal pieza a tal casilla, en civilization supongo que sería inventar una tecnología, crear un nuevo campo, lanzar soldados...), la puntuación se extrae de explorar recursivamente un árbol de decisiones hasta un nivel n de jugadas futuras (donde normalmente n nunca es la jugada final del juego pues requeriría demasiados recursos calcularla)

También puedes implementarlo con un sistema experto, pero puedes dejar cosas sin tapar que luego sean fallos en la inteligencia de la máquina pues se trata de poner reglas de actuación a la máquina, estos algoritmos serán más óptimos en velocidad y recursos si usas un lenguaje apropiado para ello.

Las redes neuronales se usan mucho más para el reconocimiento de patrones en datos como texto, audio, vídeo, foto...
Muy interesante lo que comentas.

Si, el civilizacion es de ese tipo que tu dices, y la forma de hacer la ia puede ser tal cual lo comentas.
 

brunorro

Madmaxista
Desde
13 Dic 2006
Mensajes
4.518
Reputación
4.740
A ver, el lenguaje que usa el iphone es objetive-c (segun lo que dicen en el otro hilo), imagino que sera parecido al c++, de ahi el nombre...el c tiene parecida syntaxis que el javas c r i p t, si ya conoces conceptos basicos de programacion, variables, programacion orientada a objetos, y todo eso, te es muy facil aprender rapidamente otro lenguaje, todos vienen a ser parecidos, al menos los conceptos.
Dios te pille confesado si piensas así. Objective C a mi gusto sólo tiene de C el nombre. La sintaxis... Se parece lo mismo que una nuez a una almendra, más o menos.

Objective-C - Wikipedia, la enciclopedia libre

Aquí tienes un tutorial si quieres empezar...

The Objective-C Programming Language: Introduction to The Objective-C Programming Language

Y las maneras de tratar al personal... Quieres decir que puedes ir del sobradismo que vas ??

Edito para añadir que los minimax y demás son algoritmos de la teoría de juegos. También tienes las búsquedas en profundidad, en anchura... Todo es referente a árboles, al fin y al cabo. Mírate esto...

http://en.wikipedia.org/wiki/Game_theory
 
Última edición:

Abraham

Madmaxista
Desde
17 Ene 2008
Mensajes
11.995
Reputación
17.370
Lugar
Ankh-Morpork
Si hago esta pregunta es por que ya se algo, no soy Botarate, se programar.

Gracias por los animos hamijo, si tu nunca te has atrevido a hacer nada quedate mirando desde la barrera y no molestes, please.
¿Al final en qué quedó el juego de naves que estabas planeando?
 

davitin

Será en Octubre
Desde
20 Jul 2009
Mensajes
51.538
Reputación
100.279
¿Al final en qué quedó el juego de naves que estabas planeando?
Todavia estoy con el, lo cojo a ratos, es lo que tiene programar por aficcion, pero no os preocupeis, en cuanto lo tenga hare una sesion especial para la gente que quiera jugar de burbuja.
 

davitin

Será en Octubre
Desde
20 Jul 2009
Mensajes
51.538
Reputación
100.279
Dios te pille confesado si piensas así. Objective C a mi gusto sólo tiene de C el nombre. La sintaxis... Se parece lo mismo que una nuez a una almendra, más o menos.

Objective-C - Wikipedia, la enciclopedia libre

Aquí tienes un tutorial si quieres empezar...

The Objective-C Programming Language: Introduction to The Objective-C Programming Language

Y las maneras de tratar al personal... Quieres decir que puedes ir del sobradismo que vas ??

Edito para añadir que los minimax y demás son algoritmos de la teoría de juegos. También tienes las búsquedas en profundidad, en anchura... Todo es referente a árboles, al fin y al cabo. Mírate esto...

Game theory - Wikipedia, the free encyclopedia
Mmmm, la verdad es que lo de que el o-c y el c++ se parecen era solo una suposicion, por el otro hilo ya han dejado claro que no.

Gracias por los apuntes.
 

Vde

Madmaxista
Desde
3 Nov 2008
Mensajes
7.345
Reputación
12.255
¿De qué va el juego? ¿De un segurata en un polígono?
Si, basicamente parte de un Oficina (Comand Center) con 4 trabajadores que reparten pedidos (recursos) y con ello construye

Garita: De la que salen los seguratas (marines) y seguratas canis (firebats)

Almacen: Salen las motos que montan los seguratas (buitres) y se puede investigar que salgan los coches (tanques)

Bar: Investigan para los seguratas la punteria de disparo, resistencia y aumento del disparo (stim pack)

ya seguire apuntando lo que se me ocurra, que son buenas ideas
 

davitin

Será en Octubre
Desde
20 Jul 2009
Mensajes
51.538
Reputación
100.279
Si, basicamente parte de un Oficina (Comand Center) con 4 trabajadores que reparten pedidos (recursos) y con ello construye

Garita: De la que salen los seguratas (marines) y seguratas canis (firebats)

Almacen: Salen las motos que montan los seguratas (buitres) y se puede investigar que salgan los coches (tanques)

Bar: Investigan para los seguratas la punteria de disparo, resistencia y aumento del disparo (stim pack)

ya seguire apuntando lo que se me ocurra, que son buenas ideas
Oye, pues no es coña, pero es una idea original...

Si, ese es el tipo de juegos que quiero hacer.

De ese estilo.

Solo que al mio le estoy implementando mapas, es un poco mas sofisticado que ogame y similares.
 

Kolyvagin-Flach

Madmaxista
Desde
15 Ago 2007
Mensajes
27
Reputación
35
Lugar
UK
Para un RTS basico la mejor opcion seria implementar un production system como motor de inferencia. Basicamente se compone de una serie de condiciones y acciones de tipo "Poblacion de orcos < 100 entonces generar mas orcos".
Este tipo de sistemas puede complicarse bastante a medida que se van añadiendo diferentes reglas.
Si quieres que la maquina aprenda, una buena opción es añadir un algoritmo genetico al systema de reglas (LCS) con algun tipo de scoring para cada regla.