- Jogo em formato de simulação para aprender construindo passo a passo toda a pilha de computação, dos transistores à GPU
- Cada etapa é organizada em ACTs, evoluindo na ordem de transistores, portas lógicas, ALU, processador, GPU e shader
- No ACT 1, o jogador cria portas lógicas básicas com NMOS e PMOS; no ACT 2, expande isso para completar a ALU e o núcleo do processador
- As etapas seguintes, de software, GPU e shader, estão atualmente em desenvolvimento, com status COMING SOON
- Trata-se de um projeto interativo educacional que permite experimentar de forma integrada design de hardware e programação
Visão geral do jogo Mvidia
- Mvidia é um jogo interativo de aprendizado em que o usuário vivencia, passo a passo, o processo de projetar e construir uma GPU diretamente
- O jogo começa nos transistores e evolui para portas lógicas, ALU, processador e GPU
- Cada etapa é dividida em um “ACT”, e cada ACT é composto por várias tarefas de aprendizado e implementação
- O progresso é exibido no formato de taxa de conclusão (ex.: 0/10 COMPLETED), permitindo verificar visualmente o avanço do aprendizado
ACT 1: Seu primeiro dia (YOUR FIRST DAY)
- O tema é Transistors → Logic Gates, etapa em que portas lógicas básicas são construídas usando transistores
- Principais tarefas
- 1.1 The Switch: usar NMOS como chave
- 1.2 The Other Switch: usar PMOS como chave
- 1.3 Two Halves: combinar NMOS e PMOS
- 1.4 NAND It: construir uma porta NAND
- 1.5 The Dual: construir um par de portas lógicas
- 1.6 Truth Tables: criar tabelas-verdade
- 1.7 AND Gate, 1.8 OR Gate, 1.9 XOR Gate: implementar portas básicas
- 1.10 Choose Wisely: completar uma estrutura de seleção combinando três portas
- Ao concluir o ACT 1, ACT 2: THE CORE é desbloqueado
ACT 2: O núcleo (THE CORE)
- O tema é Gates → ALU → Processor, etapa em que portas lógicas são usadas para construir a unidade lógico-aritmética (ALU) e o processador
- É composto por 34 tarefas detalhadas, e cada uma avança com base nos resultados da etapa anterior
- Principais etapas
- 2.1 Half Adder, 2.5 Full Adder: construção de circuitos de soma
- 2.3 The Decoder, 2.25 Register File: projeto de estruturas de seleção e armazenamento de dados
- 2.4 The Capacitor, 2.7 1T1C, 2.12 The Sense Amp, 2.17 The Array: construção de células de memória e amplificador de detecção
- 2.10 Adding Bytes, 2.13 Hex Racer, 2.15 Bit Twiddling: expansão para operações em nível de byte
- 2.20 Edge Trigger, 2.21 Refresh, 2.31 Refresh Controller: controle de clock e atualização de memória
- 2.27 The ALU, 2.30 Fetch, Decode, Execute, 2.32 The Mvidia Core: conclusão da estrutura central do processador
- 2.33 DRAM Memory, 2.34 Mvidia Core v2: expansão baseada em DRAM e upgrade do núcleo
- Ao concluir o ACT 2, ACT 3: THE SOFTWARE é desbloqueado
ACT 3: Software (THE SOFTWARE)
- O tema é Programming the Processor, etapa de programar o processador concluído
- Atualmente está em COMING SOON, e os detalhes das tarefas ainda não foram divulgados
ACT 4: GPU (THE GPU)
- O tema é Building a Graphics Processor, etapa de construir o processador gráfico
- Atualmente está em COMING SOON, e futuramente serão adicionadas tarefas relacionadas ao projeto da arquitetura da GPU
ACT 5: Shader (THE SHADER)
- O tema é Programming the GPU, etapa de programação de shaders usando a GPU
- Atualmente está em COMING SOON, com previsão de expansão futura como conteúdo de aprendizado de programação para GPU
1 comentários
Comentários no Hacker News
Projeto realmente muito legal
Mas na etapa de truth tables havia muitos problemas repetidos, e o primeiro problema tinha limite de tempo de apenas 1 segundo
A parte dos capacitores também foi confusa. O capacitor não tem porta de
enable, então em 2.7 (1T1C) isso deveria ser feito diretamente com um transistorSó que agora o primitive já tem uma porta de
enable, então a porta NMOS acaba não sendo necessáriaFiquei curioso se isso foi feito com ajuda de LLM. Principalmente o workflow para criar uma UI tão boa foi impressionante
enablena fase 2.4. Isso foi necessário por causa da estrutura do sistema de simulaçãoA implementação do capacitor deu bastante trabalho desde o início. Foi difícil criar um modelo de capacitor completo que se encaixasse no sistema de simulação
O bug das truth tables será corrigido. As estrelas só podem ser obtidas jogando no endless mode
Usei bastante o Claude durante o desenvolvimento. A parte de fiação e simulação foi difícil, mas os gráficos ficaram prontos com instruções bem detalhadas
As definições de NAND, NOR e Inverter aparecem só depois do quiz. Seria bom trocar a ordem
Além disso, o timer é curto demais. Mesmo eu, que já sabia todas as respostas, tive dificuldade para digitar a tempo. Vale até considerar remover o timer por completo
Se você gostou deste jogo, também recomendo Turing Complete
No final, você pode criar sua própria CPU e linguagem assembly. Só que ele ainda está em Early Access e parece parado há bastante tempo
Trabalhei por mais de 10 anos projetando mixed-signal IC, mas não consegui passar nem da primeira fase
Era um problema em que o NMOS precisava fazer a saída ser 0 quando a entrada fosse 1, e estado Z quando fosse 0
Era preciso conectar o dreno à saída, a fonte ao GND e a porta à entrada
Mas metade dos testes falhou. Depois percebi que as linhas grossas cinzas do fundo pareciam fios e me confundiram. Era preciso adicionar manualmente a conexão
Tenho alguns feedbacks
A ideia é boa, mas como alguém que já jogou Turing Complete, eu queria pular as fases iniciais e ir direto para a parte especializada em GPU
Foi difícil entender NAND de forma intuitiva a partir de transistores, então senti uma barreira de dificuldade
A variação de dificuldade é grande, mas o modo easy estava bom
A fase de refresh do capacitor é rápida demais e eu não consegui acompanhar no teclado
Quando a fiação fica complexa, a legibilidade cai muito rápido, e foi incômodo não haver distinção por cores nem roteamento manual
No Firefox, selecionar pontos de conexão não funcionou bem, e seria bom poder mover a tela (pan) arrastando pelas bordas com o mouse
“show solution” está mais para dica do que para solução de fato. Seria bom ter uma opção para mostrar mais casos de teste
Ideia realmente muito legal
Mas eu não tinha conhecimento básico suficiente para entender as mensagens do tutorial e fiquei travado já na primeira fase
Ainda não peguei o jeito da porta NOT da fase 3. Mesmo assim, esses quebra-cabeças de circuitos de 3 estados são novidade para mim e achei bem interessante. Se colocar uma historinha fofa por cima, talvez funcione até no Steam
A ideia é boa, então adicionei ao HN Arcade
Precisa de um botão de “mostrar a resposta se eu falhar 10 vezes”
Assim dá para distinguir se o problema está quebrado ou se o erro é meu
Seria bom ter um nó temporário para testar a saída
Melhor ainda, se a truth table fosse atualizada em tempo real sem precisar rodar o teste, isso ajudaria no aprendizado
Para fins de aprendizado, seria bom explicar por extenso as siglas (nmos, pmos, gnd, vdd) pelo menos uma vez
A interface é limpa e preenche bem esse nicho educacional
Mas, mesmo escrevendo as siglas por extenso, talvez isso não ajude tanto porque ainda não seriam intuitivas
Fiz um ajuste temporário, mas pretendo adicionar de novo numa versão mais polished. Vou deixar isso como opcional
Jogo excelente. Para aprendizado, seria bom poder ver uma solução modelo ou explicação depois de concluir cada fase