Hello, World! My name is Matthew and I’m a software engineer, husband, animal lover, and a lifetime gamer. I have recently graduated from University of South Florida with a degree in computer science.
While working towards my education, I discovered a strong interest in game development, more specifically in game engines and how they work. The challenge of using only logic and syntax to solve a complex problem such as simulating physics in the context of real-time constraints is what drew my interest this subject.
I am a strong believer in that if you do what you love, then it doesn’t feel like work. I want my work to better the lives of others and surround myself with people that share the same passionate drive and vision.
Check out my project section or take a look at my Github to get a feel of my previous work. You can also contact me using any of the methods at the bottom of the page.
Imagination will often carry us to worlds that never were. But without it we go nowhere.
This was a multi-semester independent study where I researched and developed a simple game engine. Before I started this project, I had little experience with game development, but I was very interested in what goes on in the back end of a video game. To this end, I decided to make my own game engine from the ground up.
I started with the rendering engine and familiarized myself with the OpenGL pipeline. With the tools provided by OpenGL, I was able to make a simple rendering engine that has the capability to import basic .OBJ models, apply DDS textures to them through UV mapping, and provide basic ambient lighting to the scene. This process exposed me to all sorts of new rendering concepts such as:
From there, I needed to get objects in my scene to start moving and behaving like objects in the real world. In order to accomplish this, I had to research and develop a physics engine and integrate it with the rendering engine. These are some of the concepts I learned and implemented while working on the physics engine.
This project provided me a great opportunity to research higher level concepts and implement them in a codebase that is larger than any other school project I had previously worked on. While there were many game engine concepts that I was able to research in depth, I was unable to implement all of them into my game engine due to time constraints. Some of the unimplemented features I did extensive research on include:
Testing an object fall due to gravity.
This was a group project for Advanced Discrete Structures in which I developed a working software replica of an enigma machine, the same type of encryption machine used during WWII. My contribution for this project was the creation and development of all the software and GUI components.
An enigma machine employs a relatively simple algorithm where plain text is fed into the machine one character at a time and is mapped to a different character through a system of rotors. The key to strong encryption in an enigma machine is to have the rotors change position and map a new set of character after every step, thus preventing attempts at frequency analysis. While programming a software replica of an enigma machine was relatively simple, developing an intuitive GUI for it proved to be an interesting challenge.
Example string encrypted.