- Juego de simulación para aprender construyendo paso a paso toda la pila de cómputo, desde transistores hasta una GPU
- Cada etapa está organizada en ACTs, y progresa en el orden de transistor, compuertas lógicas, ALU, procesador, GPU y shaders
- En el ACT 1 se crean compuertas lógicas básicas con NMOS y PMOS, y en el ACT 2 eso se amplía para completar la ALU y el núcleo del procesador
- Las siguientes etapas, software, GPU y shaders, están actualmente en estado COMING SOON y siguen en desarrollo
- Es un proyecto educativo interactivo que permite experimentar de forma integral con diseño de hardware y programación
Resumen del juego Mvidia
- Mvidia es un juego interactivo de aprendizaje en el que el usuario vive paso a paso el proceso de diseñar y construir una GPU directamente
- El juego comienza con transistores y avanza hacia compuertas lógicas, ALU, procesador y GPU
- Cada etapa se divide en un “ACT”, y cada ACT está compuesto por varias tareas de aprendizaje e implementación
- El progreso se muestra con una tasa de finalización (por ejemplo, 0/10 COMPLETED), lo que permite ver visualmente el avance del aprendizaje
ACT 1: Primer día (YOUR FIRST DAY)
- El tema es Transistors → Logic Gates, una etapa en la que se construyen compuertas lógicas básicas usando transistores
- Principales tareas
- 1.1 The Switch: usar NMOS como interruptor
- 1.2 The Other Switch: usar PMOS como interruptor
- 1.3 Two Halves: combinar NMOS y PMOS
- 1.4 NAND It: construir una compuerta NAND
- 1.5 The Dual: construir un par de compuertas lógicas
- 1.6 Truth Tables: crear tablas de verdad
- 1.7 AND Gate, 1.8 OR Gate, 1.9 XOR Gate: implementar compuertas básicas
- 1.10 Choose Wisely: completar una estructura de selección combinando tres compuertas
- Al completar el ACT 1, se desbloquea ACT 2: THE CORE
ACT 2: El núcleo (THE CORE)
- El tema es Gates → ALU → Processor, una etapa en la que se construyen la unidad aritmético-lógica (ALU) y el procesador a partir de compuertas lógicas
- Está compuesto por un total de 34 tareas detalladas, y cada una avanza sobre la base de los resultados de la etapa anterior
- Etapas principales
- 2.1 Half Adder, 2.5 Full Adder: construir circuitos de suma
- 2.3 The Decoder, 2.25 Register File: diseñar estructuras de selección y almacenamiento de datos
- 2.4 The Capacitor, 2.7 1T1C, 2.12 The Sense Amp, 2.17 The Array: construir celdas de memoria y amplificadores de detección
- 2.10 Adding Bytes, 2.13 Hex Racer, 2.15 Bit Twiddling: ampliar operaciones a nivel de bytes
- 2.20 Edge Trigger, 2.21 Refresh, 2.31 Refresh Controller: control de reloj y actualización de memoria
- 2.27 The ALU, 2.30 Fetch, Decode, Execute, 2.32 The Mvidia Core: completar la estructura central del procesador
- 2.33 DRAM Memory, 2.34 Mvidia Core v2: expansión basada en DRAM y actualización del núcleo
- Al completar el ACT 2, se desbloquea ACT 3: THE SOFTWARE
ACT 3: Software (THE SOFTWARE)
- El tema es Programming the Processor, una etapa para programar el procesador ya completado
- Actualmente está en estado COMING SOON, y todavía no se han publicado detalles concretos de las tareas
ACT 4: GPU (THE GPU)
- El tema es Building a Graphics Processor, una etapa para construir un procesador gráfico
- Actualmente está en estado COMING SOON, y más adelante se añadirán tareas relacionadas con el diseño de la arquitectura de la GPU
ACT 5: Shader (THE SHADER)
- El tema es Programming the GPU, una etapa de programación de shaders usando la GPU
- Actualmente está en COMING SOON, con planes de ampliarse después como contenido de aprendizaje sobre programación de GPU
1 comentarios
Opiniones en Hacker News
Es un proyecto realmente genial
Pero en la etapa de truth tables había muchos problemas repetidos y el primer problema tenía un límite de tiempo de solo 1 segundo
La parte de los capacitores también fue confusa. Los capacitores no tienen una compuerta de “enable”, pero en 2.7 (1T1C) hay que construirla directamente con transistores
Pero ahora el primitive ya tiene una compuerta de enable, así que la compuerta NMOS deja de ser necesaria
Me pregunto si lo hicieron con ayuda de LLM. Sobre todo me impresionó el flujo de trabajo para hacer una UI tan buena
La implementación del capacitor me dio muchas vueltas desde el principio. Fue difícil hacer un modelo de capacitor completo que encajara con el sistema de simulación
El bug de truth tables se va a corregir. Las estrellas se consiguen jugando en endless mode
Durante el desarrollo usé mucho Claude. La parte del cableado y la simulación fue difícil, pero los gráficos los terminé dando instrucciones detalladas
Las definiciones de NAND, NOR e Inverter se aprenden después del quiz. Estaría bien cambiar el orden
Además, el temporizador es demasiado corto. Incluso yo, que ya conozco todos los problemas, tuve dificultades para ingresar la respuesta a tiempo. Hasta valdría la pena considerar quitar el temporizador por completo
Si te gusta este juego, también recomiendo Turing Complete
Al final puedes crear tu propia CPU y lenguaje ensamblador. Eso sí, sigue en Early Access y lleva mucho tiempo detenido
Diseñé mixed-signal IC durante más de 10 años y ni siquiera pude pasar el primer nivel
Era un problema donde había que hacer que un NMOS diera una salida de 0 cuando la entrada fuera 1, y un estado Z cuando fuera 0
Había que conectar el drain a la salida, el source a GND y el gate a la entrada
Pero falló la mitad de las pruebas. Después vi que me confundí porque la línea gruesa gris del fondo parecía un cable. Había que añadir la conexión manualmente
Tengo algunos comentarios
La idea es buena, pero como alguien que ya jugó Turing Complete, quería saltarme las primeras etapas e ir a la parte especializada en GPU
Me costó entender intuitivamente un NAND con transistores, así que sentí un muro de dificultad
La variación de dificultad es grande, pero el modo easy estuvo bien
La etapa de refresh del capacitor va demasiado rápido y no pude seguirle el ritmo con el teclado
Cuando el cableado se complica, la legibilidad cae de golpe, y fue incómodo no poder diferenciar colores ni fijar rutas manualmente
En Firefox era difícil seleccionar puntos de conexión, y estaría bien poder hacer pan arrastrando en los bordes de la pantalla
“show solution” se siente más como una pista que como una solución real. Estaría bueno tener una opción para ver más casos de prueba
Es una idea realmente genial
Pero como me faltan conocimientos básicos, no entendí los mensajes del tutorial y me atoré desde el primer nivel
Todavía no termino de captar la compuerta NOT del nivel 3. Aun así, estos puzzles de circuitos triestado se sienten frescos porque son nuevos para mí. Si le agregaran una historia linda, hasta podría funcionar en Steam
Como es una buena idea, la añadí a HN Arcade
Hace falta un botón de “si lo intentaste 10 veces y no sale, muéstrame la respuesta”
Así se puede distinguir si el problema está roto o si el error fue mío
Estaría bien tener nodos temporales para probar salidas
Y mejor aún, ayudaría al aprendizaje que la truth table se actualizara en tiempo real sin necesidad de ejecutar la prueba
Para aprendizaje, estaría bueno que las siglas (nmos, pmos, gnd, vdd) se explicaran al menos una vez completas
La interfaz es limpia y cubre muy bien este nicho educativo
Aunque, incluso desarrollando las siglas, puede que no ayude mucho porque no son tan intuitivas
Ya hice un arreglo temporal, pero pienso volver a añadir una versión polished. Haré que se pueda ver de forma opcional
Es un juego excelente. Para aprendizaje, estaría bueno poder ver una solución modelo o explicación después de completar cada nivel