Giter VIP home page Giter VIP logo

raytran / protochess Goto Github PK

View Code? Open in Web Editor NEW
103.0 9.0 8.0 2.53 MB

Online multiplayer chess website that lets you build custom pieces/boards. Written in Svelte + Rust.

Home Page: https://protochess.com/

License: GNU General Public License v3.0

HTML 0.15% Rust 64.61% JavaScript 1.80% Dockerfile 0.29% Shell 0.11% CSS 0.32% Svelte 32.73%
chess rust alpha-beta-algorithm svelte webassembly

protochess's Introduction

Protochess

Protochess

Protochess

Protochess

https://protochess.com/

Protochess is an online chess website designed to let you customize your own chess boards/pieces. Want a piece that can move like a knight + queen? Sure. Want to play on a 16x16 sized board? Impractical but you can do it!

Built with

Rust for the backend/chess logic/multiplayer server

Svelte for the single page app frontend

Project structure

The frontend/static website is contained in protochess-front.

The backend multiplayer websocket server is in protochess-server-rs.

Common shared data structures between the front/backend are in protochess-common

The actual chess logic/chess engine is in protochess-engine-rs, with bindings to WebAssembly contained in protochess-engine-wasm.

Running locally with docker

Included in the base directory is a Dockerfile that compiles the frontend and launches the webserver.

git clone https://github.com/raytran/protochess
cd protochess
docker build -t protochess .
docker run -p 3030:3030 protochess

This will launch the chess page at localhost:3030

Contact

You can email me (Raymond Tran) here: [email protected]

protochess's People

Contributors

ianfab avatar raytran avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

protochess's Issues

More chess piece movement options

The current chess piece creator is quite good, but there are a few more options I'd like it to support

  • Initial moves. Pawns can move 2 spaces only in their first move, and you can't recreate that with the piece editor
  • Capturing without moving. It may be interesting to have pieces that can "Shoot" other pieces.

Here is a piece maker for the game Chess Evolved Online that might give some other ideas: http://igniam.xyz/tools/ceo-piecemaker.html

i can't run this thing locally

everytime is fine until "=> ERROR [builder 10/10] RUN npm run build"


[builder 10/10] RUN npm run build:
#14 0.605
#14 0.605 > [email protected] build /usr/src/protochess/protochess-front
#14 0.605 > npm run routify -- -b && rollup -c
#14 0.605
#14 0.780
#14 0.780 > [email protected] routify /usr/src/protochess/protochess-front
#14 0.780 > routify -D "-b"
#14 0.780
#14 0.958 [Routify] Generated routes in 0 ms
#14 1.209 [!] Error: Package subpath './compiler.js' is not defined by "exports" in /usr/src/protochess/protochess-front/node_modules/svelte/package.json
#14 1.209 Error [ERR_PACKAGE_PATH_NOT_EXPORTED]: Package subpath './compiler.js' is not defined by "exports" in /usr/src/protochess/protochess-front/node_modules/svelte/package.json
#14 1.209 at new NodeError (internal/errors.js:322:7)
#14 1.209 at throwExportsNotFound (internal/modules/esm/resolve.js:332:9)
#14 1.209 at packageExportsResolve (internal/modules/esm/resolve.js:565:3)
#14 1.209 at resolveExports (internal/modules/cjs/loader.js:478:36)
#14 1.209 at Function.Module._findPath (internal/modules/cjs/loader.js:518:31)
#14 1.209 at Function.Module._resolveFilename (internal/modules/cjs/loader.js:917:27)
#14 1.209 at Function.Module._load (internal/modules/cjs/loader.js:774:27)
#14 1.209 at Module.require (internal/modules/cjs/loader.js:1003:19)
#14 1.209 at require (internal/modules/cjs/helpers.js:107:18)
#14 1.209 at Object. (/usr/src/protochess/protochess-front/node_modules/rollup-plugin-svelte/index.js:11:4)
#14 1.209
#14 1.215 npm ERR! code ELIFECYCLE
#14 1.216 npm ERR! errno 1
#14 1.220 npm ERR! [email protected] build: npm run routify -- -b && rollup -c
#14 1.220 npm ERR! Exit status 1
#14 1.220 npm ERR!
#14 1.221 npm ERR! Failed at the [email protected] build script.
#14 1.221 npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
#14 1.225
#14 1.225 npm ERR! A complete log of this run can be found in:
#14 1.225 npm ERR! /root/.npm/_logs/2023-04-11T18_04_40_816Z-debug.log


executor failed running [/bin/sh -c npm run build]: exit code: 1

Cant open protochess.com

I am trying to open protochess.com. Was already trying to open it for 9 hours but its still giving gateway time_out error

Load from JSON

Since it is possible to see the JSON, could it also be possible to enter JSON data to load previous rules?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.