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.

© 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.