No description
Find a file
Nico Schottelius 182ae4d0e5 ++\n
2019-05-26 22:05:47 +02:00
archive Cleanup, begin challenge class 2019-05-26 21:19:58 +02:00
.gitignore Add first flask test 2019-04-14 18:57:39 +02:00
Pipfile ++stuff 2019-05-25 22:18:18 +02:00
Pipfile.lock ++stuff 2019-05-25 22:18:18 +02:00
README.md ++update 2019-05-26 22:04:59 +02:00
server.py ++\n 2019-05-26 22:05:47 +02:00

Welcome to the ungleich-game, a geek game engine!

ungleich-game is supposed to be an easy-to-use, easy-to-play and easy-to-extend game framework for geeks. The project name is ungleich-game, as it has its roots at ungleich - the project name might change later.

How to play

  • Select a game server
  • Register
  • List challenges - have fun!

How to play on Nico's notebook

  1. Register
curl -d user=nico http://nico.ungleich.cloud:5002/register
  1. Get challenges
curl http://nico.ungleich.cloud:5002/challenge
  1. Get a challenge description
curl http://nico.ungleich.cloud:5002/challenge/registernet
  1. Solve a challenge
curl -d user=nico -d 2a0a:e5c0:101::/64 http://nico.ungleich.cloud:5002/challenge/registernet
  1. Get high score
curl http://nico.ungleich.cloud:5002/highscore

Overview - Game flow

  • Users register at a game server
  • Users play by getting challenges from the game server
  • Users can see their or all high scores on the main page

Overview - Development Flow

[not yet fully implemented]

The idea is that there are challenges and each challenge offers:

  • A description
  • Some dependencies (on something another challenge can provide)
  • A score ("how difficult it is")

How to add challenges

  • Create challenges-.py and add challenges in there
  • Do some magic so all challenges are imported by server

Overview - Security

None at the moment.

Tech stack

The base for building games is:

  • Python3 - The programmming language
  • Flask - web frontend
  • etcd - storing data, games, etcd.

Things to solve

  • Enhance the Challenge class - maybe make it easier for challenges to abort
  • Enhance the Challenge class - abstract away writing information?
  • Implement dependencies / providers for challenges
  • Add an easy to use CLI (Steven might like click)
  • Write nice code to easily retrieve points per user
  • Sort high score
  • Maybe store all user information in one JSON object?