• You can syndicate your blog to the GameDev.net community.
Learn how here.

Blogs

Copyrights and cheesy sci-fi movies

Still doing housekeeping. Updating the copyrights everywhere. Because of this, I must give another plug to PFE (mentioned in my "Tool Chest") links. Using PFE, I was able to load up all of my source files (about 70), update the copyrights, and save the files back out. I could've done it with the Visual C++ editor, but it would've been a lot slower. One thing that PFE does that I really like is that the search-n-replace dialogs are modeless. I still don't know why they don't do that in the VC++ editor.

I finally got the "about" box updated. Since I'm a flake and can never decide on a proper logo for The Code Zone, the dialog box just shows you one of three logos at random. OK, they're not really logos, they're just clipart, but they're awfully cute. I've got a laser-pistol, a 40's-era rocket-ship, and a really cheesy-looking space alien. I'm a big fan of the old 1963 movie, The Green Slime, and the alien looks a lot like the slime-creatures from the movie. My monster, however, is lime green, while the electricity-sparking critters from The Green Slime were more of a tasteful forest green.

Which brings me to a completely unrelated question: Exactly when did space-movies stop being cheesy-looking? It was some time between 1963 and 1968, but I've gotta pin the time down better. In 1963, there was The Green Slime, which is horribly silly-looking. In 1969, there was 2001, A Space Odyssey, which still looks good today.

Of course, Flash Gordon came out in 1980, but that was intentionally cheesy-looking, so it doesn't count.

Back on a relevant topic, it looks like somebody's claimed the Microsoft joystick from the trading post. More on that later.

Housekeeping

Lots and lots of housekeeping going on here. When you're getting near the end of your project, you're generally inundated with all of the little nitpicky stuff that you forgot to do before. Lots of little bugs and typos that you ignored during the project come back with a vengeance when your project's near completion.

First off, there were a few remnants of the internet stuff left over from when I was on a quest to internet-ize my games. The stuff's still there, but the games are gonna do one more go-round as standalone games while the internet game-server market sorts itself out. The games do work via a shared-object model (two identical objects that are synchronized across a communication channel), but the sharing is strictly within the game itself at this time. Also, I always planned to have global high-score tables, but I never got around to putting together the high-score server hardware and software. Probably next year, when I put together my state-machine class.

I'm also adding bits of descriptive text here and there. The new game-browser shows off little bits of descriptive text about each game. I put in quickie descriptions a few months ago, but they could certainly use some fleshing-out.

Not much new on the marketing front. Shelly and I checked out the local computer marts for names of companies that might be interested in our type of product. We got a few names. Fewer than last year, because there were a few mergers. We'll probably start sending stuff out once we get some box-art done. Hopefully we'll get a bite.

On the trading front, nobody's said they want any of my stuff. Jeez, don't be shy!

The Code Zone Trading Post is open!

Well, it seems that I'm getting quite an accumulation of stuff that I'm not using. Lots of it is free stuff that I got at the CGDC, and I have no use for. Some of it is stuff that I got mailed to me, and I'm still not sure why. Some of it is just stuff that I'm not using anymore.

I don't want cash! This is a trading post, and I wanna trade! The following items are preferred as trade-bait:

If you're a game-writer, I'd go for copies of your products.

If you're a tool-maker, a copy of the tool your company produces.

An interview with your uncle/cousin/pal, who happens to be the buyer for a publisher, or the buyer for Wal Mart's software section (I'm reaching here, but you never know).

Old copies of Games magazine. I'm trying to get the entire set, and I'm about 70% there. If you have any, let me know, and I'll tell you if I've got 'em.

Your old Voodoo card, provided that you're upgrading to something fancier like a Voodoo 2.

Royalty-free MIDI files :)

That being said, here's my trade-bait:

A Diamond Stealth II G460 graphics card. This is the newest version of the card that uses the Intel i740 chip. It requires the AGX bus, so I've never been able to use it. Supposedly it's quite fast and good. I've heard that speed's comparable to the Voodoo 2. It does come with full DirectX and OpenGL drivers, and DirectX 6 supports it.

A MadCatz "Panther Optimized 3D Gaming Controlball". It's basically one of those trackballs that ordinarily replaces the mouse, but this one's hooks up to the joystick port. It's meant to be daisy-chained to an existing joystick. I imagine it'd make a cool throttle for a flight-simulator. It's black with a dark-red ball. Kinda cool looking, but I don't have much use for it.

A Microsoft Sidewinder 3D Pro Plus joystick. An associate told me that this is the latter model, that added the ability to rotate the stick slightly (a feature added for those MechWarrior games). It's an awfully nice joystick, but I don't really use it.

The entire print-run of Windows Tech Journal, which ran from May 1992 until January 1998. It was a magazine dedicated to supporting Windows programming, centering more on the beginning programmer. It wasn't a great magazine, but it had a load of good articles for beginners. It also covered VB and some Delphi. I offered to donate 'em to my local library, but they weren't interested in such an obscure title. If you know of a library or foundation that might be interested, lemme know.

A CD-ROM of conference-notes for the 1997 CGDC.

An HP DeskJet Plus printer. I bought this printer back in 1989 when I was in college. It was my workhorse printer until about a year ago when I bought one of those Brother MFC polyglot laser-office thingies. It's a nice little printer, good for small print-jobs. Windows still supports it, and ink is still readily available for it. It's got the Times Roman font cartridge, but that's only important if you're printing from DOS.

The four-book The World of Mathematics collection. Subtitled, A Small Library of the Literature of Mathematics, from A'h-mose' the Scribe to Albert Einstein, this is a four-volume hardcover collection of interesting mathematical essays. The essays are quite readable and are well-chosen. I just haven't read 'em in quite a while. This collection was published by Tempus Books, shortly before they were purchased by Microsoft. MS re-released the collection in paperback, but I don't think it's in print anymore. A real collector's item. I'm still wobbly as to whether or not I'll trade these, as they probably should go to a library.

As an added bonus, the first few folks who trade will receive a complimentary Gamasutra key-chain, taken from the CGDC and taking up space on my desk. I've also got a pile of Magic: The Gathering cards, but I've got a friend who wants to try to sell those on Ebay.

If you wanna email me, just click on the fly-head on the bottom of the screen. Let the horse-trading begin!

Back from bein' out

Awright, I'm home. Finally got to take a much-needed vacation with the wife and minivan. Traveled to Nevada and Wyoming, attending a buncha amateur high-power rocket launches and fireworks shows. Amazingly enough, I did manage to return with all of my fingers. Sorry about not letting you know that I would be outta town, but it's generally not a good idea to announce a long vacation in a big public forum. After all, my name's in the book :)

Surprisingly, I didn't miss the loss of email and usenet as much as I thought I would. I guess I was so wrapped up in vacation activities that I didn't have a chance to miss the internet. Go figure. That's not to say that nothing game-related happened on the vacation; I got a chance to listen to some of the CGDC conference tapes that I bought and didn't have a chance to hear.

Note to anyone at CGDA who might be reading: There are lots of good info on the conference tapes. If the GDC wanted to provide a valuable service, they should make the seminar evaluations available online so folks will know which conference tapes to buy.

Since the games are basically done, I'm now getting into the phase of tuning 'em up for release, bug fixing, etc. Shelly has, once again, agreed to write the help files. She did quite a good job on the previous ones. I find that getting someone other than the developer to write the help files is a good idea. Since I wrote the program, I have a tendency to concentrate help content on the little details, missing the big picture. Just letting Shelly play the games and write up descriptions works much better. It's also a chance for her to point out some bugs in my stuff.

I've got a reasonable install --the one I wrote one a couple of months ago to drag along to the CGDC. I'm probably gonna spend this week shoe-horning music into some of the games. Unfortunately, I have no musical ability whatsoever, so I'll have to hitch my MIDI-wagon on the musical efforts of others. Since this is software on the cheap, I'm sticking with the free MIDI sources available. I've actually found a couple of places that have MIDI files that can be used royalty-free. This leads me to my

WARNING!

Some of the places that advertise royalty-free music are LYING! One site I found claimed to have an archive of royalty-free music actually contained an archive of current pop hits, which are most assuredly NOT royalty free. That being said, there are a couple of sites that seem to have original music that can be used royalty free (keep me honest if I'm mistaken).

The MS Site Builder network has a set of sample MIDI files made with their Microsoft Music Composer software. There's also the Media'n Music Archive, which appears to be a little one-man shop. He's got some reasonable WAVE and MIDI samples available. There's sseyo.com, which has a small royalty-free archive if you dig around a bit. Finally, I'll do some digging in the classical music archives for some pieces by artists who don't mind their performances being used as game backgrounds. Some Beethoven or Bach will sound classy with some of the board games.

If anyone out there knows of other locations of MIDI I can use, lemme know. FWIW, I've got tons of WAV sounds that I've composed for the games over the years, so I'm fine there.

Finally, I wanna announce that John M, Shelly, and I still don't have a fourth for the up-coming Dallas IGDN conference in October. If you're gonna be in northeast Dallas around 10/10, let John Munsch or myself know, and we'll cut you in. $37.50 for a day-long game developer conference is the best deal going. Head over to the IGDN for more info about the conference. They even claim they're buying lunch! Finally updated Finally did a lot of much-needed additions to the official Code Zone Web Site. It now has screen shots and info from all of the games up to the present. I'll probably be in housekeeping mode for the time being, as I've got a lot of rough edges to smooth off. A lot's been done, but there's still a lot left to do. Shi Sen Oops! Got going in so many directions that the diary took a back-seat. Here's a late-breaking update. Yes indeed, I was chosen as Gamasutra's Geek of the Week, starting today. I figured "what the hell, it'll get my name out there", so I filled out the application. Haven't gotten much feedback so far. We'll see. To answer Mr. Munsch's question, yes, my mom is indeed proud! She's a little weirded out by the whole Shatner thing, but she likes the game programming stuff I've done. On the games front, Invaders from Beyond! is basically done. I'll probably add a few more tweaks here and there, but it's not a bad little game. I'm worried right now that it's not difficult enough. It clobbers me, but will it be able to clobber those little kids who managed to beat Super Mario Brothers? Only time will tell! In the time since finishing Invaders, I made good progress on Shi Sen. It's similar to those solitaire Mah Jongg tile-removing games, but the rules are a bit different. I've basically got the thing playable now. If it's any indication of success, my wife now plays it in the mornings instead of Windows Solitaire. I guess that's a good sign :) I'll try to have a screen shot up and the latest games on my Code Zone web page before long. I've gotta do some work on the graphics before Shi Sen will be ready. I'll need to draw up some Mah Jonggish tiles. I don't use the suits or numbers from the tiles, so any place I can find 36 similar pictures will work just fine. I already made a tile set from the cartoon characters in SpriteLib, and I made one out of colorful numbers. So far, I like the numbers best. Gettin' stuff looking good All the basics for Invaders from Beyond! are now in place. The outer game logic is now working (completing levels, destroying ships, ending the game, etc). I've got aliens that get meaner as the game goes on and about a half-dozen different missiles dropping from the sky. I've got aliens that "get sick" when you shoot 'em, requiring a second shot to finish 'em off, and aliens that are better shots than others. All I need are some bonus critters heading across the top of the screen and the logic to give free ships and I'll have a complete game. I also took advantage of that beta Terragen program that John Munsch mentioned a few months back. I used it to generate a collection of alien-looking landscapes for the game. The beta of the program still has a lot of limitations, like the size of the rendered image. Fortunately for me, the rendered images are almost the same size as the playing field for the game, so the resizing is imperceptible in my case. Using the PSP 5.0 smudge tool, I was able to rub out the polygons in the foreground of the image. Anyway, I updated the screen shot for the game here. I'm much happier with the look of the game now. The ship looks better and I've got a real background for the invaders. This particular shot also shows off the variety of aliens I've got available. The later backgrounds look better, with purple skies and yellow mountains. On the miscellaneous front, I found a couple of cute links. Here's an article from Playboy magazine, actually a collection of clips from their interviews, in which celebrities talk about their favorite games. Monopoly and Backgammon seem to be the favorites. Also, on the Monopoly official site, they are taking votes on what should be the next playing-piece for Monopoly. The choices are a biplane, a piggy bank (my favorite), or a money-bag. Unfortunately, they're not taking write-ins, so it doesn't look like there'll be a "Hank, the angry drunken dwarf" playing piece anytime soon. Invaders coming along Invaders from Beyond! is coming along well. I haven't really improved the graphics (other than the missile bitmaps), but a lot of the behaviors are in place. The aliens can now descend, collide with the player, and fire back. They currently only fire back randomly, but that'll be improved as time goes by. Turns out that the array scheme I proposed in my previous diary entry won't work. One of my early goals was to give the aliens free-rein of the screen, rather than being confined to fixed rows. Therefore, my options were more limited in how to avoid aliens shooting through each other. So I currently have each alien check below himself for the presence of other aliens before firing. That scheme seems to play fairly well. Since it's a slow step, I'm not gonna constantly allow all aliens to fire. For each step I'll probably just randomly ask a few aliens if they wanna fire. If they're clear and have a good shot, they'll fire. That way I can also put the firing AI into each invader. Some will fire whenever they've got a chance. Some will wait until they've got a bead on you. I'll probably do the invader AI similarly to the way I did it in Think Tank. Every enemy is given a random number at the onset, from 5 to 50. If an alien's within that many pixels of you in the X direction, he's likely to fire. It worked out very well in Think Tank, as not all of the tanks had firing capabilities. You didn't know if one was gonna fire at you until you were in its sights :) I think I've already figured out the next game I'll write. It's gonna be a version of Shi Sen tile solitaire. It's one of those Mahjongg-tile solitaire games, but the rules are quite different from the other ones out there. There are a couple of versions in Java on the web, but they're not very good and they're not in English. I figure that an English version with a few good options could be a winner. Completion of Shi Sen, amazingly enough will be the completion of game number 12 in my attempt to complete a new game pack and get it on the market before Christmas. Looks like I might make it. As a bit of trivia, this whole developer diary started out about midway through Zap Pod! I've written seven games since then; working on a pace that would make Roger Corman proud. Hopefully I'll have time to clobber bugs and add enhancements before it's ship-time. Congrats and Progress First off, a big congratulations to John Munsch et al. for the first birthday of devgames.com! FWIW, I used to be a coworker of Mr. Munsch during the early days of Multimedia Windows 3.0 over at Tandy. Mr. Munsch got the cool sexy multimedia projects, while I was consigned to the doldrums of the doomed-from-the-start DeskMate for Windows project. I'm not bitter, however. My complete disillusionment with the way Tandy was doing things spurred me on to do stuff right on my home project. A project that led to the empire I rule today :) I'm making excellent progress on Invaders From Beyond! So far, most of the code is culled from Zap Pod!, but it'll get more of a personality of its own as it goes on. The invaders look quite good, so I decided to post an early screen shot here. I like the way the aliens turned out, and they wiggle quite cutely. I'm not too happy with the ship on the bottom or the background, and I'll probably replace 'em. I'll need to make the missiles bigger, as they're pretty hard to see. Just for fun, I thought I'd have the aliens drop stuff other than little squiggly missiles on the ship. Round black bombs with sputtering fuses would be cute. They could also drop chairs, cinderblocks, kitchen sinks, etc. I also thought of importing some cameo appearances over from Olive Wars. Nothing quite as scary as a giant evil broccoli descending from the sky! As for the objects themselves, I've currently just got the Marcher class working. I had to put a lot of thought into how they were to turn around. Originally, I had a static boolean "Reverse" member that I'd switch as soon as an alien hit the edge of the workspace. While it sounds good, I eventually changed it in favor of everyone changing their direction manually. I did this because I want some Marchers to do other stuff when they hit the edge. I still need to figure out how a marcher can quickly determine if he can fire. A Marcher can only fire if there's nobody below him. This would be easy if I was storing the aliens in an array. I've currently got 'em in a linked list because it's easier to traverse. I was thinking of doing both, giving each Marcher it's position in a two-dimensional array. The Marchers could simply check the array items below 'em to see if they can fire. In the Marcher's destructor, they could null out their own element in the array. Killer aliens are born For my next trick, I decided to do an arcade game. Since I like adding twists to the classics, I thought it'd be fun to see what I could do with Space Invaders. My working title is Invaders From Beyond!, because Killer Alien Entities from Beyond the Reaches of Human Existence didn't fit on the title-bar. I also thought of Pernicious Purple Pods from Pluto, but I want the aliens to be all sorts of colors :) Objects are terrific for games, especially games with lots of little enemies, because you can easily define different looks and behaviors to each one. It's especially fun once you've got the base logic in place, because you can then try out some of your ideas and see how they work, and you get instant feedback. This was the case for Zap Pod! After getting the base stuff going, I added a half-dozen different alien behaviors in a couple of days. It made the game richer, and it didn't require much extra work. Seeing your ideas come to life is the most rewarding part of the process. Following my earlier model, I'll probably have an "enemy" base class for all meanies. Derived from that will be "marcher", which is an unintelligent critter that just walks back and forth, like a good invader should. Other aliens will simply inherit behaviors from "marcher". Also derived from enemy will be the saucers. I'll probably have a couple different saucers just for fun. For graphics, I'll probably leverage a lot of the critters from SpriteLib. The author's got a lot of cute little aliens and space ships that fit the bill perfectly. As for alien properties, I was thinking of the following for starters: Standard marching space invaders (level 1) Aliens that drop out of the sky when you shoot 'em, forcing you to dodge them after killing 'em. Aliens that "get sick" when you shoot 'em. You've gotta shoot 'em again before they'll die. If you don't, they eventually recover. Aliens that try to escape if you shoot 'em. If you shoot 'em before they make it off the screen, you get bonus points. Flying saucers that replenish the aliens if not taken care of quickly. As always, some of these won't work out, and some new ones will appear as the game evolves. I'll keep you posted. Backgammon is ready Finally putting the finishing turtle-wax on Backgammon. It turned out to be a bit more of a can-o-worms than I thought it'd be, but it did turn out rather nicely. I also got a few good comments from my number 1 playtester and wife. I had a chance to draw three more Backgammon boards over the weekend. I drew a marble-looking one, a faux-leather one (not too great, but passable), and a classic board that looks quite good. The antialiased lines and brushes in PSP 5.0 were very nice for drawing the points in the classic board. Since it looks classy, the classic board is gonna be the default. Installed Windows 98 on the main development box and the web-surfing machine. So far, the experience has been positive. Things seem to be stable, and the little extras are nice (except for the animated pull-down menus, which annoyed me). I also installed the Plus Pack, which includes a few little niceties, like the Disk Cleanup Wizard. The Organic Art Screen Saver is downright hypnotic. Haven't had any problems at all with VC++. Quite stable with it, in fact. Haven't quite figured out what my next game will be, but I was thinking of another arcade game. Arcade games are always well-received, but they can be tough to write. My past efforts at resurrecting old console or coin-op titles was fairly well-received, so I might find an obscure title that I liked, and resurrect it. No new leads on a publisher yet. We'll see if these beasts actually end up on the shelves. . . Backgammon's in the middle Still working on Backgammon. It's pretty-much on schedule, but there are tons of nasty little movement rules, the game itself takes place in three different stages (playing, racing, and going home), and the home and bar have to be treated differently from rest of the board. All in all, it ain't the easiest thing to program the movement rules. I'm starting to wonder if I should've tried something easier, like chess :) During the times I'm feeling less-than-codeworthy, I like to work on the graphics. My first Backgammon board turned out quite nicely. Paint Shop Pro 5 is a terrific piece of software, and I was able to create a reasonable-looking wooden board without much effort. First I painted a wood texture over a rectangular area. Then I selected an area equivalent to the points, and I changed the tint with the color tools to a darker reddish shade. Voila, I had a not-bad looking teak board with cherry triangles. During another less-than-technical moment, I plan to make a felt board with leather points. We'll see how it comes out. Still trying to figure out what I can do for a CGDA presentation, so I won't need to work my way through the CGDC next year. Actually, doing the servitude bit wasn't too bad, but I'd like to exercise some of my fine Toastmasters-honed speaking skills. You don't get to present much when you work alone. My copy of Inside DirectX arrived from Amazon a couple of days ago, and I like it a lot. For me, the lack of Direct3D coverage is an advantage, as most other DirectX books tend to be more than half Direct3D. I can imagine a Direct3D-only version of the book will be out soon. The discussion of DirectPlay is the most extensive around, and it actually answered a question that I couldn't get answered at CGDC. Namely, how can I do lobbying without selling my games to one of the big services? There are a couple of 3rd party DirectPlay lobby servers and clients on the CD. I'm not wild about either of 'em, but they might have to do if I don't wanna roll my own. It'd be nice to see someone come up with a lobby server and a toolkit for writing my own client. That way I could write a client that fits in with the look-n-feel of my games and doesn't look like someone else's product. I'm also finally getting some mailing-list info on Uber, which is the Apple-initiated game networking API used in Myth, The Fallen Lords. The makers are still getting it ready for beta-test, but it might have some advantages over DirectPlay, like cross-platform operation and source code. We'll see how it looks if-n-when I get the code. Backgammon begins Sorry it's been a bit. Been moving a couple of different directions lately. I started on a Backgammon game. The user interface is close to being done, and I think I know how I'm gonna do the AI. Dice make a game easier in ways, and harder in others. Backgammon's also a pain because the players have different goals. In chess, the goal is the same for both players (nab the opposing king). In Backgammon, folks are racing for opposite goals, which makes the movement code a bit tricky. I got a postcard this week from the CGDA. They're taking submissions to speak at the next CGDC. Speaking would certainly be easier than indentured servitude, so I was musing as to what I could speak about. I was thinking I could do an hour about how to work full-time for an ultra-small company (the IRS defines a "small company" as fewer than 75 employees, so I'm ultra-small). I just wonder if I could fill an hour with fascinating tidbits and advice for folks wanting to make the next great Quake-clone in their garage. Speaking of Quake-clones, am I the only one who's fascinated by the choice to do Duke Nukem N using the Unreal engine rather than one for Quake II? The way they're talking, you'd think that switching out the core graphics engine of the game will be a trivial task. Frankly, it makes me wonder how much code is written. On that note, I think I'll make my games work under the BeOS, Linux, Rhapsody, and the PalmPilot. I should be done next week :) Arcade Poker's Done Arcade Poker is basically done, and Shelly's claiming that it's one of the better ones in the set. We'll see. I'm probably gonna spend today putting sound-support into some of the recent stuff I've written. I usually forget to put all of the zany beeps and clicks into the games, and I end up having to scramble at the end. I'm gonna make sure that's not gonna happen this time! I haven't gotten any comments stating that my pages look horrible using [insert browser name here], so I'm gonna assume that everything's working as normal. Talked to the devgames webmeister (OK, email) over the weekend. Turns out that the developer diaries are the most-read feature on his site, and I'm just musing as to what make's 'em popular. It can't be because of any technical knowledge I'm passing along, because I really haven't. Is it just that folks like to get a peek on someone else's development process? Perhaps it's just interesting in a "programmer in a fishbowl" fashion, ala Jennicam. Any ideas or musings? Do I need to put a camera in here with real-time updates? Interestingly enough, I've gotten several questions in the past weeks asking if I have any plans to make larger-format games someday. I must say that the answer is "I don't know". Frankly, I think that small-format games are always gonna be around --when "Risk" was invented, it didn't kill off the market for Checkers. I prefer playing small games over big ones. If anything, I'd like to have the luxury of being able to put out one 10-game pack every three years, but those games would be absolutely top-notch --original well-tested designs with professionally designed graphics, sound, etc. I've certainly got the code-foundation to do such a thing, I just don't know if I could ever make it financially feasible. Maybe someday. . . Switchin' to FrontPage Well, here's the first cut of my new front-page version web pages. I've just about got the hang of FP. So far, I've been happy with it. The biggest problem I had was removing all the weird table stuff that ATrax did. ATrax, for some unknown reason, liked to put just about everything into tables. My biggest worry about FP is the image-map support. We'll see if my little toolbar above still works. It all looks good in IE 4.0. If you have any problems with other browsers, lemme know. Making good progress on Arcade Poker. I spent a little more time on the graphics than on previous efforts, and it shows. It's a small, but good-looking, little game. I got the little EyeCandy numbers, now called DisplayNumber, working. Like the sparkles, they're in four colors (blue, green, red, yellow), and I've got a "random" color that makes the numbers flash in random colors. I must say that they look quite good, and I've already started working 'em into some of the older games. I'll try to get a screen shot of the numbers in a screen shot on the web page. Just for giggles, I bought myself a force-feedback joystick, specifically the Microsoft one. I figured it might be fun to add force-feedback to Olive Wars and ThinkTank. Nothing fancy, just a gun-recoil when you fire a pimento. Anything for silliness :) Finally, I must ask, does Apple have any idea what it's doing? Lemme make sure I understand this. . . First off, Apple pays$400 mil to buy NeXT. NeXT makes an operating system that works on several processors, but not the one that Apple sells. Apple commits to porting the operating system to work with their machines, making the user-interface a sort of polyglot between the old and new. Unfortunately, Apple made the teensy mistake of thinking that companies would want to rewrite their products to support the new OS, so they added a layer that lets the old apps run with little modification. Later Apple figures out that nobody really wants a new OS, so they make it sound like the new OS is really the old one, only with pre-emptive multitasking and memory protection. Of course, Apple dumped their planned new OS with pre-emptive multitasking and memory protection when they bought NeXT!

Finally they release their answer to the under-$1000 Windows computer. It looks like a vacuum cleaner, has a 33k modem, no floppy drive, and costs$1300.

Don't get me wrong. I'm a big supporter of the mac, but I'm mighty worried that they're too far-removed from reality to survive.

Just a couple of quick notes today. I finally found an automated website updater that I like. You know, one of those programs that'll automatically update a web site via FTP, synchronizing it with a local directory on your page-drawing machine. I run 3 web pages, so this is a long-overdue utility for me. Microsoft gives one away with IE4, but I never got it to work right. Well, I found a free one that works in PSU. It's a command-line tool that uses a script language. The script has about 5 verbs, so it's not too tough to use.

On another note, I'm currently migrating my pages from ATrax to MS FrontPage, so things might look slightly different in the future. Atrax is neat, but it's a bit slow, and it does a few little annoying things. FrontPage, from my limited experience, is quite impressive.

Sorry it took a bit between updates this time. Been busy putting the finishing touches on Kizbot. I think I've got all of the pieces in place except for the sounds. Sounds for me are always an afterthought anyway.

For my next game, I've been thinking I'd need a couple of new pieces of EyeCandy. For the uninitiated, EyeCandy is an extremely useful little object I put together a buncha months ago. It's basically a non-interactive sprite that kills itself after a given time. In my old games, things like explosions were a pain because I had to keep track of 'em, drawing each frame and killing it at the end. Now they're easy, I just create a new Explosion object and let it go. It hooks into the timer, draws itself, and cleans itself up, leaving only the fresh scent of pine.

Anyway, I've got a couple of cute pieces of EyeCandy, explosions and sparkles. I've been meaning to make puffs of smoke that the vegetables in Olive Wars can leave behind as they fall out of the sky.

I dunno why I didn't think of this sooner, but I need to make some EyeCandy numbers that display for a short time and disappear. Remember in "Pac Man" when you ran over a ghost? A little score appeared in its place for a short time. Such a thing would be perfect for EyeCandy. With some of my behavior stuff, I could even make the scores bounce-n-wiggle. I'll probably work on it next week.

On a related note, has anyone ever created an object model that they were completely happy with when the project was implemented? It seems that my projects go like this. . .

Design object model Create headers and code Get model working and debug model Realize that the model would've worked better if designed differently Return to top

Unfortunately, the cycle appears to be endless. If I go back and redesign, I often find an even better way of doing it, or I find out that my new model is over-engineered, and it doesn't really work any better than my old one.

This came up because I was thinking of new and creative ways of doing Sprite objects. Coming up with movement behaviors and attaching them to Sprites isn't really possible in my current model, but it sure would be cool. Moving Sprite objects around, however, is quite simple right now, and I don't know if making some kind of "Mover" algorithmic object that can be attached to a Sprite would really make things better. I think it's gonna end up being one of those questions for the ages, because my Sprites work and they're easy to use.

If I ever find the rules that govern the mysterious "redesign vs. don't-mess-with-it" point, I'll write a book.

My book will be subtitled "What the government doesn't want you to know about the deadly year 2000 crisis" so I'll sell a lot of copies :)

Finally, I must state that rec.games.programmer is not going through a phase of juvenile newbie flamewar wannabe-itis --it's always been that way! People have been talking about breaking up r.g.p into a collection of "serious" groups since 1992 with zero success.

IMHO, every primary schooler who's learning to program is doing it so he can write games. Rec.games.programmer is always gonna be the front-line in attracting that element. Serious discussion of game development is always gonna be second-tier for that group.

Sorry about the rant. There have just recently been a set of forged "I'm a gay programmer" posts on the group (yes, 7th grade "you're a fag" humor). I can only assume that somebody's OS or graphics card was insulted :)

Probably gonna take it easy today. I think the haze and dust that's coating most of Texas is getting to me.

Otherwise, I've been making some good progress on the games. The latest dice game, now named "Kizbot", as I was feeling less-than creative during the naming process, is almost playable. I added colored pips to some of the dice, so you can get cool stuff like flushes with dice. The game seems fun so far, but it's gonna be slower-playing than Brain Bones.

Just for fun, I've been cosidering putting a "Gratuitous Blood Mode" in Olive Wars. One of my cohorts, working for my publisher, mentioned that Olive Wars is one of his favorites, but my games don't feature enough meaningless violence. I was thinking of putting in a mode that replaced the flying vegetables with flying guinea pigs that would explode like water balloons full of blood. I figure this'd also attract the "Deer Hunter" crowd, and it'll likely get my game banned from Megalo Mart.

But I'm rambling now. Off to bed with me.

CGDC Observations

Well, I actually got some good feedback from the last entry. A couple of folks said that they shared my observations about the CGDC. A couple other people suggested that John Romero, the angry egotistical dwarf, be nominated for next year's People magazine awards. Still another person suggested that I should've just dwarf-tossed him and continued my conversation. I'll reserve further dwarf-comments for another time.

Also, I didn't mention my adventures in the puzzle-gaming roundtable. Alexy Pajitnov, the guy who invented Tetris, was hosting a 3-part roundtable about puzzle game design, and I got to attend two of 'em. Alexy acted more like a moderator, constantly asking if we wanted to talk about 3D puzzle games. The answer was a continuous "no", so he finally gave up on that discussion.

There was an interesting moment at the first conference. Shortly before it began, a character entered the room, and the rest of the room lit up with murmurs. Apparently this person was the lead designer of Obsidian, a fine-looking multi-CD adventure game. About an hour later, it occurred to me, "Wait a minute. My games have sold better than Obsidian, why was the room not abuzz when I entered?". Of course, Obsidian does look quite good, and Rocket Science might still be around today if they didn't release a bunch of crap early on, so it's not his fault that Obsidian faded rather quickly. He actually seemed like a decent guy, so I just kept my big egotistical wannabe mouth shut :)

The guys who designed Smart Games and a few other packs were also there. At one point we were talking about how to give hints without making it too easy on the user. I mentioned that 7th Guest had this quiet ambient voice that gave vague hints, becoming more demonstrative over time. When asked if I thought it was a good idea, I gave an ambiguous reply. I wanted to reply that the puzzles in 7th Guest were ambiguous and had nothing to do with the story, so the voice was needed just to connect the game to the plot. Unfortunately, the 7th Guest guys were in the room, so I didn't press it. Maybe roundtables should be done via IRC :)

Fixed a few of outstanding bugs in my main menu and in a couple of games (right after handing out sampler CD's at the CGDC, good work). I also started on a new game. I was always attracted to those Yachtzee-type games that you play with funny dice, so I'm working on my own version. Hopefully it'll be different enough from the stuff currently out there to be interesting. We'll see.

On a completely different note, I've become addicted to the little wheel on my mouse. I've got two of 'em now on the machines, the Microsoft and the Logitech. Of the two, I prefer the Logitech because the software is better and the wheel is a bit looser.

Home to Texas

Awright. I arrived back to my cozy Texas home at 3 o'clock this morning. The CGDC has come and gone. There's a lot of stuff to talk about, and I don't wanna give a blow-by-blow description, as it'd take forever. For that reason, I'm gonna put down my random impressions into a buncha bullet-points. Here I go. . .

Good Things:

I met a really interesting character at the gamestorm booth. We chatted a bit about opponent-finding at the booth. A couple days later, I was asked to help him set up an easel for a lecture he was giving. He recognized me as "the guy from The Code Zone", which surprised me (7000 people went by his booth, for cryin' out loud). His lecture on network gaming was easily the best I'd heard. DirectDraw and DirectSound Retained Mode are good things. I dunno what "retained" means, but the DirectX folks seem to be putting two levels of support in all of their stuff. The "retained" modes are generally higher-level and easier to use. DirectDraw Retained Mode is basically a full sprite animation engine for DirectDraw. It features lotsa nice stuff like Z-ordered sprites, dirty rectangle management, and alpha channels on sprites. DirectSound Retained Mode adds the long-needed ability to play WAV files directly, without having to stream the file into a buffer first. I bumped into Frank Yerrace, one of my old co-workers from the old Tandy days. He's now at Microsoft, working on their sound stuff.

Pirhana Publishing pretty much dismissed my product out-of-hand, despite their newsgroup solicitation for products. They flipped through my little press-kit (1 page description, four pages of screen shots, one CD), and said that they were looking more for large-scale strategy games than "small stuff". I'm certain that this is a foregone conclusion, but the expo floor was more of an obnoxious show of dollars than a place to meet with companies. The best example was HEAT.NET, who handed me a T-shirt when I asked them how to add game content to their service. I kindly offered to trade the T-shirt for an answer to the question, but all I got was a business card and a suggestion that I call next week.

Cool stuff I ended up getting:

A Diamond Stealth II video card. It was a freebie given away for attending a seminar about the Intel i740 chip. Haven't installed it yet. It had some really nice statistical features that would let you tune your 3D games. Won't do me any good, but it'll probably run games well. A Microsoft Sidewinder joystick. I got this at MS's hospitality suite. I could've gotten the force-feedback model, but you had to go through all kinds of hoop-jumping to get it. Autographed CD's from The Fat Man. I had to buy the CD's, but I wasn't there just to scam free stuff (unlike 75% of my colleagues). I'm listening to one now, and they actually work as a real band --sort of a synth-version of TMBG. A Hardwood Solitaire CD. I really respected these guys. They're just a little company with some really nice shareware solitaire games. They were running a hospitality suite, giving away games, mouse pads, and soda pop, just trying to get their name out. I mentioned that I was one of their competitors, and I talked to 'em for a bit, finally leaving 'em with a copy of my games. Lots of key chains, squishy balls, plastic toys, pens, and CD's with SDK's of every kind.

The 3D market is ripe for a well-deserved "correction", to use the stock market's vernacular. The hot topic, nay the only topic, of the show was 3D. Fully 95% of the booths in the expo hall were either for 3D hardware or 3D software. There were at least a dozen companies dedicated just to modeling and animating human figures. The entire conference seemed to be geared towards its attendees (18-40 year old males). The only ray of hope was during a conference about trends in the market when one of my colleagues loudly commented that zero of the top-5 PC games are 3D, and that while folks are working on the latest run-around-in-halls shooter, Deer Hunter is clobbering them on the shelves! At least one other viewer loudly concurred that people are having such a love affair with the technology that they're ignoring the market. John Romero is an annoying little egotistical dwarf. At one point, I was talking to the brother of Ken Williams (of Sierra fame) about their new opponent-finding service, won.net. Suddenly, this little creep with a Daikatana shirt shoves his way between us, trying to get Ken Williams' phone number. My roommates and I made fun of him and his "you will be my bitch" joystick ad for the rest of the week. The CGDA has no real reason to exist anymore. What started out as an organization set up to support and connect game developers has become little more than a trade-show group. Frankly, making it a sub-conference of another bigger show wouldn't be a bad thing. A quick look at the CGDA web site shows that they don't really care about anything but trade-shows anymore. I joined up with the IGDN at the show, and I don't intend to renew my membership in the CGDA. The online game networks richly deserve the trouble they're having. Almost every one of 'em is set up to work on high-bandwidth-low-latency games (read: Quake), so they can justify their monthly fee. Such a model is fatally flawed and deserves to die. If people are gonna pay to play games, they're gonna pay for content, not for latency. The current latency problems will improve as we get faster internet into homes. People aren't gonna pay monthly fees for a problem that people perceive is fixing itself. If people are gonna pay, it's gonna be for content, not meaningless buzzwords like "latency"

Off to Long Beach!

Well, I'm taking the redeye to Long Beach tonight. I'll be arriving in sunny CA at about 3 AM, so I'll be nice and fresh for my indentured servitude at CGDC.

I put together 10 press kits to pass out to hopeful publishers. I pressed CD's with the existing games (they'll time out on 6/15). Shelly printed up four pages of nice screen shots for me, and we've got a short treatment ready. I purchased some handsome teal folders and some printer-ready business cards, and I'm ready for some shmoozing!

The main menu's not perfect, but it's working well enough to show off. I fixed as many bugs as I could find. I also finished the install program, which leads to. . .

[rant mode on]
Software companies need to learn something about scoping!

This install was the first time I used InstallShield since around 1992. The 1992 InstallShield (used to make the LANWords installation) was quite simple. It consisted of two command-line tools, a ZIP-like utility that would compress your files together, and a compiler that would compile a high-level script language into an executable install. All you had to do was to modify one of the example scripts and write a couple of batch files, and you were done.

The new InstallShield is basically the same tool, but it's no longer command-line and is now, IMHO, hopelessly mired in wizards and other UI nonsense. Instead of a buncha example scripts to modify, there is now a tool where you specify your requirements, and it builds a script for you.

Having many example scripts was actually much handier, as I could figure out how stuff is done just by running 'em. The new example scripts are now a hodgepodge of mini-examples in a help file. You can't run 'em, so you don't know how they'll work until you pull them into your own project.

All in all, it smacks of the episode of "The Simpsons" where Homer was allowed to design his own car. . .
[rant mode off]

OK, I feel better now. Hopefully one of my associates will be providing an update or two during next week.

Gettin' done with the GDC

Moving along on the whole CGDC thing. Got my plane tickets and I have a hotel room lined up. Now I just need to have a nicely-debugged set of sample games to hand out.

The new main menu is basically done. You can see it here. It's much nicer than the old main menu, and it should be much easier to expand than the old one. I also had a chance to add a couple of user-requested features, like a "favorites" menu that shows the most-played games, and the ability to create a desktop shortcut to a game you especially like.

For some reason, the 16-color bitmaps are broken, and I have no idea why. I'll need to look into it. They've only been working since 1992. Go figure.

Hopefully I can convince the lovely-n-talented Shelly to update the diary during the CGDC. We'll see.

Gonna volunteer

A bit of a departure from the past few days. A fellow game developer mentioned to me that people who volunteer for 22 hours of work at the CGDC get a free giga-pass. They've also got special room-rates in exchange for indentured servitude. How could I resist? I couple of hours later, I had a discount tickets on the redeye flight to LAX and was signed up as a volunteer.

After deciding to do this, I figured I'd need to put together a set of games that I could pass out to potential publishers at the CGDC. I'm working on a new main menu that'll pull the games together much more nicely than the old one. I've also gotta put together a new install program. With a few late nights, I can probably have the set good enough to burn on a dozen CD's within a week or two. I'll also need to write a short treatment, but that shouldn't be much of a problem. After all, I've got a buncha games done. It's not like I've just got a demo.

So far, the menu's coming around well. Instead of having the game info hard-coded into the menu program, it now pulls the game info out of the games themselves. That'll make it easy to add new programs to the menu by simply putting 'em in the menu's directory. It also looks much nicer --not like discount software.

Wish me luck. Hopefully I can interest a publisher or two. If anyone reading this wants an evaluation copy of my games, look for me tallest guy volunteering at the CGDC and ask for a copy!

• Popular Blogs

• I know this is a fairly old thread but there is something I don't quite understand about the structure of the Context files. In a Context file Buttons are mapped to actions like so...
3 0
which means that Button 3 is mapped to Action 0. The numbers later get translated to expressive enums.
Now my question with this is, is "Button" supposed to refer only to Keyboard buttons or to buttons from an arbitrary input device like Gamepad, Jostick and so on. If the latter is the case wouldn't there be the problem that any button that produces a certain number code always maps to the same Action, which means that arbitrary layouts for more than one input device are not possible.
• looking forward for your next croak, such kind words. isnt it? (its a joke attempt)  In any case, good luck to you
• I´ve hidden a character there Thanks for the hints: especially the second one is interesting. I started using volumes in my open world level design series but havn´t adjusted them yet.