Sam Drage


Computer Games

As part of the Queer Game Con Jam 2023, I created a prototype game called A Game About Delivering Parcels. Playing as a courier, you go on missions to deliver parcels to locations across a city. The catch is that every mission restricts you in different ways. Some remove the ability to run, others the ability to jump, and some restrict you to just walking normally. The aim of the Jam was to raise awareness of queer issues, and I decided to represent how making discoveries about yourself changes how you negotiate the world, taking the literal route of how you navigate and get to places. As a prototype, I am very happy with how this game turned out, and I think it demonstrates my skills in Unreal Engine 5.

Drought was made using GB Studio. I made it as part of a short game jam that I ran with a friend with the themes of fish, one item two actions, save yourself and not the world, and with the challenge of using a new tool. GB Studio is an engine for creating Game Boy games, meaning that creating an idle game was a challenge, mostly due to the platform limitations regarding memory and timing. The code block style of programming also has its limitations, but I managed to work around them and create an idle game with a linear story, although with minimal progression. If I were to continue this project, I would work to improve the story and the efficiency of the mechanics, as well as add sign posts for certain world events: Feedback has been given that there is little reason to ever leave the buy menu for the different upgrades.

Time management is a key issue for anyone, especially when working from home or on personal projects. I found that using a Pomodoro timer allowed me to work for longer by splitting a work session into smaller pieces, with defined breaks, however I didn't have a solution for working in places with poor Internet connectivity. Using the Tauri framework and Node I created Pomoadventure, a portable Pomodoro timer application that does not need an Internet connection.

Tabletop Games

Zombie Heist is the first large-scale TTRPG that I created. Produced over the course of 6 months, it was play-tested several times, with multiple different versions. It was also my first attempt at creating a book-formatted document using the open-source Scribus software. I learned a lot on this project, especially regarding testing and getting feedback from players, but also about choosing your tools correctly: Scribus is great if you are creating physical copies of a document and is not easy to learn. It seems to fall down if the final product is a PDF, with the layering making screen reader compatibility extremely difficult to manage. I wrote a retrospective of the design process.

Whilst working as a tutor teaching GCSE English, I realised I needed a fun way for students to learn different literary techniques, such as alliteration, pathetic fallacy, and the rule of three. I also wanted to encourage creative thinking and writing. Taking inspiration from tabletop roleplaying games like Monster of the Week and Stories RPG, I created Literary Dice, a roleplaying game that allows players to create their own story whilst empahsising the use of literary techniques. Having used it in several lessons, I believe this was a success.

(Pretend to Play) Poker is my current work in progress tabletop game. You play as a group of agents who have each been tasked with obtaining a different valuable object from another group, and the only way to obtain it is by playing poker. Sadly, you don't know how to play. Luckily you can bluff and vaguely know what it looks like to play poker. It is a tabletop game played with a set of playing cards instead of dice and is GM-less, meaning that there is no one person in control of the rules.

Stop the Villain is the first TTRPG I published. It is a one-page TTRPG, which means that it was designed with the constraint that all the rules must fit on one sheet of paper. Originally inspired by other games such as Anime Campaign and Everyone is John, I tested this game thoroughly with my friends, making a handful of different versions, and I still have the character cards created from those test games.



I have an interest in web accessibility, and the problem of how screen readers interpret emoji and groups of emoji is a known one. By default, most screen readers will read out the description of an emoji as defined by the Unicode Consortium, however the icon used for each emoji character varies between platform, and there is no agreed interpretation of the emoji description. Add to this that emoji often have an assigned meaning from the sender, and it becomes difficult for visually-impaired users to interpret the meaning of a message. Using span tags and ARIA labels, it is possible to attach the intended meaning to an emoji or group of emoji such that a screen reader will read that instead of the emoji description. The Altmoji website is an example of how this might work, and was created for my undergraduate dissertation project.


Whilst working on my Masters, I had to read a large number of papers. However, I struggled to read so many back-to-back, a problem that many others I spoke to experienced. I designed PDFSpeak with the intention of allowing people to listen to their PDFs whilst travelling or when needing a break from reading. It uses the text-to-speech web APIs and PDF.js to extract the text content of an uploaded PDF and read it using a configurable voice.


As part of a larger project that is currently a work in progress, I needed a way to perform unit tests on a website, however I did not like the idea of creating test files separate to the code and existing documentation. JSDocs, the documentation tool I prefer to use, offers the ability to create modules and add-ons. I used this to create assertivedocs, a unit testing tool that outputs its results as part of the documentation. Assertions can be written in the documentation comments alongside the code, making it quick and easy to create unit tests.


I am a fan of card games, especially Magic the Gathering and the Pokémon Trading Card Game. My friends and I occasionally hold small tournaments among ourselves, and the first time we held one I made the matches using a spreadsheet and manually input each pairing. This was time-consuming, and I could see how to automate the process using JavaScript, so I built this tool so that given any number of players it will generate a set of all possible pairings and split them into rounds.



Google Developer Student Club, or GDSC, is a charity-run organisation that aims to teach students current development techniques. As part of the 2021-22 Portsmouth team, it was my responsibility to stream and record as many sessions as possible. This was key during the COVID-19 pandemic and allowed remote students and anyone who did not feel safe coming to sessions in person to attend and learn. As part of this, I created the stream backgrounds and managed the audiovisual set-up of the sessions.


Playing Minecraft has been a passion of mine for years. The ability to completely shape the world whilst breathing life into it with mods is incredible, and is the perfect platform for emergent narratives. Whilst it is not a perfect game, it can be brought close through mods. Modpacks bring together multiple mods that work together, along with custom configurations, to create a tailored experience. My most popular modpack is a client-side collection of mods that improve the game's performance.