Skip to content

EverCrawl/game

Repository files navigation

EverCrawl

Monorepo for the game client, server, schema definitions and assets.

The game is available live at http://game.jan-prochazka.eu/.

Controls

  • A/D: Move left/right
  • Space: Jump
  • W/S: Climb ladders
  • X: Drop from ladder
  • S: Drop from platform
  • F: Use portal

The game heavily utilizes the ECS paradigm (through the use of μECS) and currently consists only of basic rendering, networking and physics.

  • Networking
    • WebSockets are the underlying transport protocol
    • Data is serialized to a custom binary format (further described in packetc).
    • Entity state is only sent if it's been updated
  • Physics
    • AABB collision
    • Slopes (fixed angles)
    • One-way platforms
    • Ladders
  • Rendering
    • Plain WebGL, no frameworks
    • Primarily batched
    • Animated sprites
    • Map tiles, also optionally animated

Running locally

Ensure Node.js 15+ is installed.

Due to the dependency on uWebSockets.js, and the author's unwillingess to support NPM, yarn is required to install the required dependencies.

> yarn

Run the following two commands in separate shells:

> yarn dev:client
> yarn dev:server