riichinomics / autotable

An online mahjong table
http://autotable.riichi.moe
Other
15 stars 6 forks source link

riichi.moe Fork

This is a fork of the original autotable project. Extra features include:

The documentation below is somewhat out of date, but you can still get the project running locally with make as described.

Autotable

Autotable is a tabletop simulator for Riichi Mahjong.

Running

This repository uses Git LFS to track large files. To clone all files, you need to install it first.

You need the following utilities installed and present in PATH:

Run:

Deployment

The frontend can be served as static files. Run make build.

The server is a WebSocket application. You can run it on the server listening on localhost, and use your HTTP server to expose it to the world.

By default, the frontend should be under /autotable/ and server under /autotable/ws.

Here is what I use for nginx:

location /autotable/ {
    expires 0d;
    alias <path_to_autotable>/dist/;
}

location /autotable/ws {
    proxy_pass http://127.0.0.1:1235/;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";

    # Prevent dropping idle connections
    proxy_read_timeout 7d;
}

License

All of my code is licensed under MIT. See COPYING.

However, I'm also using external assets, licensed under CC licenses. Note that the tile images are under a Non-Commercial license.

Contributions

This is a very opinionated project. I will be grateful for contributions that fix bugs or improve player experience. However, I will probably not want to merge any of:

However, please don't feel discouraged from making these changes in your own fork! While I want to do my thing here, I would be very interested to see in what directions people take the project.

Development

See the blog post for explanation of many technical decisions: https://pwmarcz.pl/blog/autotable/

The main parts are:

Some terminology: