Skip to content

bcanfield/GoTime

Repository files navigation

GoTime Logo

GoTime

tests license

GoTime is a multiplayer Go game built with SpacetimeDB.

Open in Github Codespaces Open in CodeSandbox Open in VS Code

✨ Features

  • Fast Multiplayer: Built with SpacetimeDB for rapid state updates and low-latency interactions
  • Real-Time Game Analysis: Dynamic board analysis, scoring (both area & territory methods), and move legality checks
  • Modern Tech Stack: React frontend and Rust backend

🚀 Quick Start

# Clone the repository
git clone https://github.com/bcanfield/GoTime.git
cd GoTime

# Install dependencies
npm install

# Start SpacetimeDB
npm run db:start

# Publish the module to SpacetimeDB
npm run db:publish

# Start the UI
npm run client:dev

##### Optional

# To see the SpacetimeDB logs:
npm run db:logs

# To re-generate the Typescript bindings
npm run generate

📖 About the Game

GoTime is a proof-of-concept implementation of the ancient board game Go. It demonstrates how SpacetimeDB can be used to create responsive multiplayer experiences with complex game logic.

The repository contains:

  • A client app written in React
  • A server app written in Rust

For the rules of Go, see our GO_RULES.md document or visit one of the many excellent online resources for learning the game.

🛠️ Development Guide

Dev Container Support

This project uses a dev container for a consistent development environment with Rust, Node.js, and the SpacetimeDB CLI pre-installed. Open the project in GitHub Codespaces or CodeSandbox using the badges above.

Manual Setup

If you prefer to develop locally, make sure you have:

  • Node.js (v16+)
  • Rust (latest stable)
  • SpacetimeDB CLI

🤝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

📝 License

This project is open source and available under the MIT License.

About

SpacetimeDB implementation of the game "Go" (Baduk)

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages