Pular para o conteúdo
← Voltar para projetos

Silicon Jungle

The Silicon Jungle — first-person Three.js survival on an abandoned PCB

#The Silicon Jungle

A first-person 3D survival-action game on an abandoned motherboard overgrown with cyber-jungle. You are miniaturized. Phenom, a corrupt CPU with a microcode defect, hunts you with robots.

Vanilla JavaScript ES modules + Three.js r128. Cel-shaded look, procedural Web Audio SFX, no bundler.

License: MIT Tests

#Play

The game is static files. Serve the repo over HTTP (file:// will not load ES modules).

Recommended — cache-busting server on port 4321:

python3 serve.py

Open http://localhost:4321.

Any other static server works (python3 -m http.server 4321, npx serve ., VS Code Live Server). Prefer serve.py while developing: ES module URLs are cache-hostile in the default Python server.

Requirements: a current Chromium or Firefox; Python 3 for serve.py; Node.js 18+ only if you run tests.

#Tests

npm test
# or
node --test 'js/**/*.test.mjs'

See CONTRIBUTING.md.

#Controls

Action Input
Move W A S D
Look Mouse (pointer lock)
Attack / fire Left mouse
Interact / collect E
Weapon slots 14
Cycle weapons Mouse wheel / Q
Flashlight L or F
Sprint Shift
Jump Space
Build mode B (craft PCB pieces at a workbench first)
Pause / cursor Esc

In build mode: scroll cycles piece type, R yaws, left click places, right click demolishes.

#Features

  • PCB world: copper traces, electrolytic capacitors, DIMM spires, I/O hangars, CPU heatsink citadel
  • Circuit vegetation: jumper vines, resistor trees, thermal-paste moss
  • Toon lighting and a day/night clock with storms
  • Arsenal: circuit knife, LED flashlight, plasma pistol, arc shotgun, bus rifle
  • Spider-Bots, Phenom sentinels, tameable Capdog, Transistor NPCs
  • Crafting, inventory, player-placed floors/walls/doors/stairs/crates/benches
  • Procedural SFX (Web Audio API — no sample pack required)

#Repository layout

miniworld-survival/
├── index.html              # Entry HTML, Three.js CDN, HUD markup
├── serve.py                # Dev HTTP server, no-store cache headers, port 4321
├── css/                    # HUD, overlay, inventory, crafting, dialogue, …
├── js/
│   ├── main.js             # Game loop and composition root
│   ├── config/             # Constants, quality, combat balance
│   ├── core/               # Scene, events, save, registries, survival
│   ├── world/              # Terrain, biomes, chunks, structures, weather
│   ├── building/           # Player base grid, catalog, meshes
│   ├── entities/           # Player, inventory, enemies, NPCs, companions
│   ├── combat/             # Damage, LoS, projectiles
│   ├── weapons/            # Weapon system and strategies
│   ├── ui/                 # HUD, menus, compass
│   └── utils/              # Collision, particles, culling
├── docs/                   # Design notes (mostly Portuguese) — see docs/README.md
└── js/**/*.test.mjs        # node:test suites next to the modules they cover

Design and architecture notes: docs/README.md.

#Contributing

Read CONTRIBUTING.md. This project follows the Contributor Covenant. Security reports: SECURITY.md.

Please do not edit the GDD docs/visao_futuro_mundo_aberto.md or docs/mundo-aberto/plano_completo.md unless maintainers agree on an issue first.

#License

MIT. Third-party notices (Three.js, fonts): NOTICE.md.

#Credits

  • Three.js r128 — MIT, loaded from CDN
  • Google Fonts — Chakra Petch, Orbitron, Share Tech Mono (OFL)

Nova versão disponível.