Skip to content

A POC of skystrife with Tevm optimistic updates

License

Notifications You must be signed in to change notification settings

evmts/skystrife-tevm

 
 

Repository files navigation

discord License: MIT

sky strife cloud background

Sky Strife is an onchain RTS game built on the MUD framework.

Mission

Sky Strife's purpose is to explore the limits of what is possible in an onchain game, with the eventual goal of becoming an Autonomous World.

Project Structure

Sky Strife is broken into several sub-packages. Here are the packages that are essential to run the game:

  1. packages/client: Used to render and play the game in a browser.
  2. packages/contracts: Contains all of the MUD contracts that make up a single Sky Strife world.
  3. packages/art: Responsible for storing and exporting assets for Sky Strife. This also includes tooling for the Tiled map editor (map making tilesets, Tiled map files, and a plugin to export maps that are compatible with our template system).
  4. packages/ecs-browser: Sidebar ECS browser for debugging component state and manually running queries. Used to be part of MUD but was moved back into Sky Strife as MUD development diverged from it.
  5. packages/phaserx: A wrapper for Phaser 3 that was created at Lattice. Mainly used for strong types and easier setup. Vendored from the official MUD repo as we've made some changes to it.

Initial Dev Setup

Prerequisites

foundry - Used to run your local node, run tests, and deploy contracts. Install

Steps

  1. Install latest forge using foundryup (see foundry docs)
  2. Run pnpm in the base directory to install all dependencies and compile contracts.
  3. Run pnpm dev to start your local node, deploy contracts, and start the client.

Using Local MUD

If you want to make live changes to MUD while developing you will have to link the local MUD package to the client and contracts packages.

  1. Clone the MUD repo locally.
  2. Run pnpm mud set-version --link <relative_path_to_mud_install> in your local MUD repo.

Live Deployment

Client

The client is deployed automatically when a commit is pushed to any branch. By default https://playtest.skystrife.xyz points to the latest playtest branch commit. The client is hosted on Cloudflare Pages. See the github action description for details.

Contracts

Contract deployment is currently manual.

To deploy to the Sky Strife testnet run pnpm deploy:redstone-holesky in packages/contracts. After deployment has finished, you'll need to make a commit with the worlds.json changes and open a PR to the develop branch. The live client uses this to determine which world to connect to.

About

A POC of skystrife with Tevm optimistic updates

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 84.2%
  • Solidity 13.9%
  • JavaScript 0.8%
  • Shell 0.4%
  • Lua 0.3%
  • CSS 0.2%
  • Other 0.2%