--- Author: pux Tags: nuki1 nuki gamedev Language: english --- # 2022-09-24-190300_Nuki1Retrospective ## NUKI1 in Retrospective / dev-log See here [NUKI1 - Nuki and I explore the Galaxy - on baden.dev](https://baden.dev/p/nuki1) ### Quick introduction ```NUKI1``` or ```Nuki and I explore the Galaxy``` is a puzzle-platformer mix, and my first commercially released game. I tried to create a new unique genre-mix (in the somehow worn out platformer genre) implementing ideas that lingered in my mind for years, a lot of those inspired by some good old DOS games I played. ### Concept At first I wanted to make a top-down puzzler game, but felt that I needed more "action" and "physics" like advanced and precise platformer movement and artillery-game and rocket movement. Also, an inventory system with object interaction like in a RPG and puzzles that you need to solve in real life (on paper/via web lookup/etc.) were on my list. At the end I decided to make the game in 10 unique levels and integrate all of my crazy genre-mix-ideas. ### Implementation I started the game in Python only using tkinter as a "side-project", when I hit performance problems and coincidentally bought an ODROID GO SUPER device for cheap. I thought it would be nice to support the ODROID, and from then on I rewrote the game in C++ with ODROID support in mind (wasn't far anyways). I only wanted to use minimal dependencies, so it was SDL and tinyxml2, the rest of the game I wanted to write completely on my own, since that's where the fun lies! Writing physics/vector/math/... classes and basically the entire engine on my own! ### Programming #### Not so fun - Collision detection and handling - Wanted to have "pixel-perfect" collisions using AABB (Axis-Aligned Bounding Box) collisions with some second check of "penetration", which meant looking at how deep until the first row has a pixel that overlaps with other entity. - Getting this "okay" and also fast enough on the ODROID was quite challenging - Music: I LOVE music and someday I hope I'll make something, for now I didn't want to use third party music, so... #### The most fun - Physics - Movement - Jump/Double-jump - Jetpacking - Trajectory (Bow, Projectiles) - Recoil gun - Spaceship movement - Implementing the "ProNav" algorithm (see Wikipedia: https://en.wikipedia.org/wiki/Proportional_navigation) for homing missiles, especially after having the math/vector/linear algebra classes done - Item usage / inventory usage - equipping items and have them change stuff in the game world ### Stats All in all, with rewriting a huge part of the game (while getting better at C++), a lot of pixel painting and planning, I estimate around 1500 - 2500 hrs of work for everything. A lof of time was lost in the first Py version, me getting better in C++ and rewriting a lot of stuff. ### Download [https://baden.dev/p/nuki1](https://baden.dev/p/nuki1)