KoiPond
KoiPond
KoiPond is a custom engine I worked on with 5 other programmers. This engine was designed to provide tools for metroidvania games such as polygonal landscape tool inspired by Ubisoft's UbiArt framework and thanks to this project I gained experience in game engine architecture, build engineering and basics in 2D physics.
KoiPond is a custom engine I worked on with 5 other programmers. This engine was designed to provide tools for metroidvania games such as polygonal landscape tool inspired by Ubisoft's UbiArt framework and thanks to this project I gained experience in game engine architecture, build engineering and basics in 2D physics.
Role
Gameplay Programmer, Scrum Master
Duration
16 weeks
Team Size
6 developers
Engine
Custom
Platform
PC, Nintendo Switch
Genre
Metroidvania
Role
Gameplay Programmer, Scrum Master
Duration
16 weeks
Team Size
6 developers
Engine
Custom
Platform
PC, Nintendo Switch
Genre
Metroidvania
KoiPond
KoiPond is a custom engine I worked on with 5 other programmers. This engine was designed to provide tools for metroidvania games such as polygonal landscape tool inspired by Ubisoft's UbiArt framework and thanks to this project I gained experience in game engine architecture, build engineering and basics in 2D physics.
Role
Gameplay Programmer, Scrum Master
Duration
16 weeks
Team Size
6 developers
Engine
Custom
Platform
PC, Nintendo Switch
Genre
Metroidvania
Role
Gameplay Programmer, Scrum Master
Duration
16 weeks
Team Size
6 developers
Engine
Custom
Platform
PC, Nintendo Switch
Genre
Metroidvania
My Contributions
My Contributions
My Contributions
Input API
Input API
Input API
The first feature I worked on for this project was creating an input API that would work for both PC and Nintendo switch since the requirement for our engine was that it can be run by both platforms. In the later stages of this project, I also added input events similar to the ones in Unreal Engine where the users can create an event by assigning it a name and corresponding input.
The first feature I worked on for this project was creating an input API that would work for both PC and Nintendo switch since the requirement for our engine was that it can be run by both platforms. In the later stages of this project, I also added input events similar to the ones in Unreal Engine where the users can create an event by assigning it a name and corresponding input.
The first feature I worked on for this project was creating an input API that would work for both PC and Nintendo switch since the requirement for our engine was that it can be run by both platforms. In the later stages of this project, I also added input events similar to the ones in Unreal Engine where the users can create an event by assigning it a name and corresponding input.
Box2D Physics
Box2D Physics
Box2D Physics
The most challenging feature I worked on for this project was the implementation of physics in our engine and since our engine target game genre was metroidvania we opted for using Box2D as our physics library. My contribution was integrating Box2D library in our engine and implementing first version of gravity and collisions.
The most challenging feature I worked on for this project was the implementation of physics in our engine and since our engine target game genre was metroidvania we opted for using Box2D as our physics library. My contribution was integrating Box2D library in our engine and implementing first version of gravity and collisions.
The most challenging feature I worked on for this project was the implementation of physics in our engine and since our engine target game genre was metroidvania we opted for using Box2D as our physics library. My contribution was integrating Box2D library in our engine and implementing first version of gravity and collisions.
UI programming
UI programming
UI programming
The last major engine feature I worked on was creating AI component for our engine by which the users could create UI entities such as sprites, or buttons. The button functionality was heavily intertwined with the input API I created and allowed the user to customize the button visuals when the mouse cursor was hovering over the button or active when using Nintendo Switch.
The last major engine feature I worked on was creating AI component for our engine by which the users could create UI entities such as sprites, or buttons. The button functionality was heavily intertwined with the input API I created and allowed the user to customize the button visuals when the mouse cursor was hovering over the button or active when using Nintendo Switch.
The last major engine feature I worked on was creating AI component for our engine by which the users could create UI entities such as sprites, or buttons. The button functionality was heavily intertwined with the input API I created and allowed the user to customize the button visuals when the mouse cursor was hovering over the button or active when using Nintendo Switch.


Jenkins
Jenkins
Jenkins




One of the requirements for this project was to have a CI/CD pipeline using Jenkins. Therefore, I took upon the task of setting this up in our university’s Jenkins server. This has been an interesting task for me since I had no experience in build processes, and I have learned about it by doing this. The most challenging part of this was to set up the build process that works on both PC and Nintendo Switch.
One of the requirements for this project was to have a CI/CD pipeline using Jenkins. Therefore, I took upon the task of setting this up in our university’s Jenkins server. This has been an interesting task for me since I had no experience in build processes, and I have learned about it by doing this. The most challenging part of this was to set up the build process that works on both PC and Nintendo Switch.
One of the requirements for this project was to have a CI/CD pipeline using Jenkins. Therefore, I took upon the task of setting this up in our university’s Jenkins server. This has been an interesting task for me since I had no experience in build processes, and I have learned about it by doing this. The most challenging part of this was to set up the build process that works on both PC and Nintendo Switch.
GitHub Scrum organization
GitHub Scrum organization
GitHub Scrum organization
Since I was the only person in the team interested in production, I also took upon the role of Scrum master for this project. My responsibility was to organize tasks and confirm the direction with our lecturers by setting sprint goals and deliverables. I learned how to use GitHub projects and boards.
Since I was the only person in the team interested in production, I also took upon the role of Scrum master for this project. My responsibility was to organize tasks and confirm the direction with our lecturers by setting sprint goals and deliverables. I learned how to use GitHub projects and boards.
Since I was the only person in the team interested in production, I also took upon the role of Scrum master for this project. My responsibility was to organize tasks and confirm the direction with our lecturers by setting sprint goals and deliverables. I learned how to use GitHub projects and boards.






Other Projects
Other Projects
Other Projects
© Copyright 2023. All rights Reserved by Martin Bazlekov.
© Copyright 2023. All rights Reserved by Martin Bazlekov.
© Copyright 2023. All rights Reserved by Martin Bazlekov.
© Copyright 2023. All rights Reserved by Martin Bazlekov.





