Para aprender a hacer videojuegos, lo que hice fue pensar cómo serian los más sencillos. Mi conclusión fue uno que se gane simplemente por mover el mouse 1 vez, otro que se gane por presionar alguna tecla 1 vez, etc, y estoy haciendo un programa que cuenta cosas así, así que se supone que estoy aprendiendo a hacer videojuegos.
Para aprender a hacer programas que resuelvan dudas, he pensado cuales son las dudas más sencillas de resolver (sin usar datoes externos, la idea es que el programa averigue experimentando). He pensado en por ejemplo adivinar un número del 1 al 10, obtener un número > 10, en la expresión ... < 9: true poner en ... un valor tal que la expresión resulte lo que diga tras el :, y puedo seguir complicando eso, pero siento que es inútil, sigue siendo un tipo de duda que parece poco útil resolver ¿cómo avanzo entonces? ¿qué camino me conviene seguir?
Si quiero hacer un juego como este:
https://www.youtube.com/watch?v=JPM4y71Jxio
2:00
supongo que debo:
1- Hacer un juego en 2d que no tenga plataformas (o sólo un suelo), ni objetos agarrables, etc, etc, lo más simple posible.
2- Agregar el "3d", o plataformas, u objetos agarrables, etc.
3- Desde la versión simple agregar algo distinto a lo que haya agregado.
4- Mezclar ambas cosas.
5- Lo mismo que el paso 3.
En fin, en teoría se va aprendiendo, y se va pareciendo cada vez más a lo que quiero (que no es una copia exacta de ese juego, pero recién cuando se parezca podría agregarle mis extras).
Si quiero un programa que averigue cómo mejorar el universo, la situación es un poco distinta porque, m, en el proceso quiero hacer programas que resuelvan dudas más sencillas, así que no es exactamente hacer un programa sencillo y agregarle cosas para que se parezca al objetivo final, porque tampoco imagino o comprendo tanto cómo sería, pero es como si quisiera hacer tipos de videojuego más sencillos que otros tipos, por ejemplo:
- Hago un 3 en línea, un 5 en línea, uno en que se pueda elegir el tamaño del tablero, cantidad de jugadores, condición de victoria...
- Hago un ajedrez en que sólo sólo se tenga 1 rey y 1 torre, agrego más piezas hasta que sea un ajedrez normal, le pongo opciones...
Y así sucesivamente, y todo eso me ayudaría a ver mejor cómo sería un juego mejor, posiblemete una mezcla de varios.
Si pudiera hacer un programa que averigue cómo aprovechar mejor el viento, otro cómo los alimentos crecerían mejor, y así sucesivamente, eso me ayudaría a ver mejor cómo sería el que averigue cómo mejorar al universo, además está muy relacionado.
Pero no veo cómo pasar de adivinar numeritos a eso ¿sería sobre adivinar en qué parte de la pantalla colocar ciertos objetos? ¿pero los efectos que tendría el viento en ellos según sus posiciones cómo los averigua? No veo claro por qué es tan complicado o diferente, si lo es. Es fácil saber si un número cumple ciertas condiciones o no, lo podemos decir, prueba números, mira si cumple las condiciones y ya, pero decir si un código que describa los efectos del viento cumple la condición de ser real, es más complicado, es complicado decir cuales son esas condiciones y para colmo generar códigos como ese que describan los efectos del viento es más dificil que simplemente generar números. Ya, pero debe haber cosas de dificultad intermedia. Repito: ¿Cual es el camino, considerando el orden de dificultad? Podría ser algo así:
¿Qué desafíos hay en los ¿? ? Puede haber más que esa cantidad, claro, esto no es una representación exacta.
O así:
Donde cada punto con color es un tipo de desafío, y puede haber más. Aquí yendo en espiral irían alternándose los tipos de desafíos y la dificultad iría aumentando. Tal vez es posible seguir un camino más directo, representado mediante los puntos suspensivos y como en la imagen anterior, no lo sé. ¿Cuales son esos desafíos?