About - ogrady/inf3project GitHub Wiki

The idea

The inf3project is an educational client-server application. It was developed to teach students at the Hochschule Reutlingen about several aspects of programming by having them write their own client. Those aspects include, but are probably not limited to:

  • sockets and network-connections (here: TCP)
  • parsers and EBNF
  • handling data-structures
  • GUI-programming
  • concurrent programming and threads
  • organizing, planning and executing larger programming-projects in groups (typically groups between three and five persons, using some sort of software-versioning over the course of one semester)
  • basics in game theory
  • pathfinding

As the server communicates in a plain-text format, any programming-language that can establish a TCP-connection can be used to write a client. The server itself - which is included in this repository - is written in Java. It can be tweaked for your personal teaching goals and to some extent be configured via the configuration file.

The game itself

Originally Dr. Roland Mühlenbernd came up with this idea to accompany the lecture. Students should connect to the server and then be represented by a pawn in game on the chess-like board. The board would consist of different types of terrain. Players would be able to play minigames deducted from the field of game theory to gather points and compete with each other. Those pawns should then be automated to simulate some very basic form of "aritificial intelligence" to have some sort of tournament as in Axelrod's Prisoner's Dilemma tournament. They should also be able to chat with each other.