Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/bbrtj/hackathon-gold-rush
A game server for a hackathon-like event
https://github.com/bbrtj/hackathon-gold-rush
bot game-server hackathon hackaton tycoon
Last synced: 11 days ago
JSON representation
A game server for a hackathon-like event
- Host: GitHub
- URL: https://github.com/bbrtj/hackathon-gold-rush
- Owner: bbrtj
- License: bsd-3-clause
- Created: 2019-10-06T10:35:22.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2023-04-24T19:31:35.000Z (over 1 year ago)
- Last Synced: 2025-01-07T01:58:18.669Z (16 days ago)
- Topics: bot, game-server, hackathon, hackaton, tycoon
- Language: Perl
- Homepage:
- Size: 1.1 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
A game server for a hackathon-like event
===========### Name
Gold Rush - mine gold and grow your empire!
![scores](https://raw.githubusercontent.com/brtastic/hackathon-gold-rush/assets/scores.png)
### Description
This is a Perl web game server that requires players to write programs in any
language that interact with it in a certain way. The game requires strategy and
improvisation, as some events occur randomly and has to be taken into account.
Your task is to build settlements, explore land, recruit units and gain as much
gold as possible. A person with the highest amount of gold after a given number
of turns win.*Problem type:* optimize the process, take randomness into account.
*Required technical skills:* able to use HTTP APIs and WebSocket connections.
*Recommended skill level:* Intermediate. Likely too hard for beginners to have
fun.*Recommended solving time:* no less than three hours for one person, as this is
the time it took the author to write the reference perl bot implementation.
Since the goal is not a simple matter of solving a puzzle, it can be back and
forth battle who has the better algorithm with live preview of current leaders.### Player instructions
See instructions/lang.pod for game reference. Can do it in
command line with command: `pod2text instructions/lang.pod`.### Existing implementations
The `examples` directory contains approaches to playing the game.
Caution: _SPOILERS_### Running (with Docker)
`docker-compose up`
### Running (without Docker)
*Note: perl 5.28 with Carton required. Carton is a Perl module dependency
manager. You will need to have it installed prior to the script below: cpan
Carton*```
carton install # install the dependencies
carton exec prove -l # test the installation
carton exec plackup -p 5000 -D runner.psgi # daemonize the game server
carton exec ./websocket prefork # run the websocket server
```### Scores
After playing the game, a `scores` directory will contain scores for players. A
scores file contains a single JSON document, with game state for every 10
rounds. The file is only present after the player has finished the game. A new
score will override the last one.To view scores interactively, go to `address:5000/scores.html`