Paavo Westerlund

Hello, my name is

Paavo Westerlund

I'm a university student studying Information and Communication Technology. I have a keen interest in software development, artificial intelligence and all things technology.

Projects


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
placeholder

"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

"Sneaking" game

GitHub

This is an early-stage, unfinished 2D sneaking game. The enemy AI is currently quite rudimentary and requires significant improvements. Currently the enemy roams aimlessly until the player enters its cone of vision, which can be seen in the image. It uses a modified BFS with some heuristics when it tries to hunt and catch the player. The game has a state machine type of architecture to make the menus and other components work.

Game development Python Pygame Algorithms
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
placeholder

Advent of Code

GitHub

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

C++ Python Problem solving Algorithms Data structures
placeholder

IPC project

GitHub

This project was done as a course project. It involved forking four child processes which pipe data back to main process. Another process in a different file then creates a shared memory segment. The main process attaches to it and writes to it. Finally the seperate process reads and prints. A better and longer explanation is available in the repository.

C++ System calls Low level
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. It is broken at the moment and needs an overhaul.

Python CLI Web scraping
placeholder

Fullstack project

A Fullstack application created as a part of course which had the slightly modified content of the first six parts of the Full stack open. Emphasis of the course was on learning the stack and not so much on the visual side. Link coming later when I organize all sub-assignments into one repository.

Node Express React Mongo MERN Backend

Thesis


Bachelor's thesis

UTUPub PDF

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