NBKnight is a 2D side scrolling action platformer game made with a custom engine in C++. In this project, I have implemented a data driven tile map, camera movement for scrolling, character animation system, collision detection and basic enemy AI. To allow easy creation of different levels, I have also created a level editor. In the level editor, I can load an existing level to make edits or create a new level. I can specify the dimensions of the tilemap and the set of tiles to use. A level is stored as two separate layers, one layer is for drawing sprites, another layer is for setting obstacles and character spawn positions. With the editor, I can easily paint tiles on the map, as well as setting the level collisions and spawn points.