Fiz um MMO que roda direto no terminal!

Há cerca de dois anos, eu trabalhava em uma startup 100% presencial que estava praticamente falindo.
Chegou um ponto em que simplesmente não havia mais o que fazer — todo dia era aquele teatro de abrir o VSCode e fingir que estava programando, só pra parecer produtivo.
Um dia pensei:
“Poxa, se pelo menos desse pra jogar algo aqui no terminal, o tempo passaria mais rápido...”
E foi assim que tive a ideia de criar um jogo dentro do terminal — afinal, pra muita gente “programador = tela preta com letras verdes”, então ninguém desconfiaria rs.
Inicialmente, seria só um Snake Game, mas por um erro de código acabei fazendo o personagem se mover livremente.
Gostei da ideia e comecei a evoluir: implementei geração procedural de dungeons, combate por turnos, loot, e até um hub de cidade com NPCs.
Abandonei o projeto por um tempo… mas no fim de semana passado resolvi ressuscitá-lo.
E o que era só um joguinho virou um MMORPG completo no terminal, com multiplayer em tempo real, skills, ranking, mercador, housing editor, banco, crafting, e muito mais.
⚔️ CmdMMO
O CmdMMO é um roguelike MMO multiplayer em tempo real, totalmente jogável no terminal.
Você pode explorar dungeons geradas proceduralmente, enfrentar inimigos e chefes, upar de nível, cultivar sua fazenda, e até comprar propriedades na cidade.
🧱 Principais recursos
- Multiplayer em tempo real com Socket.IO
- Classes jogáveis: Rogue, Knight e Wizard
- Dungeons geradas proceduralmente
- Combate por turnos com críticos e esquivas
- Sistema de progressão com XP, níveis e loot
- Hub de cidade com NPCs interativos
- Fazenda e crafting (plante, colha e troque por poções)
- Housing editor — personalize sua casa em ASCII
- Banco persistente de ouro e itens
- Ranking global, propriedades, mercador e portais entre mapas
🖼️ Prints
Seleção de classes

City Hub

Sistema de combate

Dungeon

Sistema de compra de fazenda

House Editor

Inventário

Sistema de party

Skill Points

Sistema de fazenda

⚙️ Stack técnica
- Backend: Node.js + Express + Socket.IO
- Frontend: Python + Blessed + python-socketio
- Renderização: ASCII no terminal, com UI interativa
- Arquitetura modular: o cliente usa a engine GlyphEngine, feita sob medida para jogos no terminal.
🔥 GlyphEngine
Durante o desenvolvimento do CmdMMO, percebi que boa parte do código poderia ser reaproveitada como uma engine — e foi assim que nasceu a GlyphEngine.
Ela é uma engine em Python voltada para jogos top-down em ASCII, com foco em modularidade e facilidade de uso.
Serve tanto pra criar roguelikes quanto RPGs ou simuladores simples no terminal.
🧩 Recursos principais
- Loop de jogo completo (update/draw)
- Sistema de mapas com portais, transições e colisão
- Geração procedural com algoritmo de backtracking
- Gerenciamento de estado (inventário, fazenda, quests, etc.)
- UI interativa com menus, seletores e janelas de NPC
- Editor de grid para construção de níveis e layouts
- Sistema de player com XP, níveis, atributos e inventário
- Base para jogos multiplayer ASCII
from engine.core.game_client import GameClient
from engine.core.player import Player
from engine.maps.map import Map
A GlyphEngine é usada internamente pelo CmdMMO, mas pode ser utilizada para criar qualquer outro jogo 2D no terminal — com renderização via Blessed e sistema modular.
🚀 Como testar
git clone https://github.com/jonatasfernandespimenta/CmdMMO.git
cd CmdMMO/server && npm install
cd ..
pip install -r requirements.txt
# Inicie o servidor
cd server && node index.js
# E o cliente (sudo é necessário por causa do teclado)
sudo python3 -m client.game.main
Para jogar com amigos:
- Certifiquem-se de estar conectados ao mesmo servidor/IP
- Atualizem o endereço do servidor em
client/game/server.py - Rodem o cliente em terminais separados
💡 Contribua
O projeto ainda está evoluindo — há espaço para novas:
- Classes e habilidades
- Tipos de inimigos e itens
- Mecânicas de PvP e arenas
- NPCs e quests dinâmicas
- Eventos e bosses sazonais
🧠 Quer contribuir?
Abra um PR, issue ou sugestão nos repositórios:
- 🎮 Jogo: CmdMMO
- ⚙️ Engine: GlyphEngine
💬 Fechando
Esse projeto nasceu do tédio, mas acabou virando um dos meus playgrounds favoritos pra experimentar ideias de game design.
Se você curte programação, ASCII art e multiplayer em terminal, acho que vai se divertir bastante testando — e quem sabe contribuindo também :)