< Volver 

Blocks Simulator

2021-04-11

Un sandbox de construcción en Roblox de finales de 2021. Las herramientas para crear, escalar, mover, rotar, pintar y borrar bloques las hice yo solo, con meses de investigar y hacer cuentas.

LuauRobloxGameplayUI
Ir a vista técnica

Nota

No me interesa mejorar este projecto, lo dejaré tal cual como un punto de referencia de mis habilidades en programación.

Herramientas de construcción hechas a mano

Una demostración rapida de todas las herramientas de Blocks Simulator

Blocks Simulator es un juego de construcción en Roblox que hice a finales de 2021. Entras, pones bloques y armas lo que quieras. Para ese momento ya programaba con mejores prácticas que en mis primeros proyectos, aunque el código igual quedó con bastante deuda técnica y partes de espagueti. Lo que más me gusta del juego son las herramientas de construcción, porque las hice yo solo y me tomaron meses de investigar y de hacer cuentas.

Las herramientas

Son seis y cada una tiene su tecla: Q para construir, E para borrar, Z para escalar, X para mover, C para rotar y F para pintar. La de construir abre una ventana donde eliges la forma (bloque, cilindro o esfera), el tipo (bloque, cuña, esquina o truss), uno de 28 materiales, la transparencia, la reflectancia y si el bloque queda anclado o le cae la física encima. Mientras apuntas, un bloque fantasma sigue al mouse ajustado a la cuadrícula y se pega a la cara de lo que estés mirando.

La de escalar es la que más me enorgullece. Si estiras la cara de arriba de un bloque, crece solo hacia arriba y la de abajo se queda quieta. Parece obvio, pero Roblox cambia el tamaño desde el centro, así que cada vez que el bloque crece hay que correrlo la mitad de lo que creció hacia esa cara, y eso tiene que funcionar aunque el bloque esté rotado. Se puede escalar de a 0,01 hasta de a 4 studs, o escribir el tamaño exacto en la ventana.

Una casita de bloques de colores con un cubo verde seleccionado y la ventana Scale Manager con X, Y y Z en 4 e Increment en 0,5

Mover funciona sobre los ejes del propio bloque, con saltos de hasta 255 studs. Rotar usa arcos y salta de a 15 grados si no le pones otro valor, y en ese script dejé un comentario que dice “this rotation system was too complex for me to do, #stackoverflow4ever”. Para pintar hay una rueda de color con RGB, HSV, hexadecimal y cinco colores guardados.

El Color Manager: rueda de color, campos RGB y HSV, código hexadecimal y cinco colores guardados

Como un sistema operativo

Por alguna razón me dio por armar todo como si fuera un computador. Cada herramienta es un “programa” con nombre de ejecutable (new.exe, Transform.exe, Color.exe, Delete.exe), con un Main.lua como punto de entrada y las secciones de cada ventana en carpetas que terminan en .dll. Las ventanas se minimizan y se maximizan, y salen popups como “mk.exe: Desea instalar esta herramienta? build.exe”. Por debajo hay un framework mío, SolarFramework, con un módulo de matemática (Tena) y otro de permisos por bloque (Solar3).

La deuda

El script de escalar repite casi el mismo bloque de 50 líneas seis veces, una por cada cara. La opción Protected guarda en el bloque quién es el dueño, pero ningún handler del servidor lo revisa, así que cualquiera puede mover lo tuyo. Además, cada jugador tiene una carpeta en el Workspace con su nombre y el sufijo .reg, donde quedan sus bloques y algunos ajustes, y buena parte del juego se queda esperando a que esa carpeta exista antes de arrancar.

Los artículos técnicos de cada herramienta, con la matemática y los bugs que le encuentro hoy, están en la versión de portafolio.