Gokart.js
React/Ecsy/Cannon/Three game starting point
Install / Use
/learn @nikolajbaer/Gokart.jsREADME
GoKart.js
NOTE: this is very much in alpha stage, more exploring the pure ECS pattern and current web toolkits. Suitable for a jam game at most!
GoKart.js is a web game starter kit based on ECSY.io, Three.js, and Ammo.js, with React examples. This starter provides a game canvas with basic Three.js rendering system, ECSY component structure, and 2D/3D physics support, controls handling, as well as a React component layer to build on, and a HUD data communication layer. Mostly targeted at "action" games.
The GoKart.js Ethos
- Fun > Features
- API > Performance
- Probably not street legal
Try it Out
Core Features
- 3D with physics pre-connected (just customize the entity components classes)
- Mobile touch based gamepads for on-screen controls
- Control system to handle and map controls to "actions" (ala Godot)
- HUD bindings to show realtime game info in React-driven HUD
- TBD - JEST test setup for unit tests on ECS component/systems
- Webpack example
- Docker-Compose file for build env
Using This
You can either look in the examples folder for the demo projects, or Look at the template project.
The template project will show gokart being pulled in as a library, and is currently setup with esbuild rather than webpack.
Also there is a WIP Multiplayer Example
Origin
This started as a web game experiment procgen-bhell, playable at bullethell.nikolaj.dev, where I put these pieces together. Further advanced in our LD48 game, playable at ld48.nikolaj.dev.
Key Libraries
All possible only due to much awesome work:
- ECSY for ECS
- Ammo.js for 3D Physics
- THREE.js for Rendering
- React for UI (soon to be preact)
- MobX for HUD communication
- Planck.js for 2D Physics
- Howler.js for Sound (TBD)
Bundled character model by nikolaj with animations from Mixamo.
Related Skills
node-connect
342.0kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
84.7kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
342.0kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
commit-push-pr
84.7kCommit, push, and open a PR
