diff options
Diffstat (limited to '2022-09-24-190300_Nuki1Retrospective.md')
-rw-r--r-- | 2022-09-24-190300_Nuki1Retrospective.md | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/2022-09-24-190300_Nuki1Retrospective.md b/2022-09-24-190300_Nuki1Retrospective.md new file mode 100644 index 0000000..6b9664f --- /dev/null +++ b/2022-09-24-190300_Nuki1Retrospective.md @@ -0,0 +1,68 @@ +--- +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) |