Skip to content

Tetration-Lab/muddy-forest-x

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Muddy forest

image

Welcome to Muddy forest the MMO RTS game repo. you can check out the game here

Project Directory Structure

└── packages
    ├── circuits // ZK circuits written by Rust using Arkworks
    │ ├── pkg // WASM bindgen package
    │ ├── out // Pre-generated PK, VK, and Solidity verifier
    │ └── src // Circuit's source code
    ├── client // TS Front end
    │ ├── nginx
    │ ├── public
    │ └── src
    └── contracts // Core game logic
        ├── src
        ├── cache
        ├── out
        ├── abi
        └── types

Currently, the zk verifier of our game is yet implemented in the contracts, so all of the actions in-game is not validated with verifier.

Package Informations

  • Circuit README for more information about ZK circuits, crypto primitive, and proving system we used and instructions to regenerate keys or modify circuits. As well as how clients can access hashing function and other circuit functions through WASM bindgen.
  • Client README for more information about game client, in-game assets handling, and guide for contribution to our front end.

Usage

ENVs

Do this when initilizing the project or if you want to switch the deployment mode.

Local

cp packages/client/.env.loc packages/client/.env

Production (Lattice-chain contracts)

cp packages/client/.env.prod packages/client/.env

Running Nodes And Clients

yarn
yarn dev

ECS

MUD and Entity Component System is the main idea of this repo. if you not familier with it you can read more here

Component

Component is main game data. Read from preexisting component is recommended under this paradigm. Writing into component would require careful consideration since it might break others part of the game.

Attack
Cooldown
Level
Research
BaseBlueprint
Defense
Location
ResearchCount
Blueprint
Destroyed
Name
Resource
BlueprintType
Faction
Owner
Type
Building
Inventor
Position
UpgradeCount

System

AttackSystem
NameSystem
SetupBaseShipBlueprintSystem
BuildBuildingSystem
SetupBaseShipUpgradeBlueprintSystem
BuildShipSystem
ResearchSystem
SetupFactionSystem
InitResourceSystem
SendSystem
SpawnSystem
MoveSystem
SetupBaseBuildingBlueprintSystem
UpgradeShipSystem

Contribution

Ideally longer term we want this project to be open, composable, and permissionless (on some level). But in this early stage anyone can open PR into this repo to contribute to any part of the game. We will consider merge request in similar way to if this project is fully on chain with governance system.

  • System that doesn't require write access to component that you're not the author will be merge without question. (similar to if you directly compose into the game after there's proper system RBAC)
  • System that require write access to component that you're not the author will require concent from component author. (similar to RBAC too.)
  • Change to front end that user can turn on will be merge with out question. (similar to alternative FE or plugin)
  • Change to front end that effect every user will subject to some common sense check.
  • Bug, Doc, Chore will be treat like others open source project.

follow conventional commit specification is recommended but not required.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •