This isn't a full demake/game, just a proof of concept.
Details
I made a mockup hi-res image while thinking about the game, specifically
told Tom Hall I wasn't going to do this, but then did it anyway.
Legal Note
This product contains trademarks and/or copyrighted works of Id (or whoever
owns the relevant IP these days).
All rights reserved by them.
This product is not official and is not endorsed by them.
Current Status
You can read the story.
Mars overworld is about 75% there. Needs some fine tuning.
Keyboard handling is still atrocious. Working on it.
Levels 1-10 or so are somewhat playable
Keycards not implemented
The laser is ineffective against enemies.
Enemies besides yorps are not implemented
You cannot beat the game
Video
Recording of version 0.08 (yes I know it says v0.07, I forgot to update
that) playing in AppleWin.
Should also run on IIc or IIgs but not tested as much
Note: this uses page2 of lo-res graphics which is broken
on some model of IIgs, and the software workaround will
be slow
If you don't want to use an emulator / don't have an Apple II at home, you
can in theory play in a browser at the internet archive here:
keen1_lores at Internet Archive
Frequently Asked Questions
Why not hi-res?
That's the eventual plan. It's going to have at best 1/8 the
frame rate though.
Why did you release the game in an incomplete state?
These demakes are a lot of work for not much reward.
There area always various tradeoffs involved in how much
of a game I'm able to complete while still holding down
a full-time job.
Is there a level editor for the game?
The tilemap is just a big png file where certain parts
are tiles and parts are the map. Currently you can have a
256 column by 40 row map using 256 2x4 pixel tiles. This works out
to about 10.5k of data. This all compresses really well with ZX02.
Why are the controls so bad?
Apple II keyboard controls are a huge pain.
On the original Apple II you can only tell that a key is pressed:
no release, and no auto-repeat (well, there was a REPT button, it's
complicated).
Later models improved things, but I tend to target an Apple II+
because I have one.
The Apple IIe added an extra bit so you can tell if a key is
still being held down. The IIgs and IIc (I think) added much
more support for things like an actual buffer and possibly
interrupt support.
In the old old days you'd just use a joystick in situations like
this, but not everyone has one. The open/closed apple keys
map to the joystick buttons, however these aren't always mapped
by emulators in easy to access ways.
Are you a big fan of the Commander Keen series?
My family moved from an Apple IIe to a 386 DX 33MHz with a
Trident SVGA card around 1991 or so.
Soon after we discovered the joy of
shareware games, and we eventually accumulated more or less the
full Apogee output.
I did like the Keen games, though we only had the shareware
episodes.
In retrospect they had more impact than you think. Starting
in middle school I would constantly doodle "my" spaceship, along
with a few aliens. I somehow came to think of them as original
creations, but looking back it's obvious they were heavily based
on scenes from the Keen1 games.
Is this a difficult "demake"?
I almost don't want to call it a demake, as when the game was
released in 1990 you could still buy new Apple II machines
from Apple. Also the PC hardware Keen could run on wasn't really
that much more powerful than an Apple II. The original Keen
developers had a lot of Apple II experience and could have
easily made this themselves.
In any case it hasn't been too bad so far, but there are some
tricky things I am skipping for now (large enemies, pogo stick,
tiles you can go behind).
Development Notes
10 May 2024 -- v0.08
Was gradually adding in some of the levels, though they're not fully
playable and I'm going to have to update the engine to handle more
than 64 tiles.
I did implement the title menu and the story. For the story it's using
vapor-lock (reading floating bus to find vsync) to do unusual mid-screen
mode change fro text to hires. Writing cycle-invariant 6502 code is always
a challenge, especially when you're big enough your branches cross pages.
Why do this instead of using hi-res font routines? Just to be difficult
I guess (it also scrolls a lot faster)
21 April 2024 -- v0.07
Getting some more interesting glitches, but in theory the engine is
generic. Though the Mars overworld could share more common code, and
ideally we shouldn't have to re-load the ENGINE file each time as
I'm using a stock DOS3.3 filesystem so it has to seek up to the CATALOG
track each time before opening a file.
Things were going great until I realized LEVEL15 is 142 tiles wide.
Why? My code is optimized great for maps up to 128x80 tiles, this is
the only one wider than that. I guess I could go back to 256x80 but
that would take up 20k of RAM and not sure I have that much extra
hanging around.
You can in theory now pick up keycards and pogo but can't do anything
with them.
15 April 2024 -- v0.06
Mars overworld is functional but buggy. Teleporters are working.
After a lot of work got Level1 more or less working again
(everything broke in the 128x80 migration)
Working on making the game engine generic. Level2 is more or less
working.
13 April 2024
Worked on making the Mars overworld map be a proper tilemap, so that
we can implement other levels.
As part of this, changed the tilemap code to be 128x80 in size rather
than 256x40. This made things more complex (not one memory page per
row anymore) and broke a lot of things, but needed to handle larger
maps
8 April 2024 -- Version 0.05
Released a version that should have slightly better IIgs support.
Haven't tested on real hardware though.
7 April 2024
OK, people talked me into implementing better keyboard support for IIe.
It might be a few days until I get around to implementing it.
6 April 2024 -- Version 0.04
I guess I will release this as it's sorta fun to play and hitting diminishing
returns with features. Controls are still a pain. Having the yorps run
around is fun. Had to truncate the sound effects a bit to not be laggy
but they're nice too.
3 April 2024
Been working on this some more. Taking a while as I've re-written
some of the core, and also unlike the duke version I'm implementing
actual enemies that move.
I also wanted better sound effects, so wrote a tool that takes the
sound effects from the original game and dumps them in a format that
can be played by a somewhat modified version of Paul Lutus's sound
code from the Apple II Red Book. They sound great, but I can't use
all of them because the Apple II can't (easily) play sound in the background.
19 March 2024
This is taking way longer than it should because I have been
incredibly busy at work.
14 March 2024
Working on this a bit during spring break. Working on updating and
documenting the Duke Nukem engine. Wasting a lot of time trying
to get the controls to be playable.