Thursday, November 15, 2007

BioShock

(There will be some spoilers for BioShock in this post.)

When I was writing A Crimson Spring, I was made aware of the graphic novels "Watchmen" and "Kingdom Come". I intentionally didn't read either one because I didn't want to be influenced by them in making my little text game. I would have liked to, in theory, had the same thing going on with Cryptozookeeper and BioShock. I say, "in theory" because who would have guessed that a first person shooter would have any effect on how I'd be writing a text game?

It does though. I don't think any computer game can go forward without the designers asking themselves what BioShock has made irrelevant and what games *must* have to stay competitive and interesting in a post-BioShock world. And I say this, keeping in mind that the last two scenes of BioShock - escort mission and multistage boss fight - were horrible in every respect. But it did so many other things well that I can forgive them going to the Big Book of gaming cliches to end it.

I think the first major thing I've taken from BioShock is that a designer needs to give his/her players the means to overcome the things that initially suck about the game. Or are at least restrictive. I hope I am not spoiling CZK by saying at some point that cryptids are going to get into a fight with each other. If I am a regular player going through, I might say to myself, "Man, I wish that this guy had more hit points, or could attack faster, or do more damage." And in most role playing games, there is a mechanism for that: leveling. What BioShock did is make leveling interesting and filled to the brim with choices again. The D&D model of leveling up has you killing things to get the experience points necessary to gain a level, and you then get all your benefits at once. With BioShock, you can "level up" at almost any time by buying things that overcome the obstacles the designers initially set forth - obstacles that are present in almost every first person shooter.

For example:

- Man, these Big Daddy monsters are tough. (Here's a way to make them fight for you for a little bit.)

- Man, everyone seems to be homing in on me. (Here's a target dummy to draw away attacks.)

- I'm bad at hacking. (Here's a powerup to get less bad tiles.)

... And so forth. For every restriction in the game, or everything that is difficult to navigate around, BioShock gives you the chance to overcome those things. It's like it gives you access to the cheat system just by playing.

How does this relate to IF? Well, what things are restrictive in text games? Well, actually, it's the whole "typing the right phrase into the prompt," but beyong that. I think not knowing certain facts about the NPCs you encounter, at least in one of my games, is a restriction. Wouldn't it be great to get the game's state of Some Monster? So let's put in a way to scan its hit points, and easily see its weaknesses. Let's provide an interesting path to getting health packs and extra attacks... faster healing and recovery time. Let's provide a way to make these things better in combat than just having them slog through a Mortal Kombat-style fighting pole. And I've been thinking about how to do this for several weeks, and I think I have a good idea on how to accomplish this for CZK. I'm just not ready to lay it all out yet.

(Oh, and I think having screens that break up the action and give you advice are critical. There's no "LOADING" screens in IF, but there are chapter breaks, at least in my games. In BioShock, I found out that some weapons have a zoom mode in BioShock on the last level, because I was told on the loading screen. Nobody reads the manuals any more, if they even get them, so having help like that is awesome. And it's pretty easy in IF to have randomly-displaying chapter screens. So that's a good idea, too.)

Maybe this is just a long way of making some carrot and stick comment, but my expectations for what I hope to accomplish with CZK have definitely risen with BioShock, and I promise not to let anyone down.

Tuesday, September 18, 2007

Rise of the Robots

Last night, I had a chance to do a little time-saving by writing a program to generate a bunch of Hugo code I need for CZK. There are going to be a bunch of animals in the game and they all need statistics and attributes and such.

I had a big list of everyone who is to be represented, so I just threw together a quick program in Java that spit out the list and had the noun field come up correctly. It was pretty CS101, but I was happy to gain enough experience developing text games with an object oriented structure, over the years, where I was able to recognize early on that I'd need to do this. Plus, it helps eliminate a few bugs along the way by using an automated process. (It let me know that I had included the Thunderbird animal twice, for instance.)

Still need to start building automated tests for the game, however. Using an accented "e" character in Necrotic Drift apparently breaks the game when played on Linux, and that's something I could have discovered if I had a Ubuntu install all those years ago (OK, I am not 100% certain when Ubuntu came out, but still) and just threw the automated scripts at the game when I went there. It's coming together for CZK.

Lots of text game things on the plate for 2008 from a variety of people. I'm still searching for my place in this hobby, and I want CZK to make it impossible to not mention in a article or feature on modern-day text games. That, and finally winning the "best game" xyzzy are my goals for this thing.

Saturday, September 15, 2007

Motos

I'm still whittling away at this thing, still making progress. I've found that, on those nights where I am not into slaving away in front of a hot keyboard, deciding to code up the combat stats of one of the monsters is a great gateway drug. It seems like I've been working on the same "scene" forever. And it's had some feature creep, sure, which will result in a better game, but man, I really don't know when this will all be finished.

On the other hand, the way I wrote Necrotic Drift was to first code the bare minimum I'd need for the game to be "finished." I then went back from the beginning and filled in with extra scenery and situations and depth. But the whole time I was against deviating much from the story. It made the game linear, I'd imagine. I'm trying something different with CZK, which is to allow for as many crazy situations as the writing leads towards, but it means it looks (to me) like I am not getting as much done.

I'm trying to keep the reality that I'm coming up on a year of solider development. The source code to CZK says, "April 18th, 2006 - November 21st, 2006" for the first phase. There wasn't a lot of development there, and I went entire weeks without doing much IF related. The second phase started on 11/21/06, and I have been going as hard as I can go for this game since then. Well, as hard as I could go within reason: I'm not taking vacation days to work on it or anything. (Well, not yet, I'll take some time off around Christmas that I will hopefully be able to use for the game.)

Meanwhile, the life events that are going on now include the monitor breaking in Spy Hunter, the Milker running a Haunted House (that I will help work on tomorrow night) and my desire to get my MAME cabinet running.

Anyway, this seems like a serious downer. If I weren't having fun developing the game, I wouldn't expect anyone to have fun playing it, and it's still the best concept / game idea I've ever had, and I'm pouring my soul into the writing. Steven Spielberg was once asked which movie he wanted to be remembered for, or which one he wanted to take to his grave or what not, and if I remember correctly, he replied "E.T. and Schindler's List." I get what he was trying to say. What I'm striving for is the kind of game that I'd include in such a question 50 years from now. I want it to be significant, and it fuels me every night I spend on it.

Thursday, August 2, 2007

Fatal Frame

I had a successful weekend in Las Vegas during the Computer Gaming Expo. I probably haven't completely recovered from it, because that takes two days of quiet meditation and I went straight to work when I got back. We bought melons on the way back from a town in Utah, and I could suck one of them dry with a straw in like seven seconds right now. Hello, I am Robb, I am interested in vitamins, water, little else.

I was able to hang out with some great people that I don't get a chance to see often while at the CGE. Two guys are going to be in CZK, Adam Thornton and Jon Blask. Jon -- otherwise known as Roody Yogurt -- is one of the main characters, a guy named Grimloft. I had been trying for a while to get someone to play this part, but nothing has really worked out. Surprising, you'd think more people would jump at the opportunity to star in game for an obscure medium like "text game." Oddness!!!

In fact, this will be a real problem when I run out of women to put in these things, I mean, I know plenty of girls, but there's no good way to phrase, "Be in my text game." To me, the previous sentence always comes out as, "Let me show you my Pokemons." There needs to be some sort of international, "I'm Not a Pervert!" registry so I can make a request on Craig's List and get some help. OK, there needs to be this registry and I need to pass the test. So, a number two to that plan, definitely.

Roody was great, even though I got the sense that he really wanted to take a nap that night for a couple hours. I shot him with two cameras -- Dayna's, and then one belonging to Jason Scott. I'm glad I involved someone else's camera. Ours apparently has a "Motion Blur" setting, and it was enabled for a lot of my pictures. Ha! Ha ha! Nothing like checking afterwards and seeing that many of the pics are no good. I mean, I can work around them, but still. Unbelievably disappointing: I should have reset Dayna's camera for beginning. The little viewfinder doesn't have enough pixels to really inform me that everything I am shooting isn't much good.

Luckily, the game has me in Photoshop for every single graphic anyway, so I'll be fine. Just some user error with the camera - never happened to me before on any of the previous games, so I guess I was do. That being said, I thought of a new characteristic for Roody's character: he's, uh, very very fast, or something.

Tuesday, July 17, 2007

Wasteland

CZK takes place in New Mexico. I've done a bunch of games set in Colorado, but I think the tally to this point is:

Colorado: 3
Boston: 1
New York City: 1
Phobos: 1
Las Vegas: 1

I can safely say that if I do a sequel to A Crimson Spring, it won't be based in New York City, which is the one area of the planet I dislike more than any other (almost solely due to NYC sports fans, the most ignorant yet arrogant subsection of people on the face of the planet). I think you can write an effective game if you loathe the setting due to intense personal experiences, like if you lived there. Otherwise it's a pretty short game:

In a world where people with the worst accent on the planet believe that Chien-Ming Wang is a better pitcher than Roy Halladay, someone is picking off citizens ... with a sniper.

Johnny Hollywood: "..."
Holy Avenger: "..."
The Wonder Twin Jayna: "Form of, crickets!"
Jayna: "..."

See? There's no reason to tackle the plot. You'd hit "z" a zillion times to let the deaths pile up. Sort of how like you've only won in Circus Atari when you've killed five of those flailing speds intentionally.

But yeah, the new one is in New Mexico, a state I've had good experiences in. We're taking a trip to Vegas and then, on the return side, we're going to see some of Utah. While I have taken photographs for CZK in New Mexico proper, running around the wasteland is close enough for my purposes. So the trip becomes one where I can get some additional material. We are living in a world where "Rumble in the Bronx" was shot in Vancouver, so I think I'm in the clear if I use a dusty side street in Nevada instead of Pueblo, in other words.

This all leads to a greater point, which is that the creation of these games does take up almost every facet of my life. I'm going to try to make a couple arcade-style games after CZK, but for all I know I'll feel dead inside like I normally do after finishing a text game, in that time slice where the next game isn't defined or conceived.

But man, would it be fun to get a joystick-controlled game done. The only reason I hesitate is because the first one will be a learning exercise and probably crap. Ah well, it will be free and there's no archive of arcade games that will let it be downloaded for years to come, so it will work out OK.

Sunday, June 24, 2007

The Movies

Oh yeah, I should in-line the new short film "The Pillow Case" starring Gerrit Hamilton. (Gerrit plays the player character in CZK.)


Saturday, June 23, 2007

Sacrifice

I hate naming these entries. I sit here wondering what to call an article I haven't created yet. It's stupid. I'm picking all video game titles from here on out.

There really hasn't been much to say lately, as I just put in the most time at work in a single week in my life. I also managed to separate my shoulder and crack a molar, both conditions going unchecked until I finish this project for work. Really, the only other activity I have engaged during this time is CZK. Luckily, this is rather rare for my company, and the police are involved, so it's not some bored executive trying to get his peon developers to show their loyalty to the company or something. I can "buy in" to the reason why we've all been toiling so, and it's fine. I'm a pro.

That being said, before this week I have always marginalized my own accomplishments, mentally, when it came to their cash worth. "If I were able to learn how to develop software, anyone could, so the day exists where I will be knocked back to the wages of a sales associate at an Electronics Boutique." These last two weeks, if nothing else, drove that thinking out of me. Working on someone else's Java code isn't easy. At least it's well commented. (It's not commented.)

But this all brings me to the steady realization that my one-time dream of making computer games as a career has probably come to an end. I've gone far enough into the world of Java that I don't want to start over again in C++. For a long while I juggled several languages professionally, at various companies, not necessarily mastering any of them, but knowing enough to stay competent and write useful applications that worked. However, the pain in getting into production code and test harnesses and all the other stuff ready in Java has greatly influenced my desire to stick with this environment for the next several years.

The reason comes back to IF as well: there were a lot of nights when I was programming A Crimson Spring and Fallacy of Dawn where I was punching the keyboard, swearing out loud, getting enormously frustrated, learning the language. And Hugo has the best error messages after a failed compile of any language I have ever used. I'm now at the point where Hugo doesn't give me any trouble. I'd like GIF support and multi-dimensional arrays, but I can probably whip the former up and submit it to Kent Tessman now that GIFs are in the public domain again. The environment no longer frustrates me in any way, and I can simply be productive in what little free time I've been getting. (It only took eight years to get to this point as well, natch, ha ha. Christ, 8 years is almost a fourth of my life. I have been writing in Hugo for 1/4th of my existence in this world. Jesus.)

I've also been rapidly consuming shorter, bite-sized video games in an attempt to stay sane. I bought Geometry Wars through Steam. I think that the PC game Grid Wars 2 (which is no longer easily distributed due to legal threats from the Geometry Wars team... and of course, Geometry Wars is a pretty shameless ripoff of Robotron) has more stuff going on that is interesting, but Geometry Wars seems to work on both of my gaming computers, so it's got that advantage. I also played through All Alone, the text game by Ian Finley. I played it late at night as well! I have a Trotting Krips review coming, but I will say that TADS offers the amazing ability to copy all the game's text to the clipboard and then paste it into Notepad or whatever. This is unbelievably cool. Actually, for all I know Inform and Hugo do it as well, but still, I completed All Alone and was able to keep a transcript to reference after the fact. I expect the TADS games I will be reviewing will increase a million per cent in the days to come.

There are three CDs that I have been listening to at this stage of CZK development. (I know this isn't interesting to anyone, but it helps me keep a historical record.) There are two albums by Mind.in.a.box, one by "Die Trying" and Riot! by Paramore. (If you are a pop punk band with an embarrassing name, you will get your band's name in quotes on this web log.) The new Paramore disc is really good all the way through -- I've been thinking about whittling away a lot of MP3 discs into the tracks I actually like, but Riot! is good all the way through.

(That being said, I once complimented a "Panic! At the Disco" disc on Jolt Country for not being repetitive when I had given it two listens, one of which was while I was writing Pantomime. Needless to say, I'd like that post back for a do-over.)

Wednesday, June 13, 2007

Coding at Two in the Morning

In the game, you can give a character some preserves. (They're delicious.) The last thing I remember doing before going to bed last night was coding up behavior for the transfer of the jam.

I thought I put the code into the creature or, failing that, the jam. I couldn't find it tonight, so I started to put it in the game again. However, I felt I was going insane and did a scan for "slurp" : the one word I was sure was involved with delicious preserves!

As it turns out, I put the code into a random container two rooms over. The joys of coding at an absolutely stupid hour, I guess.

Tuesday, June 12, 2007

Sidetrack in the Shade

I did manage to get past that 243 kilobyte barrier last week -- I'm finding that updating this site has fallen into the same bin as playing video games, playing text games and doing one of a thousand other things. ("I could update the web log, but I could also finish level three and tighten up the graphics on CZ.")

That being said, I was up until two o'clock last night playing Shade. I was too dense to realize that at the end you need to start touching things -- OK, I understood what was going on, but there were a few moments where I think I had to drop something and pick it up again. Additionally, I had an actual chill moment when, after I'd typed >LOOK a few dozen times (it's just my nature to do so) the plant changed into a spider plant. I'll try to qualify why I just don't like spiders, because the same night I played Shade there was spider drama:

Our sprinkler system is broken and our friend Vicki came over to look at it. "Ah, there's a brown recluse down in the sprinkler box," she said and, of course, I freaked a little. I mean, come on, if they bite you, you turn into, for all intents and purposes, a goddamn zombie, due to all the necrosis going on. I don't think it's a phobia when your motherfucking hand will drop off as a result of a bite. I don't know if I mentioned it, but the Wikipedia entry on spiders has a nice history of a 2000x2000 hi-res image of a giant spider being dropped into the "spider" page. So that's always a bonus to encounter. Plus, it was two AM and I had spent Monday up until that time actually working on CZ.

I know a spider plant has nothing to do with real spiders. I have a spider plant at work -- they're cool with me. But if you really don't like flying and you're playing a game that is a little creepy like Shade and all of a sudden, instead of your luggage (which has faithfully been by your side for thirty room descriptions... it was like the brass lantern at that point, in terms of unyielding safety) you read that it got turned into a frigging FLYING squirrel, I don't know, you'd be a little freaked is all. Not a lot. I was able to keep playing and all, I'm just saying.

It would not be fair to end this by saying that 'games like Shade are why I keep playing text games blah blah' -- much of it was spoiled for me by simply hanging around the newsgroups for years. (It was not spoiled maliciously or anything.) I also ignored "spoilers" and read Emily Short's essay on what the game had to do with Adam Cadre's book Ready, Okay! However, HOWEVER, moments like the one that Shade go a long way towards playing more of these games. The first batch of the new wave of IF writers are mastering their craft.
Regardless of your opinion of spiders, whether it's "I love 'em," or "if you kill 'em close you get the full 900 points," an author quietly changing a long-standing room object into something else was not something I had seen before, and it worked on me. It's the silly little things that you remember best, isn't it?

(That being said, it's probably time to play the Ian Finley game that he suggests you play in the middle of the night real soon now. Been saving that one.)

Wednesday, June 6, 2007

Big Foot Sighting

One of the things I've tried to do, while writing these text games, is immerse myself in the subject matter, so it becomes as second-nature to think in the right terms (which helps with getting into character). For instance, I was constantly reading websites relating to Mars and its moons while developing Pantomime. I wanted as much knowledge to soak in as possible.

To this end, I've started reading more about cryptozoology. Sure, a lot of it may be silly and pseudo-science, but there are a few creatures that have gone from "cryptid" to "animal." Recently, the Milker and I attempted a Big Foot sighting.

Here is the video:



Draw your own conclusions! I only wish we had access to a better camera than the 1890s-style projector system we went with. Ah, well.

Monday, June 4, 2007

Screen Shot


My goal is to exceed the size of Pantomime tonight (which ended up as a 243kb Hugo story file). I'm 2KB off in story file size - not 100% certain how that translates into lines of code and such, but it's definitely something I can do as I finish up the scene with this gorilla.

Saturday, June 2, 2007

24 Hours with Cryptids and Followers

I'm up to 21,630 lines, 24 hours later. 156 lines of code -- I think this game will be as big as Fallacy of Dawn, which is 42,281 lines. At 156 lines a day this means I'll be finished in 4.41 months. 132 days, which takes me to October 10th. Christ, I could finish this by December, as that would leave me two months for beta-testing. I'm a better programmer than I was when I was writing Chicks Dig Jerks and A Crimson Spring (both initially very buggy) so two months would just about do it.

However, I have noticed that I can't write during the day. I'm going to give it one more shot tomorrow. If I don't get any work done before the sun sets I'm going to start scheduling real activities every single weekend rather than think I'm going to code and get nothing done. I mean, I'm not that shaken up by the lack of productivity during the daylight hours, as I am pretty dedicated to my job and need some downtime. But starting this log should help get me focused.

I don't think I can attach pictures to these notes, so I'll upload the splash screen for the game and update this post afterwards. The initial picture features a scene taken by Greg D'Avis (in Czechoslovakia) starring Gerrit Hamilton (in Georgia). The art style is consistent throughout the game and, like the title, I think it captures what the player is going to encounter when he plays this thing.

(Ah - the title of this log: I decided to have the game state who is following the player in a window. The window does other things, but it now clarifies that as well. Basically, I'm never going to be able to think of a hundred different ways to say, "Grimloft is following you" like they did for Slouching Towards Bedlam, so rather than try I am going all data-driven here.)

Friday, June 1, 2007

Hello Sailor

I'm developing a graphical text adventure and I wanted there to be some sort of record of the development process. I have a horrible memory and can't recall details very well when it came to writing my previous text games. Hopefully this process will be interesting to other people developing their own interactive fiction games.

I'll do my best to not post any spoilers for the game.

The current progress, as of June 1st, 2007, is that I have the first few scenes complete and ready for testing, from a gameplay standpoint. I have photos from several actors that I have integrated into the game. I have contacted a few musicians and have a few songs ready to go. I have the plot taken care of. Everything else is left. I'm trying to get the game done by December, 2007. I'm honestly not sure if I am going to make it.

The game is called Cryptozookeeper. That name does not ring off the tongue. In fact, the few times I've spoken it, I've reacted as if I had just said the name of a pop punk band, only in Cryptozookeeper's case, the embarrassment is all mine. Ah well, it's distinct and otherwise perfect.

Pinback: Say "C-Z-K" when you say it out loud. Sounds hip and x-treme that way.

He's got a point.

One last thing: I'm going to try to keep track of how many lines of code I'm able to produce each day. I read a post on rec.arts.int-fiction from Andrew Plotkin where he stated that some of his Interactive Fiction Competition games took 15-25 days. I haven't finished Delightful Wallpaper yet, but I am pretty certain it would have taken me at least six months to write a game that size, possibly a year. I think I am coding much too slowly. Hugo will tell you compiler statistics, and so far I am at 21,474 lines, with 877 words in the game's dictionary. I guess I'll know before too long if that pace sucks.