Git Product home page Git Product logo

cadre's Introduction

Cadre

A framework for creating networked AI and human games.

{Cadre}

All inspiration taken from MST's SIG-GAME framework, and most of the terminology is assuming some familiarity with it as this is a spiritual successor to it.

Features

  • Multi-Game Framework
    • One server instance can host multiple games at the same time, and the games can be completely different games.
    • All clients support this as well.
    • e.g. One server can host Chess, Checkers, Go, etc all at the same time and clients can choose which games to play.
  • A mix of JavaScript (via Node.js) and Python 3.4 to go from game concept to running engine. With clients in a variety of languages
    • To code a game server logic wise only a basic knowledge of programming concepts is required. CS 1570 (old 53) students should be capable of grasping the game logic, and contributing.
  • Easy generation of new games using the Creer codegen.
  • Automatic documentation creation to html docs. This is a new concept outside of the old SIG-GAME framework. Basically a codegen for documentation.
  • Games can be turn based or real time, with turn based code abstracted into an inheritable class for re-use between games.
    • More game prototypes can be added easily as new classes for re-use, such as hidden information games.
  • All logic is server side, with states updating for clients after anything changes.
  • Web interface on the server
    • Gamelog viewer with visualizer for all games
    • Automatic cross-language game documentation generation
  • Networking via TCP Sockets
    • Communication via json strings with support for cycles within game references
    • Only deltas in states are send over the network, never entire states, to maximize bandwidth and speed.
  • Automatic gamelog generation as a json structure of delta states, complete with game state and data on what caused the delta.
  • Every game instance is a seperate thread, so slower games don't block faster ones.
  • Extra fields present for Arena and Data Mining purposes
  • Clients can be adapted for human players, and if continued development a standalone visualizer could support this
  • Hooks to and for the Arena

What's what?

The naming scheme is simple, French:

Clients in Ruby, PHP, D, and Go are easily possible. In fact, so long as the language support json and tcp communication it should be easy to add a client in that language to this framework.

How to Play

For a detailed tutorial on how to play games using this framework see the howToPlay.md file alongside this README.

Other Notes

All the submodules are intended to be kept at the most recent commit on the master branch. To easily checkout them all on master just use the init.sh script:

./init.sh

cadre's People

Contributors

jacobfischer avatar jeffreystrahm avatar mnuck avatar tehpers avatar user404d avatar

Watchers

 avatar

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.