Hey!

I'm Michael Thomas, a professional Unity Developer.

Looking for an experienced Unity Developer? Send me a message on linkedin

Tech Stack

Background

I am a Unity Developer with over 3 years of professional experience in creating interactive and engaging games and experiences using Unity3D. This includes creating VR, AR, 3D, and 2D applications. I have a First-Class Honours BSc in Computer Games Programming from the University of Gloucestershire and have worked with multiple clients on small projects. Additionally, I have experience working within AWS, to help facilitate small projects and pipelines.

I am a dedicated and passionate developer who is always looking to push the boundaries of what is possible with Unity3D and the latest technologies. My skills include experience in programming languages such as C#, C++, and Python, including Unity3D application creation as well as working with AWS services to create and manage cloud-based projects.

I am committed to ongoing personal and professional growth, and I am enthusiastic about contributing my expertise to the creation of exceptional games and experiences. Additionally, I have a keen interest in integrating technologies like Large Langugage Models (such as ChatGPT) into my workflow and projects, leveraging their capabilities to enhance user interactions and create more immersive experiences.

Released Titles

Multiverse

I had the opportunity to work on Multiverse, a social Unity3D VR planetarium that offers an immersive learning experience about our solar system with friends. During my involvement, I accomplished the following tasks:

  • Developed and implemented a teleportation system for a social Unity3D VR planetarium, allowing users to explore the solar system with ease.
  • Created bespoke Unity tools to streamline development and improve workflow efficiency.
  • Utilized TeamCity to automate building, baking, and publishing versions of the game, saving valuable time and resources.
  • Implemented Unity Analytics to gather telemetry and gain insights into user behavior and preferences.
  • Proactively troubleshooted and resolved technical challenges to ensure smooth game operation.
  • Contributed to content creation, ensuring a polished and engaging user experience.
Try it out at the Oculus store!

Blast Off

Blast Off is an endless runner mobile game that challenges players to navigate through obstacles while avoiding losing a life. The game becomes progressively harder with time, introducing faster and more complicated obstacles.

As a developer of this game, I focused on achieving smooth and fluid gameplay while keeping the file size tiny. I accomplished this by using a single scene, implementing procedural generation, stacked menus, object pooling, and a custom shader designed to change sprite colors on the fly.

I worked on this project during my free time on and off throughout the year. Although I now see areas for improvement, I thoroughly enjoyed the game development process and plan to continue making mobile games and learning from each one.

My team partner, Iby, created the graphical assets and joined me during the last month of development, replacing all the placeholder art.

Get it on Google Play

My Projects

Project Demo Image

ChatGPT in Unity: AI Agents

This project is an interactive exploration of integrating OpenAI's ChatGPT model into the Unity game engine. As a solo developer on this project, I have embarked on a personal journey to showcase the potential of large language models (LLMs) in gaming. Through this project, I aim to demonstrate how ChatGPT can enhance gameplay, foster engaging player experiences, and pave the way for innovative game design.

By seamlessly integrating the OpenAI API wrapper into a 2D game environment, I have empowered an AI agent to comprehend, interact with, and navigate the virtual world using predefined actions. This hands-on demo provides a glimpse into the exciting possibilities that arise when combining the power of ChatGPT with the flexibility of the Unity game engine.

As an ongoing project, I am continuously refining and expanding this project, striving to uncover new insights and push the boundaries of AI-driven gaming experiences. I hope this project serves as an inspiration for fellow developers interested in exploring LLMs within their gaming projects, particularly those utilizing Unity.

Pokemon Image

Pokemon Code Card Grabber

In the realm of real-world applications using Python and Optical Character Recognition (OCR) technology, the Pokemon Code Card Grabber stands as a practical solution that I developed to automate data extraction from images of Pokemon code cards.

The application employs Tesseract, a reputable open-source OCR engine, to scan and process card images. It adeptly extracts two key pieces of information from each card: the unique code and the name of the pack. These details are systematically logged into a text file, offering an efficient method for data storage and retrieval.

The user-friendly workflow is a key highlight of the project. Users simply place their images in a designated folder, from where the application takes over. It processes each image, extracts necessary data, and diligently handles processing failures by moving the unsuccessful images to a 'failed_images' folder. For transparency and troubleshooting, comprehensive logs are maintained.

While the current system is robust and effective, I envision future improvements. The next phase of development involves integrating a real-time camera option. With this feature, users could swiftly scan through a stack of cards without the need for capturing individual images, significantly streamlining the process and enhancing efficiency.

The Pokemon Code Card Grabber epitomizes the versatility of Python for interfacing with third-party libraries and managing file systems, and stands as a practical, scalable solution that leverages automation for enhanced convenience and productivity.

Project Skyscraper

Project Skyscraper is a multiplayer co-op shooter with a top-down perspective, designed with a strong focus on gun customization and upgrading. In the game, players work together to complete objectives and fend off waves of enemies. Between each level, players have the opportunity to modify and enhance their guns using parts collected during the previous levels, allowing for unique and personalized weaponry. The game takes place in a dystopian, cyberpunk setting with a theme of "hyper-consumerism", and has won the "Best Group Project" award at ComX.

My contributions to this project included serving as the Project Lead and Gameplay Engineer.

If you would like more information about this project, please feel free to contact me.

Pac-Man

This project holds a special place in my heart as it was one of my first and most rewarding experiences as a game developer. Working on this project taught me fundamental principles of game design.

I'm incredibly proud of the end product and I look back on it with fondness, but I also see opportunities for further development and improvement. In retrospect, I could have optimised it in some ways and added other cool features, such as a map design tool.

Using the original ghost personalities to replicate the original game, I implemented a different pathfinding system which resulted in the ghosts taking different paths and giving the player a new experience. Other key features of the game include A* Pathfinding, persistent highscores, and a customizable map.

Overall, this project was a valuable learning experience that allowed me to develop my skills and learn from my mistakes. It showed me the importance of testing and iterating on ideas, and I'm grateful for the opportunity to have worked on such a fun and challenging project.

Shout Out

Shoutout is an exhilarating VR game developed using Unity3D, in which players are placed in an arena and tasked with shouting the names of oncoming enemies to destroy them. This is accomplished through the use of voice recognition software, which adds an innovative twist to the gameplay. This project was created for the Experimental Games course at university and was showcased at ComX. Working alongside a team of 8 individuals, I was responsible for the procedural programming aspect of the game. In addition, I implemented a highscore system, audio features such as enemy noises and ambience, and even recorded the voice acting for the announcer. This project was one of the earliest experiences that taught me fundamental principles and techniques in game development, and I am proud to have been a part of it.