breakoutPoster

Game Engine

Individual project

This is a very long solo project where I’ve developed different modules for a generic Game Engine using C++ in Visual Studio.

Here is the link to the game I developed using all these modules : https://hitesh.itch.io/breakout

Here is the link to the code: https://github.com/HitheshwarMittapelly/GameEngine

Some of the core modules I've developed include

Custom Memory Manager: I’ve developed a custom memory manager to gain more control and efficiency over the allocation and deallocation of the memory. I’ve built some custom data structures to manipulate a large contiguous block of memory I’ve collected from the process heap. The manager keeps track of the available free spaces in the block by holding the start addresses of those spaces, and also keeps track of the in-use memory by flagging it. Upon deallocation, the flag is removed and added to the available spaces. The whole free space is divided into buckets of different size slots like 8 bytes, 16 bytes, and 32 bytes. When an allocation request is received, the manager looks up for the appropriate size slot and passes it back, for example, if the incoming allocation request is for 6 bytes, an 8-byte slot is passed back. This control over memory helped me reduce memory wastage, which is very hard to achieve if we do not have a custom memory manager. To make things simpler for myself and whoever using this project, I’ve overridden the new and delete operators of C++ to use the custom memory manager.

2D Collision System: I’ve also programmed a 2D collision system that checks for overlapping objects using the complex matrix computations involving the position, orientation, and size of the objects. I’ve implemented a simple interface that gives all the data needed about the collision that occurred during the current frame.