Skip to content
/ traze Public

Traze is a simple tron-like multi client online game serving as a playground for exploring new technologies.

Notifications You must be signed in to change notification settings

iteratec/traze

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 

Repository files navigation

Traze

Traze is a multi client online tronlike game with MQTT based protocol. It aims to provide a playground for various game clients, AI game bots, and showcase of a reasonable secure MQTT application, and it’s fun! You can write your own game client and participate in the game using the specified protocol.

Hosted by iteratec

You can join a hosted instance at traze.iteratec.de.

Run a Game locally

You can start a local game using the docker-compose stack provided in this repository.

git clone https://github.com/iteratec/traze.git
cd traze
sudo docker-compose up

This will start a local gameserver, mqtt broker, webui, as well as a couple of bots, binding the following local host ports:

Service Port
webgrid 80
documentation 8080
mqtt broker 1883
mqtt websocket 9001

You can watch the local game in your browser at http://localhost:80

Bots can be scaled using docker-compose.

sudo docker-compose scale random-bot=5

Protocol

The game protocol facilitates multiple MQTT topics with JSON payload. An extensive documentation of the protocol details is provided on traze.iteratec.de.

Components

The traze project consists of multiple components. Each component has their own repository and lifecycle. You can find all traze related code under the traze topic on github. Some important examples are:

Core

These are the core components of the traze game

traze-docs web documentation of the traze protocol.

traze-gamserver haskell game server implementation for the traze protocol.

traze-web-grid web view that renders the game state as a grid with players on a canvas

Client Libraries

These are some client libraries that can be used to interact with the traze game server.

traze-client-python a client library based on Python 3.6.

traze-goclient a client library for golang

Human Interface Clients

Game clients for human players

traze-client-java a client based on Java.

traze-javascript-vanilla a client based on (vanilla) ES6 JavaScript which is both for steering a player and rendering the grid (demo)

Bot Implementations

traze-golang-bot a traze bot written in go.

About

Traze is a simple tron-like multi client online game serving as a playground for exploring new technologies.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •