I'm Matthew Selva, an former student at Worcester Polytechnic Institute (WPI). I graduated in May of 2022 with a duel major in Interactive Media & Game Development and Computer Science. Throughout my time at WPI, I have created a variety of projects both individually and in small groups. Many of these projects are highlighted below.
A third person hack and slash survival game created in Unreal Engine 4. The goal is to survive endless waves of
monsters to reach a high score. This game features a day/night cycle that's heavily tied into the gameplay. During
the day, players must mine resources around the landscape to upgrade their equipment. At night, players must defeat
every enemy to progress to the next day.
For more information on the game, including a video demo and downloadable executables, check out our website!
A puzzling visual novel created using Ren'Py. This was my senior project at WPI, so I spent a large amount of time refining the gameplay based on player feedback from three playtesting sessions held throughout the year. The goal of the game is to read through a diary left behind by the protagonist's grandfather, hoping to uncover a mystery in the family's past that may have lasting implications on the family's future. This game is published on itch.io, and can be viewed at the link below.
A block sliding puzzle created using Perlenspiel, a web-based JavaScript engine made by our professor, Brian Moriarty. The goal is to slide the white block to the black hole to progress to the next level. Additional mechanics are introduced as the player progresses through the levels, and some levels can be accessed in a non-linear fashion using a level selection screen.
A top-down shooter where the player must survive several pre-set waves of enemies. Before creating this game, I created the engine based on an engine called Dragonfly created by our professor, Mark Claypool. This game was made using my version of the Dragonfly engine. Both the engine and the game itself were coded in C++. Gameplay footage is included in the slides to the right.
A small setting created with the goal of telling a story using details in the environment. We decided to create a
neighborhood that was ravaged by a tornado that passed by the player's house. There are clues spread throughout the
scenery that teach the player about the residents of the houses that were destroyed. We developed this in stages, starting
with a Greybox Demo, a
Beta Build, and a
Final Build.
Our recorded presentations for each stage of the process can be viewed by clicking the above links.
In a course focusing on Artificial Intelligence in games, we created a level generation system that creates Mario Levels
using a Markov Chain sequence. The Markov Chain is far from the ideal method of level generation, but we included a letiety
of enhancements to minimize the amount of impossible levels that could be generated. For example, additional blocks are placed
to prevent a jump from being too high to preform successfully.
Screenshots from levels generated with
this program and a video showcasing a sample play through of a level are included to the right.
I have spent a lot of time designing levels using Super Mario Maker 2 on the Nintendo Switch. In doing so, I learned a lot about using tools for both function and aesthetics. I included full playthroughs of three of the levels I created to the right.
This is a tool that can be used to import specifically formatted SVG files and draw additional lines on them. Panning and scaling are implemented using matrix transformations. A set of sample SVG files can be downloaded below and imported into the program. A video showcasing the basic functionality of the tool is included to the right.
A simple application created with Android Studio. Users can search through a list of hundreds of animated shows and add them to a customizable list where they can rank them on a 10 point scale. The application implements a basic SQL Database and the UI is designed using XML. The application has a lot of future potential, but this project was limited to a weeks worth of work, so I was only able to finalize essential features in that timeframe.