Skip to content

nikolajbaer/gokart.js

Repository files navigation

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

Try Out the Demo

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:

Bundled character model by nikolaj with animations from Mixamo.

About

React/Ecsy/Cannon/Three game starting point

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages