I'm a university student studying Information and Communication Technology. I have a keen interest in software development, artificial intelligence and all things technology.
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.
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...
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.
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.
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.
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.
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.
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.
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.