Aims: The aim of the project is to develop a game-playing environment using a programming language such as Java. Besides providing appropriate error reports, the system should have a nice graphical interface and provide such advanced features such as allowing multiple games to be played at the same time.
Background: Game-playing environments are popular systems with a variety of functionalities. For example, such an environment usually allows multiple games to be played at the same time. This can be implemented by means of the concurrency mechanisms supported in a programming language: multiple games are implemented as different threads that share the same modules that provide the basic functionalities such as moves in board games and error reporting procedures.
Early Deliverables
- Proof of concept program: A prototype implementation of a board game (e.g., chess).
- Proof of concept program: A prototype program that exhibits the behaviour of concurrent execution.
- Report: A survey report on game environments.
- Report: A description of the prototype implementations.
Final Deliverables
- The system must be implemented according to modern software engineering principles.
- The environment should contain a working system, with functionalities such as error reporting.
- A graphical interface should be implemented.
- The environment should allow the users to play multiple games at the same time.
- The report should provide an overview of game-playing environments.
- The report should describe the environment including its functionalities and design.
- The report should describe the implementation issues (such as the choice of data structures, numerical methods etc) necessary to apply the theory.
- The report should describe the testing procedures of the environment.
- The report should describe the software engineering process involved in the design and implementation.
Suggested Extensions
- Advanced GUI with other useful features such as chat room.
- Advanced implementation issues such as multiple game playing based on concurrency and sharing.
Prerequisites: Good command of programming languages such as Java.