← Terug naar startpagina

🎮 AI Game Service Platform

Integratieproject – AI-gedreven Game Services

Een volledig AI-gedreven Game Service Platform ontwikkeld in Python. Het platform stelt game developers in staat om via een REST API intelligente NPC's te integreren in hun applicaties.

Demo Video (dry-run)

📌 Projectoverzicht

Het systeem bestaat uit:

🎲 Geïmplementeerde Spellen

1️⃣ Tic-Tac-Toe

Implementatie

  • Volledige game logic (legale zetten, win/draw detectie)
  • NPC met perfecte strategie
  • REST integratie via /api/v1/move

Algoritme: Minimax

Omdat Tic-Tac-Toe een kleine zoekruimte heeft, kan de AI alle mogelijke spelverlopen volledig doorrekenen. Hierdoor speelt de AI perfect en kan ze niet verliezen.

2️⃣ Dammen (Checkers)

Implementatie

  • Volledige spelregels
  • Legale move-detectie
  • Evaluatiefunctie voor bordposities
  • Instelbare moeilijkheid via zoekdiepte

Algoritme: Minimax met dieptebeperking

Het speelveld is te groot om volledig te doorzoeken. Daarom beperken we de zoekdiepte (bijv. depth = 8) en gebruiken we een evaluatiefunctie om tussenposities te beoordelen.

3️⃣ Reversi

Implementatie

  • Legale zet-validatie
  • Disc flipping logic
  • Game state evaluatie
  • Simulatiegebaseerde AI

Algoritme: Monte Carlo Tree Search (MCTS)

Reversi heeft een hoge branching factor (gemiddeld 10 mogelijke zetten per beurt). Minimax zou exponentieel te traag worden.

Daarom gebruiken we MCTS met vier fasen:

  1. Selection
  2. Expansion
  3. Simulation
  4. Backpropagation

We voeren ±3000 simulaties uit en kiezen de zet met het hoogste winstpercentage. Hoe meer tijd het algoritme krijgt, hoe sterker de AI speelt.

4️⃣ Blackjack

Implementatie

  • Kaartensysteem
  • Puntentelling
  • Bust-detectie
  • Beslissingslogica (Hit/Stand)

Algoritme: Expectimax

Blackjack bevat een kans-element (random kaarten). Daarom gebruiken we Expectimax in plaats van Minimax.

Expectimax:

  • MAX nodes → speler
  • CHANCE nodes → kansverdelingen
  • Berekening van verwachte waarde

De AI kiest de actie met de hoogste verwachte waarde.

🧠 Overzicht van de AI-algoritmes

🔹 Minimax

Gebruikt voor: TicTacToe, Dammen

Eigenschappen:

  • Recursieve boomdoorzoeking
  • Maximizing vs minimizing speler
  • Optioneel met depth limit
  • Evaluatiefunctie voor complexe spellen

🔹 Monte Carlo Tree Search (MCTS)

Gebruikt voor: Reversi

Eigenschappen:

  • Steekproef-gebaseerde simulaties
  • Geen volledige boom nodig
  • Tijd-afhankelijk (meer tijd = betere zet)
  • Ideaal voor hoge branching factor

🔹 Expectimax

Gebruikt voor: Blackjack

Eigenschappen:

  • Uitbreiding van Minimax
  • Ondersteunt kans-nodes
  • Beslissingen op basis van verwachte waarde
  • Geschikt voor stochastic games

🏗️ Architectuur

We werken met een 4-lagen architectuur:

1️⃣ API Layer

  • FastAPI endpoints
  • Rate limiting
  • Pydantic validatie
  • Asynchrone verwerking

2️⃣ Service Layer

  • GameMoveService
  • MinimaxService
  • MCTSService
  • ExpectimaxService

3️⃣ Core Layer

  • GameLogicFactory
  • AlgorithmFactory
  • GameInterfaces
  • Concrete game logic classes

4️⃣ Data Layer

  • PostgreSQL
  • pgvector
  • Player analytics opslag

Deze scheiding zorgt voor onderhoudbaarheid, schaalbaarheid, testbaarheid en duidelijke verantwoordelijkheden.

🤖 RAG Chatbot Systeem

Naast de game-AI hebben we een eigen Retrieval-Augmented Generation systeem ontwikkeld.

1️⃣ Upload & Preprocessing

  • pypdf (PDF extractie)
  • RecursiveCharacterTextSplitter (LangChain)
  • 1000 character chunks
  • 200 overlap

2️⃣ Embeddings

  • sentence-transformers
  • model: all-MiniLM-L6-v2
  • 384-dimensionale vectoren
  • Lokaal model (geen externe API calls)

3️⃣ Vector Search

  • PostgreSQL + pgvector
  • HNSW index
  • Cosine similarity
  • Filtering op game_type

4️⃣ Generation

  • Gemini 2.5 Flash Lite
  • Prompt engineering
  • Fallback mechanisme
  • Confidence score

📊 Recommendation System

Het systeem houdt bij:

  • Welke speler welk spel speelt
  • Win/loss ratio
  • Moeilijkheidsgraad
  • Engagement

Type aanbevelingen:

  • Progression based
  • Difficulty scaling
  • Content-based filtering
  • Collaborative filtering
  • Re-engagement strategieën

🔐 Security

🚀 Conclusie

In dit project hebben wij:

Dit project combineert:

Game development Artificial Intelligence Backend architectuur Machine learning Data engineering API design

Het resultaat is een volledig AI-gedreven game service platform.