top of page

Primero uno, luego cinco: así crece este juego 🪨

Foto del escritor: Marcel Dütscher
Marcel Dütscher
27 jul
4 min de lectura

Quien mire nuestra lista de versiones encontrará 29 lanzamientos en poco más de cinco semanas: desde la 0.1.0 del 20 de junio hasta la 0.9.0 de ayer. ¿Cómo se consigue? Desde luego no sentándonos a construir una función terminada de un solo golpe. Construimos por etapas: primero la versión más pequeña que de verdad funcione y, cuando es estable y divertida, la siguiente etapa. Ahora mismo los asteroides lo muestran mejor que nada.


Etapa 1: que existan. Cuando los asteroides llegaron al juego, solo importaba una pregunta: ¿funcionan el aterrizaje, el caminar y la minería en un cuerpo diminuto al que puedes dar la vuelta en un par de minutos? Un asteroide no es un planeta pequeño: tiene su propia clase de tamaño, otra gravedad, otro horizonte. Esa fue la etapa 1, y todo lo demás quedó deliberadamente al margen. Por eso había exactamente un tipo: estaba fijado en el código y, como no tenía lista de superficies posibles, cada columna se cubría de cristal. Todos los asteroides de la galaxia entera tenían el mismo aspecto. Lo único que variaba era la circunferencia y dónde caían los cráteres.


Etapa 2: ahora pueden ser distintos. La etapa dos está terminada desde ayer y llegará al juego con la próxima actualización. Habrá cinco familias de asteroides, y cada roca sortea la suya por probabilidad ponderada. La rocosa es la que carga con el trabajo, con hierro, silicato, cobre y estaño. La metálica es casi metal macizo: titanio por todas partes y, más abajo, cobalto, wolframio y platino. La helada está a −95 °C y lleva volátiles en lugar de metales: carbono, litio, azufre. La carbonosa es negra como el hollín, está llena de cuevas y esconde uranio y diamante muy en el fondo. Y la cristalina, justo lo que antes era todo asteroide, ahora es el hallazgo raro. Además, cada cuerpo recibe su propio relieve de cráteres: densidad, anchura de las cuencas, profundidad, altura de los bordes y lo ondulado que se extiende el polvo entre ellos. Antes eran cinco números fijos para todo el universo, y por eso todos los cuerpos sin aire se veían idénticos. Las lunas también salen ganando, por cierto, porque recorren el mismo camino en el código.


La verdadera recompensa viene después. Lo bonito de una segunda etapa bien construida es la tercera: una sexta familia ya no es un trabajo de programación, sino una entrada en un archivo de datos: nombre, superficies, minerales, frecuencia, listo. “Alguien debería añadir eso” se ha convertido en “podríamos probarlo una tarde”. Eso es lo que hace que la reconstrucción valga la pena.


Por qué siempre lo hacemos así. Tres razones, todas aprendidas por las malas. Primera: no sabes de antemano si una idea es divertida. Una primera versión pequeña se puede probar con Justus en una tarde, y después sabes si la ampliación vale la pena o si la idea en realidad era aburrida. Segunda: un paso pequeño se puede revisar, probar y, si hace falta, deshacer. Una función gigante que toca cincuenta sitios a la vez solo se puede encomendar a la suerte. Tercera, y la más importante para nosotros: a este juego juegan niños. Una función gigante a medias es peor para ellos que una pequeña que funciona con fiabilidad.


El mismo patrón en todas partes. Los bloques fueron cubos al principio; las rampas, las escaleras y las esferas llegaron después, luego el color, luego los biseles finos de los bordes para que nada parezca ya una caja de cartón. Los planetas empezaron como una roca gris; los mares de verdad, los sistemas de cuevas, el clima según la altitud y los volcanes vinieron después, luego los mares helados en los mundos fríos, y ahora los asteroides. En seguridad infantil, al principio solo había un comando de denuncia en el chat, luego sanciones con motivos y tiempos de espera, y por último el modo observador invisible. Y nuestros bandidos, recién publicados, siguen siendo la etapa 1: te golpean mediante un efecto de proximidad y no con proyectiles voladores de verdad. No es un descuido, está escrito en el plan: etapa 2, cuando la etapa 1 se haya probado.


Lo que cuesta trabajar así. Dos cosas, con sinceridad. Primera, los mundos existentes cambian: como el tipo de un cuerpo celeste se recalcula en cada carga y nunca se guarda, los asteroides de tus mundos antiguos recibirán otras familias y otro relieve con la próxima actualización. Tus bloques construidos sobreviven, pero de pronto pueden quedar flotando o incrustados en la roca. Por eso estas cosas siempre van en las notas de la versión. Segunda, incluso la primera etapa hay que construirla de modo que la segunda sea posible. Para los asteroides eso significa: ahora hay exactamente un lugar en el código que responde a “¿esto es un asteroide?”, y una prueba que comprueba, para cada familia generada, que de verdad se clasifica como tal. Si se escapa un solo llamador, vuelve un viejo error desagradable: una roca en la que no puedes extraer ni un solo bloque.


Y otra vez las pruebas nos salvaron. Mientras construíamos las nuevas familias, saltó una comprobación de hace tiempo: asegura que en cada mundo con yacimientos de mineral se pueda llegar a la receta del cable. Tres de las cinco familias nuevas simplemente no tenían cobre: los jugadores se habrían quedado atascados allí en su progresión. Ninguna persona lo notó; lo notó una prueba que alguien escribió semanas antes. Ahora todas las familias llevan cobre y silicato.


Lo siguiente es otra de esas etapas, en algún punto entre las plantas, los animales y los bandidos. Cuál será suele decidirlo Justus. 🌟

Entradas recientes

Ver todo

Comentarios


Ya no es posible comentar esta entrada. Contacta al propietario del sitio para obtener más información.
bottom of page