Paavo Westerlund

Hello, my name is

Paavo Westerlund

I'm a Master's student in ICT at the University of Turku with a strong interest in programming, software development, game development and artificial intelligence.

I am currently looking for opportunities in software and game development, but I am also open to other roles, where my skills could be a good fit.

I can be reached through LinkedIn.

Projects


Walking simulator world

Walking simulator

GitHub

Walking Simulator is a simple first person game-like built with C++ and OpenGL. I first started learning OpenGL with learnopengl.com and after a while of that started this project. It now includes features such as heightmap-based terrain, "jumping", model loading, and a skybox. I also created my own flower model using Blender. Planned features include procedural terrain generation, better movement, world textures, and basic NPCs.

C++ OpenGL GLSL Blender Graphics programming Low level
Movement shooter in-game

Movement shooter

S&box

Developed an FPS multiplayer game as a part of a four-person team. It features movement based gameplay, rocket jumping, launchpads, multiplayer, NPCs etc.
My responsibilities mostly consisted of programming; Gun logic, NPC AI, UI and its System, gameplay elements, match managers and networking etc.

The game is still work-in-progress, but is technically playable on the S&box platform. We use Facepunch's S&box engine, which uses Source 2 underneath, because of the built-in networking features.
(Models provided by the engine platform.)

C# Game Development
Westshell

Westshell

GitHub

WestShell is a basic bash-like shell written in C++ with support for external commands, pipes, redirection and simple builtins. It was strted as a hobby and learning project aimed at deepening my understanding of how shells work.

C++ Unix Make Low level CLI
Priest's Holy Quest logo (Made by https://s-sampsa.itch.io/)

Priest's Holy Quest (GGJ 2026)

GitHub GGJ Itch.io (not yet public)

Me and my team made Priest's Holy Quest in 48 hours for Global Game Jam 2026. The theme was mask and the game's premise was: priest returns masks to graveyard to free the souls of ancient fallen warriors. I was the lead programmer and did most of the games logic, handled version control and additionally other tasks.

Godot GDScript Game Development Game Jam
The Callee logo

The Callee

GitLab (Full) GitHub

The Callee is a video game made in Unity. It is a simple story-based experience, where the player navigates levels while answering to an old landline phone.

C# Unity Game Development Blender
Gameplete UI

Gameplete

GitHub Website

A website for viewing upcoming, anticipated, top rated and most viewed games as well as relevant information about individual titles.
Frontend is built with React and Tailwind. Backend uses Hono for production. Initially I went with Express, but I wanted to deploy to Cloudflare pages so Hono was extremely straightforward to adopt. The data is acquired through the IGDB API.

Fullstack Backend API React Frontend JavaScript Web Dev
placeholder

Raspiance

GitHub

Raspiance is a WIP ambient light controller. The goal is to automatically change colours of lights based on the average colour values on TV screen segments.

Can currently count average colour values per segments of read webcam feed. Uses V4L2 directly in C++ to read YUV (YCbCr BT.601) webcam feed, count average and convert to RGB. Can also display feed with OpenGL, converts to RGB in fragment shader.

C++ Computer vision CMake Low level Unix
Image of the game

"Ninja"

GitHub

A fruit slashing game made using Pygame that utilises MediaPipe and OpenCV libraries for hand tracking. The idea came from the popular mobile game "Fruit Ninja". The katana which is used for slicing the fruits is controlled by moving your hand.
Disclaimer: Taking a screenshot was rather awkward due to the control mechanism...

Python Computer vision Game Development
Examiner UI

Examiner

GitHub Website

An exam creation tool for teachers made with React. It is meant to ease the creation of printable exams. It is only meant for printable exams and not electronic ones. The visual look of the app isn't that fancy as it was created for a specific need of an acquaintance of mine. All the additional buttons and such are hidden when printing.

React Frontend JavaScript Web Dev
placeholder

Advent of Code

GitHub

My solutions to some of the AoC puzzles. Includes solutions from -22, -23, -24 and -25 iterations of the event. Years -22, -24 and 25 in C++, -23 in Python.

C++ Python Algorithms Data structures Make
placeholder

PyStation

GitHub

Playstation Store crawler made with Python. Uses BeautifulSoup library to find the html elements after requesting the page. It is able to fetch single game prices and multiple on sale. This was initially made for a MOOC final project and remains here to show where I started. It is broken at the moment and needs an overhaul.

Python CLI

Thesis


Bachelor's thesis

UTUPub

Tekoälymenetelmien hyödyntäminen roolipelien NPC-hahmoissa

Abstrakti

Lähes kaikissa videopeleissä on tietokoneen kontrolloimia hahmoja, eli niin kutsuttuja NPC-hahmoja. Nämä hahmot ovat tärkeässä asemassa tietokoneroolipeleissä, joissa tarina ja hahmot usein korostuvat muita genrejä enemmän. Tutkielmassa käsitellään roolipelien NPC-hahmojen tekoälyllä toteutettavia ominaisuuksia ja näihin käytettäviä konkreettisia menetelmiä. NPC-hahmojen tekoäly on tärkeässä roolissa pelien immersiivisyyden ja mielekkyyden sekä siten pelikokemuksen kasvattamisessa. Tutkielma toteutettiin kirjallisuuskatsauksena, jonka pohjalta pyrittiin vastaamaan asetettuihin tutkimuskysymyksiin. Kirjallisuuskatsauksen pääaineistona oli tutkimusartikkeleita, joita tuettiin erinäisillä muilla lähteillä. Tarkoituksena oli koota kirjallisuutta yhteen ja pyrkiä havainnollistamaan NPC-hahmojen ja tekoälyn suhdetta.

Kirjallisuuskatsauksen pohjalta havaittiin NPC-hahmojen tekoälyllä toteutettaviin ominaisuuksiin kuuluvan päätöksenteko, käyttäytyminen, persoonallisuus, polunetsintä, dialogit sekä DDA. Näistä muodostettiin eri ominaisuuksien yhteyksiä havainnollistava malli. Ominaisuuksien toteutusmenetelmiä roolipeleissä löydettiin useita eri tyyppisiä. Löydettyihin menetelmiin lukeutuvat esimerkiksi käytöspuut, tilakoneet, IDA* ja neuroverkot. Näiden toimintaa avattiin enemmän yleisellä tasolla. Lopuksi tarkasteltiin rajoitteita ja jatkotutkimusmahdollisuuksia sekä koottiin tutkielman sisältöä yhteen.

LaTeX Academic writing Game AI Research Artificial intelligence