martes, 8 de noviembre de 2016

Creando un videojuego (III) : Lo fácil resulta ser complicado


Pues para que nos vamos a engañar: no hay apenas avance en el asunto, sobretodo por mi parte. Entre el trabajo y otros intereses, al final no queda mucho tiempo para dedicarle y se va acumulando todo. Pero bueno, esperamos poco a poco ir haciendo y poder enseñar cosas por aquí. De momento os cuento algo más :) 

Carlos, después de pelearse bastante con el código hasta el punto de tener pesadillas con ello (no es broma), por fin consiguió centrar las fichas en sus posiciones y otorgarle a la máquina la inteligencia artificial adecuada para que vaya a patearte el culo como jugador. 

No me paso con la expresión, porque tuvo que bajarle el nivel de dificultad porque eso era imposible. En palabras más técnicas: reducir el nivel de profundidad del árbol de soluciones. Sí, suena muy loco. 

Lo que se utiliza es el algoritmo Minimax, que como bien explica Wikipedia es:
En teoría de juegos, minimax es un método de decisión para minimizar la pérdida máxima esperada en juegos con adversario y con información perfecta. Minimax es un algoritmo recursivo.
El funcionamiento de minimax puede resumirse como elegir el mejor movimiento para ti mismo suponiendo que tu contrincante escogerá el peor para ti.
Para Carlos que lleva un montón de años programando le supuso dolores de cabeza intensos, no quiero saber para alguien que no tenga ni idea. Aunque bueno, la programación es matemática pura. ¿Veis? Las matemáticas sirven para algo. No incentivan nada bien su aprendizaje en el colegio. 

Total, que aún reduciendo lo que comento, era demasiado complicado ganar, así que le añadió un turno aleatorio sin revisar el árbol de soluciones. Podéis ver en el gif que el jugador gana. Yo lo intenté varias veces y nada, y eso que siempre me creí buena en el 3 en raya. Tengo que practicar más ^_^



Está muy pequeño y en movimiento, pero arriba aparece un texto al finalizar que dice: "Pulsa R para reiniciar el juego" y debajo indica qué jugador ha ganado el juego o si hubo empate. Aquí no se ve, porque aparecía más a la izquierda, pero hay elección de idioma. En este caso poco texto tiene, pero más adelante será de más utilidad. 

La base del primer juego está hecha, ahora falta darle forma al apartado visual. Tenía una idea bastante clara de la introducción pero terminé definiéndola más. Mi concepto es, muy a lo simple y cutre, lo que podéis ver en el gif siguiente:


Tú, como jugador, estarás enfrente de la mesa. Al otro lado habrá una figura humana escondida en las sombras. Muy agradable todo, a la vez que me ahorro definir un personaje con todo su detalle, que una no da para tanto. 

En el centro habrá una caja de cartón, rollo mudanza, con juegos guardados en el interior. En principio pensé en que fuera el día del cumpleaños del jugador, pero luego se me ocurrió algo más siniestro. No sé, a ver en qué acaba al final cuando me ponga en serio a diseñar todo. Que yo me voy por las ramas siempre...

Total, que la persona que tienes enfrente te contará la historia, habrá una pequeña animación de movimiento muy sencilla, y luego la caja se abrirá, dando paso a un fogonazo de luz y empezará el primer juego (el 3 en raya vamos). 

Pensarás "Ai mira, que juego más tonto" y luego saltará el primer trolleo y te quedarás con un palmo de narices. Con la risa malvada posterior del narrador. Que por cierto, también cambié de idea con eso. Si es que, menos mal que voy escribiendo las entradas... 

No voy a poner fecha fija, menos ahora que yo empecé a estudiar y tendré menos tiempo todavía, pero espero que a inicios de 2017 tener por el blog disponible una demo con la introducción, el 3 en raya y con varios trolleos. 

En el propio juego hay cosas que modificar todavía. Por ejemplo, la máquina juega al instante, no hay tiempo de "pensar". No es plan de poner que tarde 10 segundos, pero no sé, algo que dé pie a que no sea tan mecánico. 

Se me ocurren cosas también como la opción de cambiar el color de fondo del tablero. A parte de que algunos trolleos también modificarán el aspecto visual del juego. Son esa clase de detalles los que harán de los juegos clásicos algo más divertido y loco. 

No tenemos ni idea de cuál será el siguiente juego disponible, porque ya bastante tenemos con este aunque parezca mentira, así que bueno, ya iremos viendo según vayamos aprendiendo más a manejarnos con el entorno :)

Hoy regresó a la vida la tableta gráfica, que el último día que la cogí iba a trompicones, así que a ver si sigue en forma y puedo ir dibujando todo esto, incluidos los diseños de camisetas que tengo a medias. 

Y ya no me enrollo más, que no sirve de nada querer hacer cosas sino se descansa lo suficiente.






Anteriores entradas:


No hay comentarios:

Publicar un comentario

Escribe tu comentario

------ ------------