summaryrefslogtreecommitdiff
path: root/2022-09-24-190300_Nuki1Retrospective.md
diff options
context:
space:
mode:
Diffstat (limited to '2022-09-24-190300_Nuki1Retrospective.md')
-rw-r--r--2022-09-24-190300_Nuki1Retrospective.md68
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)
in each repos: see "about"-tab (if existing) for more details / README.
mailto contact at omeckman dot net
all timestamps in UTC (German winter time: UTC+01:00, summer time: UTC+02:00)
dark theme is a modded version of: https://gist.github.com/Yoplitein/f4b671a2ec70c9e743fa