Giter Club home page Giter Club logo

royalur.net-backend's Introduction

This is an archive from an old version of the website. We have since rewritten the website from the ground up using more modern technologies. However, we will keep this repository up for any who are interested! The new version of the website is no longer open-source.


๐ŸŽฒ RoyalUr.net Game Server

A website for playing the ancient Mesopotamian board game, The Royal Game of Ur!

This repository holds the server code for RoyalUr.net, https://royalur.net. The client code of RoyalUr.net can be found in the RoyalUrClient repository.

RoyalUr.net was created based upon the ancient Sumerian board game, The Royal Game of Ur, in the British Museum. The original board game can be dated to 2600 BC, and was discovered in a royal tomb in the city-state of Ur in ancient Mesopotamia. Learn more about the game on Wikipedia, or watch a fun match between Tom Scott and Irving Finkel on YouTube!

The game also has a Discord and a Reddit that you might want to check out! The Discord can be used to chat about the game, find worthy opponents to challenge, discuss the development of RoyalUr.net, and it also contains a changelog with a summary of the changes being made to the website.

๐Ÿ–ฅ๏ธ Compilation

This project uses Maven, and so can be compiled using the command, mvn install.

This will produce a jar file containing the servers dependencies in the /target/ directory.

โš™๏ธ Configuration

The RoyalUrServer uses a JSON config file for its settings. If you wish to use a config file, the ROYAL_UR_SERVER_CONFIG environment variable should be set with a file location in which to generate and read the config file from.

๐Ÿ“ License

This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License along with this program. If not, see https://www.gnu.org/licenses/.

royalur.net-backend's People

Contributors

dependabot[bot] avatar fuzzymannerz avatar sothatsit avatar

Stargazers

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

Watchers

 avatar  avatar

royalur.net-backend's Issues

Announcements

There should be a way to announce things to everyone playing an online game. This would be useful for when the server is being restarted a message such as "The server will be restarted in 30 minutes" can be displayed.

Persist games across restarts

Games should be saved to a database so that they can be persisted across restarts. This will make updating the game server not require aborting any games.

Close users old games if they start a new online game

Currently a user is able to close out of one game, and then join another. This causes issues because although the packets sent by the user will be forwarded to their active game, they are able to receive packets from all their existing games. Once a user starts a new game, it probably makes the most sense to just stop their old games.

This needs to be tested as well though to make sure that starting multiple games across multiple tabs should still be possible.

Write a README

Currently there is no README for this repository, one should be written.

It should contain a description of the repository, how to compile and run the server, and some pointers on how to navigate the repository.

Connection status packets

Players should be notified if their opponent loses connection to the game. Otherwise they could be left just waiting.

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.