Ok, want to settle this

Here, you can get help with anything or just chat about the original Commander Keen games.
User avatar
Levellass
S-Triazine
Posts: 5265
Joined: Tue Sep 23, 2008 6:40

Ok, want to settle this

Post by Levellass »

Was Keen 6 or Keen 4 coded (Not released, coded) first? Because Keen 6's code is far more primitive than Keen 4s.

As an example look at the stunned sprites; Keen 6 reads stun star positions off a list and it's possible to crash the game if an 'invalid' sprite type is stunned. Keen 4 dispenses with this and has a far more robust system where any unlisted type is given a position of 0,0. (Keen 5 is even more efficient.)


But people keep telling me Keen 6 was coded even after Keen 5 and I'd like to settle this, for the sake of pedantry.
What you really need, not what you think you ought to want.
Keening_Product
Kuliwho?
Posts: 2167
Joined: Fri Jan 20, 2012 7:02
Location: Tied up in the Oracle Chamber's basement
Contact:

Post by Keening_Product »

I've just asked Tom Hall on Twitter. If he replies I'll report back.
Keening_Product was defeated before the game.

"Wise words. One day I may even understand what they mean." - Levellass
User avatar
KeenRush
Android Dummy
Posts: 2560
Joined: Sat Oct 27, 2007 20:57
Location: KEEN1.EXE
Contact:

Post by KeenRush »

Or maybe they took an older version of the basic engine when they started Keen 6, a version they had left blank for making future Keens, but they forgot they had improved some of the code during K4 and K5 development, and when everything seemed to work as it should, they just didn't notice it.
My newest mod - Commander Keen: Sunset: viewtopic.php?t=8568 | codename H.Y.E.N.A.
User avatar
Paramultart
VBB's Partner in Crime
Posts: 3004
Joined: Mon Jul 26, 2010 8:36

Post by Paramultart »

I think KeenRush is right. I'm guessing that John Carmack had little to no involvement with the Keen 6 code, and the game was probably slapped together in a short amount of time, leading to some pretty inefficient rigging.
Perhaps there were originally more memory-exhaustive features that required the engine to be stripped down a bit? Who knows.
"Father Mabeuf was surveying his plants"
Litude
Vortininja
Posts: 51
Joined: Tue Nov 13, 2007 20:57
Location: Finland

Post by Litude »

According to the 20th anniversary look back, the games were finished in the order 4, 6 and 5. There's no doubt regarding the fact that Keen 5 was finished last, but Keen 6 certainly seems to use an older code base than Keen 4 does.

But I don't think Keen 6 as coded first. I think the suggested reason, that they started working on Keen 6 before Keen 4 was finished and therefore used an older code base sounds very plausible. They probably used Keen 4 to test new improvements to the code and as such the code base of that game was pretty well updated. They probably didn't think it was worth the effort to port these improvements to Keen 6 in case something would break (though some of the improvements were implemented in the 1.4 and 1.5 patches).

In version 1.0 of Keen 6 you can find similarities to the pre-release demo of Keen 4 where the debug keys don't need to be activated, pressing a button during the introduction takes you directly to the menu etc.

But Keen 4 certainly began development earlier, e.g. the tileset doesn't allow room for the F10+Y borders (but both Keen 6 and Keen 5 do, suggesting these were made later).
User avatar
Levellass
S-Triazine
Posts: 5265
Joined: Tue Sep 23, 2008 6:40

Post by Levellass »

An interesting and convoluted story emerges.
What you really need, not what you think you ought to want.
User avatar
RoboBlue
It's that one guy.
Posts: 941
Joined: Wed Apr 23, 2008 10:26
Contact:

Post by RoboBlue »

Litude wrote:But Keen 4 certainly began development earlier, e.g. the tileset doesn't allow room for the F10+Y borders (but both Keen 6 and Keen 5 do, suggesting these were made later).
Was there ever a patch to fix F10+Y on Keen 4? (It works on Keen 6?)
I know the idea was brought up, but I haven't heard anything about it for years.
Image
User avatar
Nospike
Keen Minecrafter
Posts: 1402
Joined: Tue Mar 30, 2010 13:56
Location: Czech Republic

Post by Nospike »

Does it work in every version of Keen 6? I don't know about 1.4 but I know for a fact that in 1.0 it gives you garbage, just like Keen 4.
User avatar
Levellass
S-Triazine
Posts: 5265
Joined: Tue Sep 23, 2008 6:40

Post by Levellass »

Nospike is correct, working F10-Y is not a feature of Keen 6. There is space for it in the tileset, but these tiles have likely been removed by their memory saving program.

The same is true in Keen 4, but actual graphics have been placed over where they were, this is also not surprising, look at the demo version of Keen 6.


F10-Y as a development tool probably wasn't needed as things wrapped up. its survival in Keen 5 might attest to greater caution in testing or simple luck.
What you really need, not what you think you ought to want.
NY00123
Vorticon Elite
Posts: 508
Joined: Sun Sep 06, 2009 19:36

Post by NY00123 »

Hey all,

I've considered adding details as follows for a little while, and now as it's February 12 of 2015, it may look like a good chance to do so. (If you're wondering why, it looks like today, 23 years ago, version 1.4 of each of Keen 4-6 was finalized for Apogee and FormGen. A few details are given below.)




=== Part 1 (A few guessed bits about the development progress of the episodes) ===




To begin with, I don't know everything about this, but what I think we do know by now is that Keen 4-6 eventually became a single codebase. There may be some parts which were not in sync, but it's clear that a lot was shared and updated for all episodes. I think that version 1.4 of each episode as prepared for Apogee and FormGen is a good example of us.

Also, it was told that it took 3 months to complete Keen 4, then 2 months to complete Keen 6 and finally 1 month to complete Keen 5 (taken off http://planetromero.com/2005/12/happy-birthday-keen-4-6). However, as it looks like the original release of Keen Dreams was prepared on July of 1991, while Keen 5 became available on December, I think it should be quite obvious that some work was done on more than one episode in parallel. Catacomb 3-D was also made, sharing a lot of code (mostly the ID Engine, but possibly some other code pieces copy-and-pasted from one of the Keens and/or another title). Romero has recently confirmed they further worked on a canned title named "Complete Planetary Domination" during these times, which should answer this: https://github.com/FlatRockSoft/Catacom ... S_2.C#L252




=== Part 2 (PicturePause stuff) ===




It's probably good to clarify about the role of the F10-P debug keys combo. In the Keen Dreams sources, it just leads to a wait for a key press, but it looks like there was a replacement made for Keen 4-6. Taking a hint from the publicly available Catacomb 3-D sources (and also the Wolfenstein 3D sources), a function named PicturePause was written to be called following a press on F10-P. The exact behaviors may depend on the game version, but in general this was made to do some shuffling in video ram and then wait for a key press before quitting. There are chances this was made in order to be able to print an in-game screenshot, and/or send such a screenshot to another program in some way. There may be a few times this reproduces a bit glitchy shot on the screen, but then it's just a debug key combo again.




=== Part 3 (A few diffs between game versions, but not all of them) ===




Alright, it may be a good chance to look at some versions of games. Only EGA released were checked in general, and not all known changes are listed; Most of these can be found in the KeenWiki. What is added here is notes about the F10+P debug keys somewhat differing from what's currently described in the KeenWiki. Comparisons between the versions in what looks like a chronological order is done, with the addition of the related Catacomb 3-D title.

- Keen 4 Special Demo Version 1.0: It was (probably) prepared on October 9 of 1991. This may be the earliest revision of any of Keen 4-6 which was ever released back in the 90s. While it does look like both Keen 6 and Catacomb 3-D were developed in the meanwhile, there are enough signs that Keen 4 wasn't yet ready (like the worldmap music). Pressing a key during the introduction skips the title screen and takes you right into the control panel. The debug keys are always enabled, and F10+P seems to call PicturePause, leading to a playback of the 1-UP sound effect, the video memory shuffling described above, and a wait before exit. Furthermore, there's no "Quiet Adlib/Sound Blaster" option and Paddle War has no speed limit (hence it may be too fast on anything newer than, say, a 386).

- Catacomb 3-D v1.00 (apparently later releases were not prepared by id): Seemingly formed on November 15, the "Quiet Adlib/Sound Blaster" option is missing again (although it's probably less useful in this title). While Cat3D's version of Paddle War (aka Skull 'n' Bones) is fixed, it's a bit slower than Paddle War as known from the various releases of Keen 4-6. Again, debug keys are always enabled, and F10+P leads to PicturePause again. While a few internal details about PicturePause are possibly different, this seems to lead again to the same kind of memory shuffling, although it results in clear graphical glitches. Chances are this code was simply written for Keen 4-6 and merely copied into Catacomb 3-D with some other cheat codes.

- Keen 6 v1.0: Prepared on November 15, this has Paddle War fixed and the "Quiet Adlib/Sound Blaster" option added. Debug keys are permanently enabled again, previous notes about F10+P still apply, and again pressing on a key during the introduction doesn't lead to the title screen.

- Keen 4 v1.0: While all files from the game may have the common timestamp of "December 1 1991 13:00", it looks like this was a part of some policy coming from Apogee (I don't remember the source for that as of typing this). However, an original ZIP archive (e.g., _1GALAXY.ZIP) can be found with an installer file named #1GALAXY.EXE and having the timestamp of "November 22 1991 04:32". Changes from version 1.0 of Keen 6 apply. In addition, debug keys have to be enabled by pressing on A+2+Enter (the /NOWAIT command-line argument can also be used). Furthermore, F10+P simply leads to a wait for a key press. The EXE still seems to have PicturePause, but it's not called at all. Finally, if one presses on a key during the introduction then the title screen is shown.

- Keen 6 Special Demo Version 1.0: Possibly prepared on the same day of Nov 1991 as Keen 4 v1.0 (an installer has the timestamp of "November 22 1991 11:21"), this looks based on the little-bit older codebase for Keen 6 v1.0. At least a few of the changes between Keen 6 v1.0 and Keen 4 v1.0 (if not all) don't apply here.

- Keen 4 v1.1: Again, files may have the timestamp of "December 1 1991 6:00", while another installer file named #1GALAXY.EXE can be found in an archive (1GALAXY.ZIP) with the timestamp of "November 23 1991 20:11". As expected, this release looks very close to Keen 4 v1.0.

- Keen 4 v1.2 and Keen 5 v1.0: While the numbers may differ, it looks like these two actually came from the same revision of the codebase, so v1.0 was probably chosen for Keen 5 since it was the first public release of this episode. The game files from both of these are stamped "December 15 1991", possibly with different times. Among other changes from earlier releases of Keen 4 and 6, it looks like PicturePause waits for a key press here, usually leading to a return to the game. However, if it's the Enter key which is pressed then the usual memory-shuffing-and-quit sequence is executed. In addition, the jumping Keen sound effect is played back before the 1-UP sound in such a case.

- Keen 6 Promotional Release Version 1.0: This one is a bit weird. Prepared on January 17 of 1992, the title screen is shown after pressing a key during the introduction. However, it is the same as the Demo Version in other manners (like the debug keys).

- Keen 4-6 v1.4 as prepared for Apogee and FormGen: The game files from the FormGen releases of Keen 4 and 6 v1.4 share the common timestamp of "February 12 1992 22:34" (I'm not sure there was a separate FormGen release of Keen 5, although it's obvious they at least offered the game, possibly Apogee's title). While the situation is again less clear with Keen 4-5 v1.4 for Apogee, I do think all of these come from the same revision of the codebase and prepared around the same time. Comparing the Apogee and FormGen releases of Keen 4 with EGA graphics, they seem to differ just by the EGA data (including the EGAHEAD and EGADICT chunks embedded in the EXEs).

- Keen 6 v1.5: Was probably prepared on May of 1993 due to Keen 6 v1.4 being a bit of a rushed release for some reason, with a couple of bugs that should be very obvious to anybody who gets to properly finish the game (ok, at least one of these bugs). As for the F10+P cheat, I think the implementation here as built into the EXE (EGA and CGA releases) is a bit buggy. Rather than waiting for a key press in PicturePause, there are *very* high chances the game will effectively freeze in a never-ending loop (unless you're *really* quick with keyboard tapping, and that's a very big "maybe"). Interestingly, the released Catacomb 3-D sources have zero mentions of "volatile" (and also very few mentions of "const"), which may explain this bug (i.e., a query of a variable's value that should change following a key press is replaced with an access to a copy of the original value in a register).

- Keen 4-5 v1.4 as prepared for GoodTimes Software (GT Interactive Software): The latest release known, from July of 1993. No known CGA release is available, and chances are it was not made at all by that time. A couple of bugs are known to be fixed in Keen 5 here. The "Order info" section is removed from the list of sections available by pressing on F1 (in Keen 4 and 5 altogether), but the list itself is there as usual. When one thinks about it, it may seem a bit weird the same was not done for Keen 6. Similarly, it may look a bit weird that the "Read This!" section from Wolfenstein 3D wasn't enabled in Spear of Destiny and later releases of Wolfenstein 3D for DOS, just without the ordering info.
Last edited by NY00123 on Thu Feb 12, 2015 20:36, edited 2 times in total.
User avatar
VikingBoyBilly
Vorticon Elite
Posts: 4158
Joined: Sat Jan 05, 2008 2:06
Location: The spaghetti island of the faces of dinosaur world for a vacation

Post by VikingBoyBilly »

NY00123 wrote:and now as it's February 12 of 2014,
No it's not. Check your facts.
Image
"I don't trust players. Not one bit." - Levellass
NY00123
Vorticon Elite
Posts: 508
Joined: Sun Sep 06, 2009 19:36

Post by NY00123 »

VikingBoyBilly wrote:
NY00123 wrote:and now as it's February 12 of 2014,
No it's not. Check your facts.
I've known it's weird that Keen 4-6 are supposedly going to be "just" 23 years old by the end of this year. Thanks for notifying me of the typo!
User avatar
szemi
Vorticon Elite
Posts: 1722
Joined: Sun Jan 11, 2009 15:19
Location: Hungary
Contact:

Post by szemi »

Maybe off-topic, maybe not:

After Keen 6...
The only shame is ID sooo mentioned in Keen 5 "It'll be the biggest Keen ever!" "See you in '92 christmas" (aka Keen 7-9) (when Keen and Mort will fight for the universe).

And the strange thing they planned the Universe is toast, but during Keen 5 they knew Wolf3d will be their next project (not kidding).



But thanks to Ceilick we have the unofficial Keen 7-9, which should be revised quickly, especially Keen 7.
Yeah, piece of cake!
Calvero
Vortininja
Posts: 98
Joined: Tue Jan 29, 2008 15:31

Post by Calvero »

NY00123 wrote:- Keen 4 v1.0: While all files from the game may have the common timestamp of "December 1 1991 13:00", it looks like this was a part of some policy coming from Apogee (I don't remember the source for that as of typing this). However, an original ZIP archive (e.g., _1GALAXY.ZIP) can be found with an installer file named #1GALAXY.EXE and having the timestamp of "November 22 1991 04:32".
The first time I read of that policy was in a post by Litude.
User avatar
VikingBoyBilly
Vorticon Elite
Posts: 4158
Joined: Sat Jan 05, 2008 2:06
Location: The spaghetti island of the faces of dinosaur world for a vacation

Post by VikingBoyBilly »

One of my pet theories is they might have wanted to use a modified wolf3D engine to build TUIT. Not necessarily as an FPS, but... come to think of it, Mario 64 revolutionized the whole moving 3rd person camera thing, didn't it? Tom Hall said mario 64 is what he imagined TUIT would be like, and I'm thinking a 3rd person camera might have been one of his ideas.
Image
"I don't trust players. Not one bit." - Levellass
Post Reply