I’m learning the basics of game development. As my first learning experience, I’m recreating Keen 6 from scratch, with the exception of the sprites . Commander Keen is a very nostalgic game from my early childhood. Seeing that there is still an active community with amazing mods and level designs makes me very happy.
This post is not meant in any commercial way. This project is purely educational for myself. I’m here to share and connect with other people who love Commander Keen!
For anyone who’s interested: I’m making this in the Godot Engine, so it’s not tied to DOSBox, which results in a much smoother gameplay feel. My goal is to (almost) recreate the entire game in order to learn the meta mechanics of game design. At the moment, I’ve nearly completed the first (actual) level.
I wish you the best of luck on this project! I've been hoping someone would make a Godot framework that replicates the Goodbye Galaxy style of Keen gameplay, and this shows potential even in its early stages. I look forward to seeing how far you go with this.
Looks great! I have no familiarity whatseover with the setup/engine you're using for this, but if this is a recreation of galaxy from first principles then it's a very impressive start.
Dark's comment about jumps and gravity is of course correct, but you will undoubtedly be well aware of that and I'm sure fine tuning will be done.
I would like to add that the same is needed for the camera, as currently (based on watching the youtube at least) it is actually a little vertigo-inducing. I then watched a bit of Bloogwaters crossing in a Keen6 playthrough and the camera movements are totally different. They are actually a lot less smooth than yours which seem to be pixel by pixel. The original galaxy camera movement is more akin to the rapid movements (called saccades) which are actually how the human eye moves most of the time. The original Keen6 camera keeps up with Keen in a way that feels much more comfortable to look at.
Again, I'm sure you're well aware of this but I'm saying it to make sure you don't forget to work hard on the camera!
I think the original Keen games used fairly discrete “snap” scrolling rather than smooth interpolation, which could be why it feels different here. It might be worth checking whether any smoothing is currently applied in the Godot camera movement.
If you want to, reproducing the original camera should be possible. The way the Keen 4–6 camera works is relatively straightforward: there is, indeed, no interpolation except in one case.
For most levels:
Keen starts out (at the beginning of levels and/or after entering a door) centered on the screen, if possible: his feet are at (152, 140)px.
(If this isn't possible, get as close to it as you can without moving past the edge of the level or scroll blocks.)
Keen's X-coordinate should stay between 144 and 192 px. If he moves too far to the left or right, scroll the camera until he's within that range.
(This means that the camera should move at the same rate as Keen when he's pushing against those values.)
Keen's Y-coordinate should stay between 33 and 167 pixels. Similarly, the camera scrolls to keep him here.
When Keen is standing on solid ground, _then_ there is some interpolation: the camera's Y-coordinate is interpolated until Keen's feet are at 140px.
This means that the camera will centre Keen vertically, but only on solid ground. The interpolation is pretty quick, so at the rate Keen moves (e.g., up/down slopes), the camera follows him perfectly.
Keen can Look Up / Down, which adjusts the 140px "centre" point above. This can range between 33–167px, and is reset to 140px whenever Keen leaves the ground.
It's a bit different on the world map, and on the Well of Wishes level in Keen 4, and things like ledge grabbing lock the camera, but that's the basics of it.