I became interested in programming at the age of 9 with the popularity of chat room bot games. I also became enthralled with the scripting capabilities of an online RPG I played. When the source code to The Odyssey Online was released, I began to play with it. I soon realized I wanted to spend the rest of my life programming. I spent the next two decades teaching myself how to program in Visual Basic, .NET, C/C++, Java, and Python. I have also dabbled in PHP, Javascript, and HTML/CSS. I also have experience with MySQL for all of my project's data needs. In addition, I have experimented with electronic circuits and Arduino. I truly love all things technical. More recently I have been exploring web development, and have created several microservices in Java using Spring Boot, and using RESTful APIs.
Michael Whitlock
(267) 530-8665
michael@whitlock.studio
Master of Science - Computer Science • Expected Graduation May 2025
Declared Focus: Computer Systems
Bachelors of Science - Computer Science • Class of Spring 2022
Areas of focus include Machine Learning, Robotics, and implementing an Assembler and Emulator for a RISC decimal computer.
Associates of Science - Technical Studies• Class of Spring 2013
Areas of focus include Computer Science, Information Technology, and Game Design.
Assistant Vice President / Software Engineer II • Jun 2022 - Present
Lead Developer • Jan 2020 - Present
Founder • Sep 2016 - Jan 2020
Video game development calls for a wide variety of skills across the board. In addition to gaining comfort in Java, C#, and MySQL, I have become capable in areas such as network programming, 2D rendering, path planning, particle effects, 2D physics, collision detection, raycasting, 2D lighting, OpenGL shaders, procedural generation, and many more.
I have comfort working with large datasets in Python and performing analytics on them and training machine learning classifiers to perform binary and multiple classication on raw data. Additionally, I have comfort producing graphs and displaying metrics to visualize both the data and the analysis. For more on that, check out my paper and its code, accepted by the IEEE CCWC 2021 Conference and published in the IEEE Explore Digital Library.
Authors: Arifur Rahman, Michael Whitlock, Eman Abdelfattah
Abstract—In a world where technology is increasingly moving towards less wires, less devices, and more portability, the ability of a system to accurately interpret hand gestures is extremely valuable. The innovation of small, inexpensive cameras only makes this even more practical. The practicality of such a system rests on the assumption that hand gestures can be recognized from participants based solely on the shape of their hand. The dataset used for this research, while captured with node markers on a special glove, is formatted independent of a marker indexing system and could be applied in conjunction with a marker identification system for real world application of hand gesture classification. This paper presents an analysis and comparison of the effectiveness classifiers have when trying to determine hand gestures using motion capture coordinate markers provided by a Viacon camera. Stochastic Gradient Descent, Decision Trees, Logistic Regression, Random Forests, and Bagging are applied in this study. Overall, the Random Forests classifier performed the best with respect to performance measures such as recall, F1 score, and precision.
Machine Learning, Multiple ClassificationSanta Slay was my first video game in Java and with LibGDX. It is a little gratuitous with the cartoon blood, and the controls are notoriously awkward. It was my first attempt at a one-size-fits-all input system to work across desktop, mobile, and browser. I have since decided to specialize in games that are either for computer or for mobile -- but not both.
Video Game, Java, LibGDXSpacedOut is a fully complete but is no longer available for play. It is an action packed online multiplayer experience for PC, Mac, or Linux. It featured multiple game modes: Deathmatch, Team Deathmatch, CTF and featured programmable loadouts with different armor classes and weapons.
Video Game, Java, LibGDXDiscontinuum was a large scale single player RPG game I was working on for 7 months. The scope proved to be too large for a single person. Its graphical assets occupied over a gigabyte in video memory. It featured complex modular sprites thanks to the Liberated Pixel Cup set of art. The project was the first time I experimented with particle effects, GLSL, 2D lighting, masking, and many more. Additionally I contributed some to the LPC art set. Those contributions are available at OpenGameArt.
Video Game, Java, LibGDX, LPCOdyssey Beta is currently in development by my studio, Bearable Games. It is a remake of the 1997 online computer game written in Visual Basic 6 that turned me on to game design. The Bearable Games website is currently under development as well. This project is not currently open source.
Video Game, Java, LibGDXDetective Morpheus was a submission to the LibGDX Winter Game Jam 2020. It was the first project I collaborated with multiple people on. We produced a playable and fun murder mystery game in a few days. We used freely available graphical assets but featured original content for sound and music.
Video Game, Java, LibGDXMartian Trail was to be an idle Android game about a long term mission to Mars. The game was to feature managing a crew, power allocations, life support, and asteroid defense. The project was abandoned to focus on other projects. It was the birthplace of many of the custom GUI classes that I now use in all of my games. The appearance of them can be seen in SpacedOut but it was not until this project that I decided to make them reusable classes.
Branding, IllustrationThe Earthwind Inspire: Planetarium was an art installation at a music festival. It was powered by the Arduino R3 Uno and featured 25 programmable RGB LEDs inside of wire frame planets wrapped with paper. Some of the planets also had electroluminescent wire to form rings and a laser from a space ship.
Arduino, ArtThis is an open invitation to collaborate on a project. I find working with others -- particularly a variety of people -- accelerates my learning and enriches the experience. If you are at all interested on collaborating on a project, please contact me.
If you have any questions about a project, need some help with code, want to collaborate on a project, are interested in hiring me, or just plain want to talk, please do not hesitate to reach out.