I am currently working on my dissertation which is looking at optimising user level thread systems for use in games. The research is looking at different scheduling techniques and how effective they are for games, as well as looking at improving existing methods through better CPU cache locality.
This is currenly in progress.
A rock collection game created using Vulkan and C++. Part of an individual research and development module for my masters at Warwick University. The game incorporates compute shaders to generate procedural planets dynamically at run time using an adapted version of the Flying Edges algorithm. Reseach was done into surface extraction techniques for volumetric data as part of the project.
A game created as a class of 43, where groups of 6 split up to work on individual levels. The game was created in Unreal Engine 5.4. The group I was part of, had the task of creating Level 6, where the player had to fight through a research lab, with gravity altering affects, and get to a spaceship. I was responsible for VFX, materials, as well as leadership and cross team communications.
Repository: Not Available
Implementation of a Path Tracer, Light Tracer, and Instant Radiosity. Made in three weeks.
A chat app made using C++, Dear ImGUI, and WinSock2. Made in three weeks, achieved a mark of 79%.
A game made using DirectX 12 and C++ for the Compute Graphics Module in my MSc Games Engineering course. Made in three weeks, achieved a mark of 90%.
A game made using C++ for the first module in my MSC Games Engineering. Inspired by the Vampire Survivors game. Player can move around as their weapon attacks automatically. Can use an AOE attack and provides saving and loading functionality. Given started code which allowed drawing a pixel to the screen and presenting. Made in Two Weeks, achieved a mark of 80%.
A game where you only have one button. Pressing a button advances your selection, and on every beat, the action is taken. Made for the 1-Button Jam 2024 game jam in a few days. Created in Odin to learn the language.
A Website I made to aid in keeping track of company jobs, and allow keeping track of revenue from these jobs. Allowing the company to move from paper-based records to digital.
Repository: Not Public
Video taken from a development build with dummy data.
My university dissertation project, which consisted of a machine learning algorithm (Reinforcement learning) trained on historic stock data to make prediction on future stock data, and a GUI application to visualise its predictions and training. With the aim to help in development of trading algorithms via helping to visualise algorithm performance.
A WIP space game engine created with a friend. Created from scratch using Vulkan and the Odin programming language. Currently implemented features include ECS, local coordinate system to allow for using double precision floats for positions, and mesh streaming for loading chunks of a planet mesh.
A University group project where we were tasked with creating the Windows game Rats using Java and JavaFX. This was done in a group of 6. Where I took the role of team lead, managing meetings, leading development, and helping others with programming, as I was the most experienced in my group. Our team achieved a 90% for this project, and I received an individual score of 100%.
MSc Games Engineering - The University of Warwick - Expected First Class Honours - 2026
BSc Computer Science - Swansea University - First Class Honours 84% - 2023
BSc Mathematics Foundation Year - Swansea University - 2020
| Name | Mark | Description | Coursework |
|---|---|---|---|
| Programming and Fundamental Algorithms | 80% | Covered C++ fundamentals and algorithms | Alpha Survivors |
| Innovative Simulation Design and Development | 72% | Game design | Group Presentation and Solo Game Design Document |
| Computer Graphics | 90% | DirectX 12 and computer graphics algorithms | Unnamed FPS Game |
| Advanced Computer Graphics | 67% | Physically based rendering and ray tracing | Path Tracer |
| Games Engineering | 79% | Multi-threading, SIMD, Audio, Databases, UI, Networking, and AI. | Optimising a CPU renderer and Networked chat client/server. |
| Games Engine Design and Development | 69% | Group Game in Unreal Engine | Skyfire Uprising - Level 6 |
| Fundamentals of Games Research, Development and Management | 76% | Research in Games | Literature Review and The Lonely Surveyor |
| Dissertation | TBD | Research and thesis on Multi-threading in games | Dissertation |
| Name | Mark | Description | Coursework |
|---|---|---|---|
| Big Data and Machine Learning | 80% | Machine Learning algorithms, covering supervised and unsupervised learning algorithms | Worksheet |
| Embedded System Design | 83% | Design and structure of embedded systems. Covering modeling and verification. | N/A |
| Advanced Object-Oriented Programming | 79% | C and C++ | Labs |
| Optimisation | 92% | Algorithms for optimisation. genetic algorithms. | |
| Logic for Computer Science | 94% | Logic and proofs in computer science. | Worksheets |
| Introduction to Video Games Programming | 83% | Making game in Unity | A recreation of snake in Unity |
| Computer Science Project Implementation and Dissertation | 77% | Dissertation | Visualising machine learning to predict stock markets |
| Computer Science Project Specification and Development | 74% | Dissertation | Visualising machine learning to predict stock markets |
| Name | Mark | Description | Coursework |
|---|---|---|---|
| Introduction to Human-Computer Interaction | 75% | Covering how humans interact with computing devices, and how to evaluate usability. | Design and prototype a screenless device which gives directions. |
| Declarative Programming | 71% | Haskell and Prolog | Labs and solving algorithms using haskell |
| Concurrency | 81% | Multi-threading in Java | Labs, Multithreaded program |
| Software Engineering | 85% | Project managment, planning, and development. | Rats! |
| Database Systems | 68% | How databases work and using them. Covered SQL. | Worksheets |
| Computer Graphics | 89% | Covered basics in computer graphics, including colours, scaling, and algorithms used in image editing software. | Java CT Scan visualiser and image rescaler |
| Algorithms | 83% | Covered algorithms and notation for memory and runtime. | Labs. |
| Automata and Formal Language Theory | 100% | Finite state machines, and turing machines. | Worksheet |
| Name | Mark | Description | Coursework |
|---|---|---|---|
| Technologies for Information Presentation | 94% | Structing data for presentation, HTML, LaTeX | N/A |
| Introduction to Programming | 98% | Python fundamentals | Labs |
| Fundamentals of Robotics | 81% | Working in groups to implement algorithms using robots. | Solving problems with robotics such as line following. |
| Fundamental Calculus | 74% | Calculus | Worksheets |
| Fundamental Complex Numbers | 90% | Complex Numbers | Worksheets |
| Fundamental Geometry | 83% | Geometry | Worksheets |
| Fundamental Mathematics | 81% | Covered general aspects of mathematics e.g. linear algebra and trigonometry. | Worksheets |
| Computational Probability | 94% | Probability using Python. | Labs |
Email me at: benasm123@googlemail.com