CCCC OOOO M M M M AA N N DDD EEEE RRRR CC OO OO MM MM MM MM AAAA NN N D D E R R C O O M M M M M M M M A A N N N D D E E R R C O O M M M M M M AAAAAA N N N D D EE E RRRR CC OO OO M M M M M A A N NN D D E R R CCCC OOOO M M M M A A N N DDD EEEE R R K K EEEE EEEE N N K K E E NN N KKK E E E E N N N K KK EE E EE E N N N K K E E N NN K K EEEE EEEE N N COMMANDER KEEN NEWSLETTER :) Issue-2: April 7, 2002 Working Title: Swim swim hungry (C) 2002 by Joseph Burke all rights reserved. All trademarks are properties of their respective owners. Warning: This document may not be distributed without permission. ----------------------------------------------------------- Newsletter Homepage: http://www.commanderkeen.net Newsletter Index: [1] Featured Articles [1.1] Interview with Joe Siegler [1.2] Plumbing the Depths of Keen [2] Fan Game Reviews [2.1] Dope Fish Game [3] Website Reviews [3.1] The Official Dopefish Home Page [3.2] Commander Keen Odysee [3.3] Apogee Central [3.4] Commander Keen Nexus [4] Monthly Fiction [4.1] Sorry not this month [5] Keen Community News [5.1] Edit Keen1-3! [5.2] New Website: Commander Keendom [5.3] Commander Keen Flash Cartoons! [5.4] April Fools Joke [5.5] Keen Narrative Poems [6] Miscellaneous Stuff [6.1] Feedback + Questions & Answers [6.2] Announcements [6.3] Credits ----------------------------------------------------------- [1] Featured Articles (We aren't looking for a permanent "Featured Article" writer at this time, but if you want us to publish an article for you, we'd be most obliged. Email "forge315@commanderkeen.net" about this.) [1.1] Interview with Joe Siegler CK-Newsletter: Where are you from Joe, how did you end up at 3DRealms? Joe Siegler: I was born in Norfolk, VA, but was only there till I was like a year old. Spent two years in New Jersey, then the bulk of my life in Philadelphia. Moved here in December 1992, and I've been here since. There's a bunch more details on this part of my life on my profile on the 3DR site: http://www.3drealms.com/bio/siegler.html Question: At 3DRealms, does everybody know everybody and get along? Are there some really true friendships amongst coworkers? Answer: Certainly. Lee Jackson and I have been friends for many a year, as am I a friend of Bryan Turner's. I've had many friendships with folks who have come and gone over the years here (Chuck Jones & Doug Wood of Valve, Jim Dose of id, Levelord over at Ritual..). I can't speak for everyone else here, but from my viewpoint, yeah - most folks get along with everyone else. If there's a "problem" in this area, that person won't generally last, due to the tight knit working area in a game company such as ours. Question: What happens if you go to the bathroom for half an hour; is it possible for you to get in trouble? Answer: That depends on what you DO when you're in the bathroom. Unfortunately, it's hard to use the bathroom without taking down your pants, which is where most people get into trouble. Question: How do you feel about companies like 3DRealms and id Software, who seem to just be doing a rehash of their old games? Answer: How do I feel about companies like 3D Realms? Er, I work at 3D Realms. How do I feel about myself doing a rehash? I don't see it that way. As for id? id seems to be known mostly as a tech company. The games they produce are fun, quality titles - mostly a byproduct of having kick ars tech in their titles. Their games haven't ever really been that "deep" in terms of storyline. I know some people will see that as a flame, but my perception is that they make great titles, but their main focus is tech, where some other companies titles are focused mostly on the game play. Question: Do you believe that 3DRealms will be able to break free of the Duke franchise and make games that appeal to a wider audience? You guys tried this with Shadow Warrior, does it hurt when a game you make does badly? Answer: What makes you hink Shadow Warrior did "badly"? It certainly did not. Was it the #1 seller in product line? No, of course not. It did well enough. Was it the greatest seller we ever had? No. Did it do as well as we would have liked? No. But that DOES NOT mean it did badly, or failed, or any other "negative" adjective you could throw in there. Break free of the Duke franchise? That statement assumes we would want to do that. :) Seriously, we don't know what we're doing yet after Duke Nukem Forever - we've had some brief "Hey, do you think we should do..."type discussions, but nothing will be decided upon until DNF is out, finished, all patches are done, and any addons (assuming we do any in the first place) will be completed. If we do decide to do something really different, we won't know what that is until then. I think most people here are focused on DNF, though and aren't spending much time thinking about things like "What else should we do?" Question: Are you happy with your guys' latest Duke Nukem game? Answer: Nah, it's a piece of crap. We've just been farting around all this time hoping something cool we can license will come around and save our asses. (For the record, that's sarcasm for the humour impaired). Question: Are you still going to be at 3DRealms in ten or fifteen years and if you are why? Answer: That's the plan. Don't know if I can really answer this one. One never knows where life will take them. Question: When a game gets close to being released a company enters crunch mode, do you experience this too? Answer: Me personally? Yeah, I do - but nothing like the developers do. My main responsiblity are coordinating the online activities (releases, news, etc), so as a game comes close to being done, I have more things to deal with. I also create CD masters here, as well as creating the files made available for download, so I have a lot to do there. Also, once it's close to being done, most everyone is under orders to play the crap out of the game, so there will be a lot to do there playing DNF. While that sounds fun, remember, pre-release testing IS A JOB, and while it is fun and kick ars, don't think we just sit around and do nothing more than play. The whole time, you're expected to look for problems, issues, glitches, the kind of thing someone in the public would notice. Question: As time passes games advance in technology and features, genera's become more distinct and divide into categories; what are some key elements you look for in a game? Answer: I don't know if I'm the perfect person to answer this one, because my personal interests right now tend to run counter to what a lot of people here are into. My first preference is sports games, followed by scoller games (of which we haven't had a good one in some time - check out Duke Nukem Manhattan Project when released, that's a good one). I suppose if I had to guess, the ever evolving world of visuals will bring games closer to "reality". Of course, there's other issues involved with that, and that's not really an answer to this question. :) Question: What are you passions in gaming do you still like playing both old and new games? Answer: See above. My personal passion is sports games - specifically baseball games. Anyone who knows me, knows that I love baseball. Right now I'm spending a lot of time with All Star Baseball 2003 on my Xbox. Question: It's common knowledge that you're a big DopeFish fan, has your fandom survived the years? Answer: You mean my being a fan of Dopefish, or the "Dopefish fandom" in general? NOt sure how to answre this. Question: Will the DopeFish appear in the new Duke Nukem game? How about Commander Keen; or was that only done in the past? Answer: That stuff falls under "Area 51". Can't discuss specific DNF content. :) Question: Would you like to see Commander Keen killed again in the new Doom game? If he were, do you think it would be a 3D-Keen or a pic on the wall? Answer: What makes you think he was "killed" in the first place? Question: What types of music do you like; can you name one or two bands from several categories? Answer: BLACK SABBATH! If you didn't know, I run http://www.black-sabbath.com as a fan site, but it's evolved over the years to the point where some people think it's an official site. I tend to enjoy most anything in doses. I'm also listening to Jazz now, too. Things I don't like.... Things like Limp Bizkit and Tool (blech). I also don't see the appeal of "angry rap" stuff. There's enough hostility in the world without perpetuating it in one's entertainment, too. Question: What's your history with pets do you have any? Answer: I'm a cat person. I've lived with four cats during my lifetime. My first was a Siamese named "Leah Ming" (who we later renamed Baby). Was a great cat, but since I was 15 and my brother was 10, that cat put up with a lot of crap. She eventually died at 18.5 of kidney problems (although I had moved to Texas a few years before that). After a year in Texas, I got a Tabby which I named Flash (after the dog on Dukes of Hazzard). That cat was a kitten of George's girlfriend's cat. That cat died a bit too young 3 weeks before her seventh birthday also of liver failure. Now, I have two Tonkinese cats, one about 18 months old, and the other about 7 months or so. The older one is a female named Kira (after Kira on Deep Space Nine), and the 7 month old boy is named Zathras (after Zathras on Babylon 5). Question: People have personal hobbies or talents, some which are considered unessential while others valuable. An unessential talent would be playing computer games, where as drawing a valuable talent. What are some hobbies and talents you have? Answer: I feel I have a good eye for web site design. I can tell whether the person who has designed a web site knows what they're doing simply by the first page on their site. I also can spot an idiot driver a million miles away. :) Question: Would you ever be interested in designing your own game and become the creative director, do you feel you have the ability? Answer: Yeah, I could probably do that. I've been here long enough to see what games have come out and what works and what doesn't. Problem is you have to be really motivated for that, and I've gotten rather set in my ways. My first love is the web now. Question: There are two types of people in the world, some who like hot weather, and others who like cold weather; which are you? Answer: Cold baby! These people in Texas bundle up with coats and scarves when it gets to 50! Freaks! :) Newsletter - Goodbye: Thanks for the interview Joe, *Burp!* Answer: Burp yourself! ------------------- [1.1] Plumbing the Depths of Keen Welcome to the first in a series of articles examining the structure and layout of Commander Keen's data files. The aim of these articles is to provide a complete reference to Keen data formats which can be used by people writing utilities to modify Keen, or just as a source of ideas for people writing their own games. These rather technical articles will probably be interspersed with others on more general topics which would appeal to more people. Well let's get down to business. The topic of discussion today is... maps! KEEN CARTOGRAPHY All the Keen games store their level data in one or more map files; Invasion of the Vorticons has uses one file for each level, while Goodbye, Galaxy!, and Aliens Ate My Babysitter! each store all their maps in one file. I'll begin by examining the format of level files in Vorticons, as it is simpler, and moreover the later formats are based on it. Marooned on Mars, The Earth Explodes, and Keen Must Die! store their levels in files named LEVELnn.CKe, where nn is a two-digit level number, and e the episode number. Most of the files are just levels in the game, but there are a few special ones: LEVEL80 is the large world map, LEVEL81 is a special map, used in the story, and LEVEL90 is one long level containing the title screen and the backgrounds to the High Scores, Ordering Info, and About ID screens. I'll now describe the format of these files. In the rest of this article, I'll use the terms byte, word, and dword to describe 8-, 16-, and 32-bit integers respectively. All the level files are compressed, using a simple word-based RLE scheme: a word 0xFEFE indicates a run of identical words; the next two words indicate the length of the run, and the repeated word. At the highest level then, the level format looks like this: Uncompressed length: dword Compressed data: 1 or more words A basic RLE decompression algorithm would be: Read length (dword) Allocate output buffer of length bytes While there is input and the output buffer is not full: Read datum (word) If datum is 0xFEFE Then: Read count (word) Read datum (word) Do count times: Write datum (word) Else: Write datum (word) Repeat. Similarly, a basic RLE algorithm for compression: Set length to input length Write length (dword) Set count to one Read lastdatum (word) While there is input: Read datum (word) If datum equals lastdatum Then: Increment count Else: If count >= 4 Or lastdatum is 0xFEFE Then: Write 0xFEFE (word) Write count (word) Write lastdatum (word) Else: Do count times: Write lastdatum (word) Set count to one Set lastdatum to datum Repeat. Now we get into the real guts, the actual map data. After decompressing, we're left with a format like this: Width: word Height: word Planes: word Reserved: 4 words Plane Size: word Reserved: 8 words Plane 0: (Plane Size) bytes Plane 1: (Plane Size) bytes The Width and Height specify the width and height of the map in terms of tiles (for example, LEVEL03.CK1 is is 81 tiles wide and 53 high). Planes specify the number of data planes in the level; for Keen Vorticons this is always 2. The next four words are ignored by Keen. The Plane Size is the size in bytes of the data planes; it is equal to Width * Height * (word size), rounded up to the next multiple of 16 bytes (for example, this value in LEVEL03.CK1 is 8592). This is followed by eight more words that are ignored. Then comes the plane data: for each plane, this is Width * Height words, padded to a 16-byte boundary. Of course, this is fairly meaningless without an explanation of the different planes. Plane 0 is the foreground plane, consisting of a two- dimensional array of tile numbers (one per word) for the tiles that make up the level. Plane 1 is the so-called info plane, and contains one word of extra information per tile in the level. This information includes sprites, message numbers (for the yorp-statues and Vorticon elders), and switch information (for the bridge switches) in the level maps, and level numbers and teleporter information on the world map. One last point to note about the levels is that there is a two-tile-wide border surrounding each level that is never seen on screen; this is primarily due to a requirement of the smooth-scrolling engine that Keen uses. THE NEXT GENERATION Although Keens Galaxy and Aliens store their level maps in one file, GAMEMAPS.CKe, the format is substantially similar to the format used by Keen Vorticons. Also associated with the maps is a data table in the .exe that I shall refer to as MAPHEAD (indeed, some other games based on the same engine, such as Bio Menace, store this table in a file called MAPHEAD). I'll start by describing the structure and usage of this table: RLE Flag: word Header Offsets: 100 dwords The MAPHEAD contains the flag word (0xABCD in both Galaxy and Aliens) signifying a run in the RLE-compressed level data, followed by an array of 100 dwords being the offset in the GAMEMAPS file of the level header, or zero if the level does not exist. The first of these, level 0, is the world map. Because this MAPHEAD table is stored in the .exe, modifying it is complicated: one of the reasons that level editors for these episodes have taken a long time to appear. The GAMEMAPS file starts with a signature identifying the version of TED it was made with ("TED5v1.0" in all cases), followed, neither immediately nor necessarily in any order, by the level headers and plane data for each level. In fact, due to a bug in TED5, there are usually several junk bytes between the signature and the start of the important data. Dealing with the GAMEMAPS file requires getting the offsets of the level headers from MAPHEAD before reading the header. The level header has the following format: Plane 0 offset: dword Plane 1 offset: dword Plane 2 offset: dword Plane 0 length: word Plane 1 length: word Plane 2 length: word Width: word Height: word Level name: 16 bytes (null-terminated) Signature: 4 bytes "!ID!" It starts with three dwords specifying the offsets from the start of GAMEMAPS of the compressed plane data, followed by three words giving the lengths (in bytes) of this compressed data. Then come two words giving the width and height of the level respectively (in tiles), and then a null-terminated string with the name of the level (used only by the editor), and a signature marking the end of the header. Once more the level data is compressed, but this time each plane is compressed separately, and two consecutive compression algorithms are used, also. The first is RLE, identical (except for a different flag) to that used for Keen Vorticons; the second is a simple repeated- sequence removal technique, known as "Carmack compression". When decompressing, you must first de-Carmackise then un-RLE the data to get the plane data. The Carmack compression is used to remove repeated sequences of words, replacing them with a reference to the first instance of the sequence. It has two reference types, near and far. A near reference is marked by three bytes: the number of words in the sequence, 0xA7, and the relative offset of the start of the sequence from the start of the reference, counting backwards. Thus the reference 0x03 0xA7 0x06 would effectively mean "repeat the first 3 of the last 6 words". A far reference is marked by four bytes, and is used to reference sequences that are more than 255 bytes from the reference. The first byte is once more the length of the sequence in words. It is followed by 0xA8, and a word specifying the absolute offset of the start of the sequence from the start of the uncompressed data. If a word in the uncompressed input stream had a high byte of 0xA7 or 0xA8, it would be replaced in the compressed data by a reference with a sequence length of zero, with the byte following the reference signature byte being the low byte of the input word. Note that a zero-length reference like this will only ever have a single byte following the signature. As for the RLE data, the first word in the Carmack-compressed data is the length of the uncompressed data in bytes. I won't present algorithms for Carmack compression and decompression here, because they should be fairly obvious given the description above; for example code, look at the TED5 source code (compression) and the Wolfenstein 3D source code (decompression). There are three planes in Keen Galaxy and Aliens levels: Plane 0 contains background tiles which the player does not interact with at all; plane 1 contains all the foreground tiles, those that the player can walk on or behind; and plane 2 is the info plane, similar to Keen Vorticons. However, the info plane also has information for the new features in Keen Galaxy, such as special markers to split a level up into different sections, also markers for moving platforms, switches, doors, etc. Keen Galaxy and Aliens levels also have a two- tile-wide border that is never seen. THE END IS NIGH I think that about covers it. As usual, if you have any comments or further questions, don't hesitate to email me: andy@durdin.net. Note that this information may also apply to some degree to other games; for example Shadow Knights, and some of the Dangerous Dave series use apparently the same file format as Keen Vorticons, while newer games like Bio Menace use the same format as Keen Galaxy. - Andrew ----------------------------------------------- [2] Fan Game Reviews (If you want your game reviewed please email "forge315@commanderkeen.net".) Rating System: Horrible (1-2) Bad (3-4) Okay (5-6) Good (7-8) Excellent! (9-10) [2.1] Dope Fish Game (by Adam Clifton) Game Rating Bad (3/10) Quality - 4/10 Originality - 5/10 Keenishness - 2/10 Overall - 3/10 Confined to a narrow view, you only get a small window in which to play Dope Fish Game; even worse, it runs incredibly slow, with substandard graphics and no sound. The gameplay is based around eating small Schoolfish and shooting out their skeletons in order to hit one of the three species of enemy. Points are awarded for shooting your enemies as follows: Fart Fish 500pts, Pearl Shooter 200 pts, and Bad Fish/Normal Green Fish 100pts. Little innovation was done on the part of these foes; in fact the only cool adversary is the Pearl Shooter, which shoots little gold pearls at you. The other two enemies just float across the screen, being as boring a target as a log. The game isn't total garbage - it comes with an editor and you can also make your own graphics. When the game starts you get a picture of the Dopefish with some nifty wave affects added. How do you make your own graphics tiles? After unzipping the game, open the art directory and then open the tiles directory. Place all BMP tiles you want in here. Note that they each have to be 50 by 50 pixels, and numbered like the other tiles in the directory. Then open up the text file numbers.txt and change the number to the one that corresponds to the last tile you made. The editor is simple to use and needs no instructions, but the game only supports one level and once you make a fan level it replaces the original one. This game was run under Windows XP on a 1100MHZ computer for this review; these specs may or may not have caused the game to run differently than intended. - Forge315 ----------------------------------------------- [3] Website Reviews (If you want your website reviewed, please email "yorpy@commanderkeen.net") Rating System Horrible (1-2) Bad (3-4) Okay (5-6) Good (7-8) Excellent! (9-10) [3.1] The Official Dopefish Home Page Site Rating Excellent! (9/10) Quality - 9/10 Originality - 10/10 Keenishness - 8/10 Overall - 9/10 Website URL: http://www.dopefish.com Websites originate because of interest, and there is a deep interest in the Dope Fish; so apparently someone had to do it and that someone was Joe Siegler. He created The Official Dopefish Home Page. The website has a simple layout, all the information is on one page; with the older stuff at the top and the newer stuff being added below. It has everything you'd ever want to know about the Dope Fish, from fan games, to its appearances in other games, and screensavers. Graphically the website isn't flashy, it used pictures from the Commander Keen game "Secret of the Oracle," which the Dope Fish first appeared in. Some other additional graphics exist, such as a stylish entry logo, that Joe, changes every once in a while. Also Mr. Siegler doesn't update the page at an unbelievable rate, so when new Dope Fish stuff appears, it will take around a month to be added. (That is based on my own observation, and I'm sure that he's quicker depending.) Another attraction to the website is it's web- wring, simplifying the collection of Dope Fish fan sites. However the last time I looked, the other websites were below par, and some were just broken links. - Forge315 ------------ [3.2] Commander Keen Odysee Site Rating Good (8/10) Quality - 7/10 Originality - 9/10 Keenishness - 9/10 Overall - 8/10 Website URL: http://www.geocities.com/ckodysee/ This site looks like a lot of time has been spent on it. It is neatly organized with the links to navigate the site at the top in a frame. The links are graphics some of which it looks the author has made them himself. The site does contain grammatical errors but I thought they were easy to overlook. There are some original things on the site. Among them is a cool interview with Tom Hall asking some interesting questions. There is also a community you can join on the page. It is not complete. There are not downloads for the Aliens Ate My Babysitter Demo or Keen Dreams and there is enemy info for only Keens 4-5. Still there is a standard galactic true type font download and directions on where to put it on your computer. Overall, the site is worth a visit. - Yorpy ---------------------- [3.3] Apogee Central Site Rating Excellent (9/10) Quality - 9/10 Originality - 9/10 Keenishness - NA (It's not really a Keen site) Overall - 9/10 Website URL: http://www.apogeecentral.tk/ I know this isn't really a Commander Keen based site but I think that most Keen fans enjoyed playing Apogee's other games also. So if you are a big Apogee fan you should head on over to this site immediately. The site design is really cool, it modelled after the DOS editor with the drop down menus and everything. You can even exit to DOS! The site is very complete. It has downloads for almost every Apogee game made dating back to 1988. There are even games there that Apogee was going to do but passed on to other companies. Many of the games the site has for download I did not realize even existed. Beware some of the older games may not work with newer computers but Moslo or some other utility may help. The only thing really wrong with the site is that it is having some trouble with the host and can be a tad slow at times. Still it is fun to visit and to get to play the oldies again. - Yorpy -------------------- [3.4] Commander Keen Nexus Site Rating Excellent! (10/10) Quality - 10/10 Originality - 9/10 Keenishness - 10/10 Overall - 10/10 Website URL: http://home.no/cknexus/ The quality and design this site are fantastic. The multitude of custom made graphics make for design that is very appealing to the eye. It is nicely organized into sections and subsections to find what you want fast. The site also utilizes a frame at the top for speedy movement throughout the site. The most original aspect of this site has to be the graphics. It seems that a lot of time has been spent on them and they look great. They look very Keenish and colorful. There are also original pictures of characters and remixes of songs from the Keen games. The site is not complete but it is because of limitions of hosting. Still, the site provides news, interviews that are well worth a read, wonderful fan creations (The Shadowlands: Episode 1 is great), and a great looking interface. - Yorpy ----------------------------------------------- [4] Monthly Fiction [4.1] Nope Read on.... ----------------------------------------------- [5] Keen Community News [5.1] Edit Keen 1-3! Thanks to Andrew, it's now possible to edit Keen 1-3. Learn more at these two topics: One - http://pub7.ezboard.com/fpubliccommanderkeenfor umtheoriginalcommanderkeenga.showMessage?topicI D=324.topic Two - http://pub7.ezboard.com/fpubliccommanderkeenfor umtheoriginalcommanderkeenga.showMessage?topicI D=327.topic ------------ [5.2] New Website: Commander Keendom Keen fan KeenCommander has made his own website, it look nice; but is incomplete. URL: http://www.cosmicoding.tripod.com/ckp.htm ---------- [5.3] Commander Keen Flash Cartoons! With CK Nexus' release came the debut of a Commander Keen flash cartoon. Head over to their website to see this cool cartoon. URL: http://www.home.no/cknexus/ ------------- [5.4] April Fools Joke An April fools joke was played at the Keen Forum. Go to the URL and see. URL: http://pub7.ezboard.com/fpimentogamedevelopment .showMessage?topicID=419.topic ----------------- [5.4] Keen Narrative Poems At the Keen Forum, Keen fan KeenEmpire started a topic where everybody contributes in making a Keen poem. Take a look at it and maybe post yourself. URL: http://pub7.ezboard.com/fpubliccommanderkeenfor umother.showMessage?topicID=912.topic ----------------------------------------------- [6] Miscellaneous Stuff [6.1] Feedback + Questions & Answers We'd like your feedback, we want to know what you hate about the newsletter, and what you like; and if there are any suggestions you have -- please tell us? Also, we need your help, we have some ideas, but would they work? Only you can know. First we've tossed the idea of having user submitted reviews, these reviews would be supplementary and would be included in the newsletter as well as on the website. So what do you think, if you hate our review would you make one of you own? Second idea, we wondered if having feedback would be a good idea. We want it, but what about YOU? The third idea is Q&A (Question an Answer,) it would work like it does in a professional magazine; you'd ask the question and we'd answer it, and all the Q&A would be included in the newsletter. Errr … good idea, bad idea? However I (Forge315,) wont be around for about a week, so please email all comments to Yorpy (yorpy@commanderkeen.net). He'll inform the rest of the team of you comments and we'll take a proper course of action there after. Thanks for helping. ---------------------- [6.3] Credits Too Much Spare Time: Proofreading Andrew: Wrote a featured article Yorpy: Website reviews Forge315: Stuff Other thanks: Joe at 3DRealms, for doing the interview! Thanks again Joe! :) ----------------------------------------------- "Swim swim hungry, swim swim hungry." Burp!