MPCreations

Left Image
! WELCOME !

My name is Maxim Petrov and I am a game designer and programmer with experience in both software engineering and game development. I have worked on a variety of projects, ranging from professional software engineering/research roles to personal game development projects, each of which has shaped my skills and love for creating interactive experiences. You can find a list of all my projects below!

If you'd like to get in touch you can contact me through the links in the top right corner of the page. You’ll also find my resume there for your reference.

Thank you for visiting, and I hope you enjoy exploring my work!

↓ Projects ↓

Mono Escapes Death Icon

This project marked my first game made with Unity, which is a dungeon crawler bullet hell game with systems that are more complex than any other project I have made in the past. The goal of this project was to enhance my skills in gameplay programming, performance optimization, and game design.

As the gameplay programmer, I implemented a procedural generation algorithm to create unique, replayable level layouts, ensuring each playthrough felt fresh and engaging. I also developed a minimap system that can adapt to these procedurally generated levels. To optimize performance, I utilized Unity's object pooling system to efficiently manage large volumes of game objects, reducing memory usage and maintaining smooth frame rates. Through performance profiling and debugging, I ensured stability across diverse scenarios, delivering a seamless player experience.

In terms of gameplay design, I crafted a combat system with a variety of weapons and enemy types, incorporating playtester feedback to achieve balanced and engaging gameplay. Additionally, I implemented a player progression system to create a rewarding experience throughout the game.

More screenshots from the game can be viewed here and can be downloaded here. The repository for the project can be found here.

Recreating Git Icon

In this project, I recreated some of the core functionalities of Git version control using C++, enhancing my understanding of version control systems and refining my software development skills. I implemented several essential Git commands, including “init”, “cat-file”, “hash-object”, “ls-tree”, “write-tree”, and “commit-tree”.

The project involved implementing Git’s file storage and retrieval mechanism, utilizing SHA-1 hashing and zlib compression. This allowed me to generate unique identifiers for files and efficiently store their compressed contents, aligning with Git's approach to object handling. Additionally, I developed an understanding of Git objects, including blobs, trees, and commits.

This project improved my C++ skills and gave me a new appreciation of one of the most widely used version control systems in software development.

The repository for the project can be found here.

Divine Retribution 8-bit Project Icon

This project was my very first attempt at creating a fully-fledged video game from the ground up, and though it may have its flaws, I couldn’t be more proud of how it turned out. It’s a 2D retro platformer built in Godot, designed replicate the 1986 classic Castlevania. Everything from the player movement to the UI to the artstyle was focused on being as authentic as possible.

Throughout the development process, I had the opportunity to manage a small but talented team of two friends as art/music directors, making sure the game’s visuals and sound captured the essence of the original while bringing our unique flair to the project. I also worked closely with playtesters, incorporating their feedback to refine gameplay mechanics and ensure the game was both fun and challenging.

To ensure a smooth and bug-free experience, I carried out rigorous testing protocols, including unit tests, to identify and fix any issues before launch. This project taught me a lot about game development, teamwork, and refining a product based on real-world feedback. It was a challenging but rewarding experience, and I'm thrilled to see how it came together!

More screenshots from the game can be viewed here and can be downloaded here. The repository for the project can be found here.

Soulslike Platformer Project Icon

This project marked a significant step forward in complexity for me, as I transitioned from retro-inspired platformers to a more modern 2D hack-and-slash experience. Built in Godot, this game aimed to offer a more fluid and enjoyable gameplay experience compared to one of my previous project: Divine Retribution (8-bit Project). While that game was focused on emulating the style and feel of old-school platformers, I wanted this one to break free from the clunky/restrictive movement of past games, giving players smoother and more dynamic controls.

For this project, I used assets from other creators to focus on the design/programming of more complex gameplay systems/mechanics, including: enemy AI that could navigate through 2D terrain and recognize paths to chase the player, a dynamic combat system, an interactive tutorial, diverse level layouts with various environmental obstacles, a checkpoint system to save player data, various dynamic enemy movesets, as well as miscellaneous systems such as camera shake to create a more engaging experience.

This project was a major learning opportunity, allowing me to push my skills in AI development, dynamic system creation, and level design while learning how to create a smoother, more modern platforming experience.

More screenshots from the game can be viewed here and can be downloaded here. The repository for the project can be found here.

Retro FPS Project Icon

This is a 3D Retro FPS game meant to resemble the look and feel of 1994’s original DOOM. This project marked my first encounter with Unreal Engine 5 and its visual scripting system “Blueprints”. Although the foundation of the game was based on a tutorial, I was able to add my own twist by customizing several systems and features. I implemented a variety of new mechanics, such as weapon sway and item pickups, which weren’t part of the original tutorial.

One of my proudest achievements in this project was designing my own level and creating a unique boss fight to challenge players. I also developed reusable door mechanics that smoothly raise and lower, adding a layer of interactivity to the environment. AI was a major focus as well as I created dynamic enemy behavior using Unreal’s behavior trees, enabling them to navigate the flat 3D environment and engage players in more realistic ways. I also utilized vector math to design an 8-directional sprite system for enemies.

I was able to also learn how to create core mechanics that define the FPS genre such as hit scan detection using line traces. This project was an opportunity for me to dive deeper into Unreal Engine 5, strengthen my understanding of AI and combat systems, and create a fun, fast-paced retro FPS that brought some of my own ideas to life.

More screenshots from the game can be viewed here and can be downloaded here. The repository for the project can be found here.

Mega Man Platformer Project Icon

This project is a 2D action platformer inspired by the original Mega Man, built within Unreal Engine 5 using its visual scripting system, “Blueprints”. While the foundation of the project was based on a tutorial, I expanded on it by designing my own level, going through the iterative process of prototyping and drafting level layouts. Developing a 2D game within a 3D environment was particularly interesting as it gave me insight into how some of my favorite games use 3D spaces to craft 2D perspectives.

For this project, I implemented a dynamic camera system to isolate player encounters, ensuring gameplay always stays visually engaging and focused. I used line trace methods to introduce features like wall sliding and jumping, adding fluidity to movement and traversal. Additionally, I applied object-oriented programming principles to create reusable classes, streamlining the development of game actors.

More screenshots from the game can be viewed here and can be downloaded here. The repository for the project can be found here.

SFML Pong Project Icon

For this project, I decided to take a step back from traditional game engines and build a simple Pong game using C++ and the SFML library. My goal was to bypass the abstractions that game engines typically provide, giving me a deeper understanding of core game development concepts. I implemented all the essential mechanics, such as collision detection, boundary handling, and basic AI, from the ground up.

The game can be downloaded here. The repository for the project can be found here.

Warehouse Wreckage Project Icon

This project is a simple yet effective demonstration of physics in Unreal Engine 5, where you can shoot a ball at various objects and observe their interactions. The goal was to deepen my understanding of 3D physics within the engine. Through this project, I learned how to set up physics for both individual objects and composite structures made of smaller components. I also experimented with manipulating properties like mass to fine-tune the behavior of objects in response to collisions and forces.

While based on a tutorial, this project served as a fruitful learning experience, helping me build a solid foundation in Unreal Engine's physics system and explore how small adjustments can significantly affect gameplay dynamics.

The game can be downloaded here.

Obstacle Course Project Icon

This project is an obstacle course created in Unreal Engine 5. Moving away from blueprints, I used this tutorial-based experience to familiarize myself with the workflow of setting up and using C++ in Unreal Engine.

While most of the project was guided, I designed the level on my own, crafting an engaging obstacle course that helped reinforce my skills in designing. This project marks an important step in transitioning to more code-driven development in Unreal Engine.

More screenshots from the game can be viewed here. The repository for the project can be found here.

More Projects Coming Soon!