Overview

The purpose of the Intelligent Thought Entertainment (ITE) project is to develop a networked game engine that supports grid-based games and custom AIs. ITE is meant for users to learn how to develop their own AI and to have fun at the same time.

The project is divided into two layers:

  1. Client
  2. Server

The client is a thin-client that connects to the server and gives a graphical representation of what is happening on the server. The server contains all the game logic and rules and manages players, games, and statistics.

Client

Written in python with the help of the wxPython toolkit, the client provides a graphical representation of what is happening on the server. The goals of the ITE client are to include chat channels, various game board views, and user statistic displays.

Version 1.0 of ITE has already been written, but it is a thick-client, containing all the game logic internally and providing no network support. Therefore, the next version of ITE that is under develop is version 2.0.

Goals of version 2.0:

  1. Remove internal game logic and replace with views of game boards executing on the game server.
  2. Provide network connectivity.
  3. Provide ability to communicate in chat channels.
  4. Provide graphical view of user statistics, including wins, losses, draws, and defaults (losses by leaving game).

Server

Written in C++ with the help of libxml2 and (as of yet undecided) IRC libraries, the server provides a multi-threaded daemon that simultaneously executes multiple games and game types for multiple users. The server also stores user statistics in a database and allows users to communicate in IRC channels.

The server will contain all game logic and be geared towards efficient use of network, CPU and memory resources. Currently all game logic from the version 1.0 thick-client must be moved into the server and a GNU/Autotools build system established.

Milestones to reach for a version 1.0 server release:

  1. Read XML configuration files.
  2. Support game logic developed as shared-library plugins.
  3. Support at least 100 players simultaneously across 30 game instances.
  4. Support multiple users chatting in several IRC channels at once.

Items related to this page:
  1. Project Design Document (not available yet)
  2. Project Plan Document (not available yet)
  3. Requirements Analysis Document (work in progress)
  4. Sourceforge Project Home