https://github.com/suurjaak/deckathlon
a card game website engine
https://github.com/suurjaak/deckathlon
card-game card-games cardgame cards game-engine
Last synced: 2 months ago
JSON representation
a card game website engine
- Host: GitHub
- URL: https://github.com/suurjaak/deckathlon
- Owner: suurjaak
- License: other
- Created: 2020-09-23T18:43:45.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2021-01-03T20:37:58.000Z (over 4 years ago)
- Last Synced: 2024-12-31T05:43:37.801Z (4 months ago)
- Topics: card-game, card-games, cardgame, cards, game-engine
- Language: Python
- Homepage: https://suurjaak.github.io/Deckathlon/
- Size: 3.08 MB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
Deckathlon
==========A card game website engine. Users can register an account, create their own
game table, or join an existing one as player or spectator.Comes installed with a few game templates, more can be added.
[](https://raw.github.com/suurjaak/Deckathlon/gh-pages/img/screen_thousand.png)
Installation
------------Install Python and pip, run `pip install -r requirements.txt` in deckathlon folder.
By default, Deckathlon uses SQLite as database engine, created automatically.
To use Postgres, create the database, populate it with `deckathlon/etc/db/postgres.sql`,
and add at least the following to `deckathlon/etc/deckatlhon.ini`:DbEngine = "postgres"
DbOpts.database = "myname"
DbOpts.username = "myuser"Running The Program
-------------------Deckathlon can be run as a stand-alone web server:
python -m deckathlon
Or under a WSGI-supporting web server like Apache, see `deckathlon.wsgi`.
Games
-----Full game descriptions at https://suurjaak.github.io/Deckathlon/games.html
Game engine is described in [ENGINE.md](ENGINE.md).
#### Thousand
A trick-taking game for 3-4 players, with a bidding phase and a playing phase.
Played with a deck of 24 cards, from nines to aces. The goal is to be the
first player who reaches 1000 points.Very engaging, highly popular in Eastern Europe. Can last for hours,
rarely less than one hour.#### Arschloch
A game for 3-7 players, with winners and losers exchanging cards in consecutive games.
Played with a full deck of 55 cards, all cards from twos to aces to jokers. In each
game set, the goal is to empty own hand first; player finishing first is the
winner and player finishing last the loser.Simple rules, highly addictive and engaging. Game series can last for hours,
or be had as a quick entertainment during a break.Known by many other names: Asshole, Capitalism, President, Scum.
#### Five Sheets
A simple game for 2-8 players, with players needing to kill the previous
card and play a card for the next player to kill. Played with a deck of 52
cards, from twos to aces. The goal is to empty own hand first; player finishing
first is the winner and player finishing last the loser.Localization
------------Uses Portable Object (.po) files, residing under `deckathlon/etc/i18n`,
language selection specified in configuration.Game templates can specify their own translations, both for template properties
like name and description plus any translation strings, in table column `templates.i18n`,
as `{language code: {"template.propertyname" or text: translation}}`.Configuration
-------------Default configuration file is `deckathlon/etc/deckatlhon.ini`, can be overridden
with environment variable DECKATHLONCONF specifying another path.SQLite parameters:
DbEngine = "sqlite"
DbOpts = "path to SQLite db"Postgres parameters:
DbEngine = "postgres"
DbOpts.database = "myname"
DbOpts.username = "myuser"
DbOpts.password = "mypass"
DbOpts.host = "localhost"
DbOpts.port = 5432
DbOpts.minconn = 1
DbOpts.maxconn = 4Web server parameters:
ServerIP = "0.0.0.0"
ServerPort = 9000
ServerPrefix = "extra prefix if using reverse proxy"
ServerBackend = "wsgiref or paste or cherrypy etc if running as stand-alone"
SessionPath = "path to login session files"
Quiet = TrueLocalization parameters:
Languages = ["en", "et"]
DefaultLanguage = "en"Logging parameters:
LogLevel = "DEBUG"
LogPath = "path to log file"
ErrorLogPath = "path to error log file if separate from log file"Game engine parameters:
OfflineInterval = 180 # Seconds after which player is considered offline
OnlineUpdateInterval = 30 # Seconds between updating player online status
PollInterval = 1 # Seconds between data update poll requestsSource Dependencies
-------------------Deckathlon needs Python 2.7,
and the following 3rd-party Python packages:- Bottle (https://bottlepy.org, MIT license)
- beaker (https://pypi.org/project/beaker, BSD license)
- polib (https://pypi.org/project/polib, MIT license)
- pytz (https://pypi.org/project/pytz, MIT license)If using Postgres database engine:
- psycopg2 (https://pypi.org/project/psycopg2, LGPL)Attribution
===========Includes font DejaVu Sans, CC BY-NC-ND 4.0,
https://github.com/web-fonts/dejavu-sans, vendored under `static/media/`.Uses Vue.js (https://github.com/vuejs/vue, MIT license),
(c) 2013 Yuxi (Evan) You, vendored under `static/vendor/`.Uses drawdown (https://github.com/adamvleggett/drawdown, MIT license),
(c) 2016 Adam Leggett, vendored under `static/vendor/`.Site favicon from Fugue Icons,
(c) 2010 Yusuke Kamiyamane, https://p.yusukekamiyamane.com.License
-------Copyright (c) 2020 by Erki Suurjaak.
Released as free open source software under the MIT License,
see [LICENSE.md](LICENSE.md) for full license text.