top of page

Multi-Agent Systems

Overview

A Java-based tournament simulation exploring the Iterated Prisoner's Dilemma using multi-agent systems and game theory strategies. University dissertation project with 15,000-word research paper analyzing optimal strategies in competitive environments.

The Idea

For my thesis at university I chose to create a program about the game theory concept of the iterated prisoners dilemma. I researched different strategies to determine which works best in a tournament setting. I wrote a 15,000 word documentation on my findings and create a program to showcase it.

The prisoner's dilemma is a well-known application within the field of mathematics, more specifically the field of game theory. In the original problem two players are isolated from each other and they must decide whether to deny or confess given the four possible outcomes; [1] They both remain silent, [2] They both defect, [3] Player A defects and Player B remains silent, [4] Player A remains silent and Player B defects.

Skills Used

  • Java

  • Object Oriented Programming

  • JavaFX

  • MVC Design Pattern

  • Git

  • Test Driven Development

What I Learned

This project deepened my understanding of algorithm design, game theory, and emergent behavior in multi-agent systems. I researched 12 different strategies from academic literature and implemented them in Java using object-oriented programming principles. The biggest technical challenge was designing a flexible tournament system that could handle random matchups while maintaining statistical validity across thousands of iterations. I learned how to structure complex simulations, implement the MVC design pattern for clean separation of logic and UI, and write comprehensive documentation for academic research. This project strengthened my analytical thinking and systematic approach to problem-solving - skills that translate directly to gameplay systems programming and AI behavior design.

Key Technical Systems

Tournament System Architecture

  • Round-robin tournament engine generating random matchups between 12 strategy agents

  • Configurable iteration counts per matchup to prevent players from predicting final rounds

  • Points accumulation system tracking cumulative scores across all matches

Strategy Implementation

  • 12 researched strategies implemented as Java classes using object-oriented inheritance

  • Gameplay strategy with gossip box allowing agents to manipulate opponent choices through deceptive signaling

  • Trust score system modeling opponent cooperation vs. defection history

UI & Visualisation

  • JavaFX GUI with interactive controls for player count, agent names, and strategy selection

  • Real-time results table displaying per-round performance and tournament rankings

  • Replay functionality for analyzing tournament outcomes

Game Theory

Screenshot_11.jpg

In Game Look

Agents in the system function as players that will choose a strategy with the goal of gaining the most points possible to win the tournament. Looking into the game theory of the prisoner’s dilemma, it causes an interesting scenario where the most points possible is gained when both players choose to split however, the element of trust needed between the players causes a doubt which often leads to players deciding on stealing. In a round robin tournament where multiple rounds take place stealing becomes less effective depending on chosen strategies by other agents. This creates a dynamic situation in the prisoner’s dilemma game where well thought out strategies reap the rewards.

Links

bottom of page