Well, Miss Maggie is excited about Zombie Kitten Attack, mainly because she's been watching me write and test the thing over her Xmas vacation from school. She's always offered to help me play, going as far as trying to wrestle the mouse from my hand when I'm trying to make a move.
This morning, I settled down for today's puzzle, and the rugrat popped up to check on me. When she saw I was playing, the conversation went like this.
Maggie: I LOVE THAT GAME!!!
Me: Do you know how to play?
Maggie: Yeah, you have that little man there, AND YOU HAVE TO MAKE HIM DIE!!! (emphasis hers)
So if you notice that my attempt 2 and 3 scores for tomorrow are a mite low, you'll know why :)
Sunday, December 31, 2006
Four year-old bloodlust
Saturday, December 30, 2006
When Zombie Kittens Attack!
My new Daily Puzzle (number eight) is up. It's called Zombie Kitten Attack. This one was a bit of an experiment. It's based on an old game of mine called Robottack, which in turn is based on the old text-based "daleks" games of the early 70's.
It's a bit interesting in that I wanted to see if I could make something that looked like an arcade game but is still a turn-based puzzle game under the hood. On the whole I think it succeeds. For one, I went with a whimsical arcade-friendly theme. I also added an above-average amount of animated bits(including my new favorite, the "lawn sprinkler full of blood" effect) and sound effects (including the Wilhelm Scream).
It also has levels, which is something new for daily puzzles. On the whole, I try to avoid Pac-Man-style levels, where things clear off and start over again a bit more difficult. Maybe it's just me, but I think that in most cases that's a copout and can be solved with a bit more design.
One example I saw was that C64 game that SteelGolem posted to his journal. It's a game where you have to blow up several oddly-shaped space stations. From what I saw, it appeared that the easy stations were close to you and the tough ones were further away. That way you could conduct yourself in a levelish fashion, but it all fit together smoothly.
. . .at least that's how it looked. I think it did level-up at the end. Would've been cooler if you were just slapped into the middle of 60 stations, with the easy ones close and the tough ones way out on the outskirts.
And that's how I tried to do it with Zombie Kitten Attack. Originally I wanted new kittens to wander on the screen in greater and greater numbers until you died. Only problem is that it's not difficult to completely surround yourself, thus making yourself invulnerable from any onslaught no matter how big.
So rather than levels, I went with sequels. The idea is that you're in a bad movie, and if you defeat the cats, you're taken to the sequel. Yeah, I know it's still levels, but it's a little bit cuter.
Enjoy the game. IMHO, it's still not quite as "balanced" as the existing puzzles. Most of the puzzles take a fairly constant amount of time to complete. For example, Poker Patience is done after you drag 25 cards. The only real time constraint is the amount of time you spend thinking about where to place things.
Zombie Kitten Attack, though, is more of a "feast or famine" kind of thing. You eventually will be killed, but it does seem that some games will kill you in 30 seconds while others can go several minutes.
Anyway, I'll see how it goes over the next week. If someone manages to get up to level 20 without getting killed, I'll probably re-balance things. Thankfully, it's pretty easy to make this game easier or harder by simply varying the number of cats/houses/cars/zappers, so I can fine-tune it without much trouble.
So try it out!
Oh, and if you've purchased one of my games and you want the ads shut off, email john@thecodezone.com with your handle, and I'll take care of it.
My to-do-list. . .
Fix the sliding pop-up windows so they have a bottom that uncovers the score. I originally wanted the boxes to be transparent enough that you could see the score through the panel, but it's one of those balances that's not working. If the panel's transparent enough to see the score, it's hard to read what's on the panel itself.
Make the "email me a daily score update" actually do something. Sorry about the delay in that.
Add ads to the games. Sorry, folks, but I have to pay the bills. Hopefully it'll be more of an incentive to buy a game rather than an incentive to abandon daily puzzles entirely.
Fix the "games played" panel so it works if you have some kind of gizmo caching up port-80 requests on your machine.
Cull the old scores from the high score table so that the stat-bars don't get so crowded that you can't read 'em.
New Daily Puzzle!
Daily Puzzle 8 is now up. It's a bit different from existing entries. It's basically an experiment to see how one can blur the lines between a puzzle game and an arcade game. Zombie Kitten Attack, at first glance, looks like an action game, but you'll find that it requires a bit more thought than a typical "twitch game".
Enjoy!
Labels: siteannouncements
Friday, December 29, 2006
Some leftovers
Wednesday, December 27, 2006
Tuesday, December 26, 2006
Friday, December 22, 2006
An Open Letter
Dear Adam Sandler, Ben Stiller, Will Ferrell, Janine Garafolo, Jim Belushi, Larry The Cable Guy, and David Spade
You have never made me laugh. None of you. Ever. Please stop making movies.
Dear Steve Martin and Robin Williams
Neither of you have made me laugh since around 1990. You have enough money.
Please retire. Learn from Dana Carvey.
Thursday, December 21, 2006
I'm the decider, and I decide that YOU MUST SHOP!
"I encourage you all to go shopping more." - George Dubya "I'm The Decider" Bush
First off, I'm glad to see that The Commander-In-Chief has decided to join them leebral secularists in the 2007 campaign in the War on Christmas.
It ain't about Jesus, folks. It's about keeping the wheels of commerce from coming off!
Iraq is grave and deteriorating (quoth the bipartisan committee). Mind you, I haven't yet read the report, but I don't recall hearing that the short-term solution is for all Americans to raise their short-term debt by buying some plastic bits and bobs for their kids.
Maybe it's just me, but I don't see how me creating a bit of new short-term high-interest debt by going down to a department store and purchasing a Chinese-made Dora The Explorer doll is anything but a temporary solution.
But hey, I ain't an economist. If increasing Americans' personal high-interest debt (which directly increases personal bankruptcies (which directly raises interest rates (which directly drives us into a recession (which directly makes it even MORE abundantly clear that the US's horse in the global culture-war hasn't been in the race since the fall of the Berlin Wall (and gives me hope that I'll live long enough to see the two remaining competitors battle it out (which are the EU and China (both of which are funded largely by us (ironically))))))) is actually GOOD for America, who am I to question?
I'm picturing one of those "Rosie The Riveter" posters from WWII, except in this case Rosie isn't shown giving the thumbs-up to our troops while bolting a gun-turret to a B-29, but she's running her credit card through the scanner at Target so she can get that Robo-Sapien and the Nintendo Wii.
Well, maybe I'm thinking about this all wrong. George Dubya "resign yourself to the fact that history will record you as the worst president ever because Millard Fillmore ain't even CLOSE anymore" Bush only told Americans to "go shopping more" and not "go buy more things". Shopping itself is the process in which you enter stores and look at items available for purchase, not necessarily to purchase them.
In fact, I was already planning to do a little shopping with Maggie this weekend, given that she's outta school and her mommy has a big project due next week. Mind you, I didn't plan to BUY anything, except maybe a Latte.
Seems like that's the best solution that will keep my personal debt in-check while still being a good American per the wishes of my Commander-in-Chief, "The Decider".
So that's my short-term plan to support our boys in Iraq. This weekend I will do very much shopping, but I will buy nothing!
I am John Hattan, Good American, and I approved this message.
Monday, December 18, 2006
SQL Question
My knowledge of SQL pretty-much reduces to "the minimum required to get my stuff running", and I'm now in the position where I need to expand that knowledge.
Is there an easy (and hopefully quick) method to prune old records. Here's an example. Go to http://www.thecodezone.com/statomatic.php?flyman and choose "Poker Patience" from the pulldown to see my scores. Notice that the graph is about as crowded as I want it to get, which means that I need to start wiping out the oldest entries and only keep the 30 most recent.
So I need some kind of SQL statement to keep a range of numbers in a table and dump everything else.
My high score table looks like this. Nothing really surprising.
CREATE TABLE `hiscores` (
`date` int(6) unsigned NOT NULL default '0',
`id` int(32) NOT NULL default '0',
`score` int(10) unsigned NOT NULL default '0',
`seconds` int(10) unsigned NOT NULL default '0',
`recording` text NOT NULL,
`gamenum` int(11) NOT NULL default '0',
`attempt` int(11) NOT NULL default '0',
`place` smallint(5) unsigned NOT NULL default '0',
KEY `date` (`date`),
KEY `moves` (`score`),
KEY `seconds` (`seconds`),
KEY `id` (`id`),
KEY `gamenum` (`gamenum`),
KEY `attempt` (`attempt`),
KEY `place` (`place`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
My dates aren't stored as standard SQL/ISO/whatever dates but as the 6-digit values I use to seed the randomer (year*365+dayofyear). It ain't standard, but it's still sort-able.
So, I need some equivalent to the following. . .
Given an 'id' field of 1 (poker patience) and an 'attempt' value of 0, get all of the results sorted by the integer field 'date' and delete everything but the 30 largest values.
Now then, doing that in PHP wouldn't be that hard. It'd just be a matter of querying the table sorted by date, checking the rows returned, then manually removing the smallest entries if there are more than 30 rows, but I was wondering if there was a way to do it entirely in SQL.
Any thoughts?
Friday, December 15, 2006
I'm all blogspotted
Well, it was bound to happen. Since I'm downright tired of the pretty-much constant 500 errors and delays that come from trying to post or view the Bargain Basement Blog, so I mirrored the whole danged thing.
You can now read the mirror at thecodezone.blogspot.com. The posts will be mirrored until the gamedev code-monkeys get their heads together and make the Journals page into a proper RSS aggregator. Until then, though, I recommend you check out the blog there.
If you have an RSS reader, I'd also recommend that you move your subscription to that page for the simple luxury of being able to read complete blog-entries rather than the first couple of sentences.
Actually one nice side-effect of this was that I finally got to automate my "site news" at the front of www.thecodezone.com. I've been posting site updates manually on the main index.html page, but that always felt a mite low-tech. Thanks to Blogger's post-labeling feature, I was able to make a little RSS client in Flash that requests items with the a siteannouncements label and shows 'em on the front page.
Now every time I want to make an announcement for the front page, it's just a matter of writing a post and tagging it with "siteannouncements", and it'll appear on the front page. Cool.
Only problem is that the RSS you request is sorted in the order that the entries were last edited as opposed to the order that they were dated, so you see an October entry at the top of the list. I could write a sorter, but I planned to re-edit the entries to make 'em a mite more friendly with the built-in Flash HTML 1.0 text-field parser, so I'll just edit 'em oldest to newest, and that should fix that.
The new Daily Puzzle is still on the way. I had to do some work for Shelly and that put the brakes on things a bit.
Tuesday, December 12, 2006
Caching interestingness
Shelly's been seeing a bug in the daily puzzles for the past few days now. It's in that little "games you've played" panel at the very end, and it's not updating itself properly.
That panel is actually a little HTML table-renderer that was a Macromedia DevNet component from days long-past. Quite simply, my code appends your user-number to a fixed URL and sends whatever's returned to the table-renderer. For example, here's the played-panel for Shelly (user number 20).
http://www.thecodezone.com/games/playedpanel.php?20
The page looks a mite ugly in your browser, but the table-renderer has no problem with it.
Shelly's problem is that the table always seems to be a bit behind the times, not properly showing games that she just finished in the "games you've already played" area. I never saw this in Firefox, but she's seeing it in IE7.
Only theory I have right now is that IE7's filtering requests from plugins and is caching 'em up. Either that or there's something else on her machine that's caching HTTP requests (Google web accelerator?) and is returning a cached panel rather than one from the server.
Easiest way to fake out any web-caching is to change the URL slightly, so I might do something like http://www.thecodezone.com/games/playedpanel.php?20.12345353 where everything after the decimal is just a random number. Then the PHP code will smartly strip off everything after the decimal and do its magic.
Anyway, I'd like to be certain before I make code-changes. Anyone else out there seeing this behavior? If so, what browser are you using and are you using any other web-stuff that might be caching up port-80 results?
Friday, December 08, 2006
New daily puzzle
Working on daily puzzle number eight. It'll be a little more whimsical than previous entries.
It's based on an idea that TANSTAAFL and I had at the GDC a buncha years ago.
Gimme about a week and I'll try to have it up. It'll need a bit more playtesting than other entries, so it might take a couple of days more.
Wednesday, December 06, 2006
Okay
Awright, I got six or seven takers on the whole reviewer thing. Big thanks for applying.
We just got a Central Market right down the street from us. It's rather fun living in a very affluent town even though we don't, according to hoyle, live in the affluent section. Our little half-underground hobbit-hole doesn't hold a candle to the 10,000 square foot McMansion going up a block away from us.
Anyway, Central Market is a truly pretentious place. First off, it has that rather annoying labyrinthine layout pioneered by IKEA. If you want a bottle of milk, plan to hike through lots of other places first.
Next is their selection, which is a mite inaccessible. Since it was opening day and we figured on scoring some freebies, Shelly and I headed over with the aims of getting. . .
1. A gallon of skim milk
2. A 12-pack of Diet Rite
While we did find the milk, the Diet Rite was nowhere to be found. Their soda section was populated entirely with stuff like "Perfesser Wingleberry's Carson City Microbrew Organic Willowbark Larchbeer" selling for eight bucks a four-pack.
Clearly Central Market is gonna have to reserve itself for the times we need some specific foodstuff that's unavailable anywhere else.
Other observations. . .
1. They have a salt bar. Yes, a salt bar. That would be a place where you could choose from about ten different pretentious shades of contaminants in sodium chloride. . .at about ten bucks a pound, which is about 40-50 times the price of the proletarian sodium chloride that I am now ashamed to use.
2. Their freebie selection is top-notch. Besides the pounds of free sample food handed to us on every corner, we ended up with a wooden spoon, a hardcover cookbook, a bag of potato chips, and two coffee travel-mugs. We could've also gotten a nice kitchen knife if we spent $50, but our purchase (milk, tortillas, apples, brussel sprouts) was well short of that.
(note to Terri, get yer ass over here. It's currently got the Costco Buffet beat by a mile.)
3. We were amused that their selection (namely the lack of mass-market soda-pop) would require that we would have to stop at the grocery store ON THE WAY HOME FROM THE FREAKIN' GROCERY STORE! This ain't gonna supplant Kroger as our corner store of choice.
4. Did I mention that they have a salt bar?
5. Our neighbor was there, excited because she could finally get some sort of amazing organic tomato sauce that she saw used by somesuch chef on Oprah. I was too ashamed to mention that I usually pay about a nickel a can for tomato sauce because our local grocery store triples coupons. And I've never watched Oprah.
6. Their meat department appeared to have flesh from every animal on the planet. I was going to ask for a pound of ground weasel and a nice fillet of human, but Shelly told me I'd probably get arrested if I did.
7. I never thought I'd live to see the day when having a sushi section or an olive bar in a grocery store would not distinguish it from the other grocery stores in town.
Conclusion: Between this place and the Apple Store, Southlake now has two stores that clearly state that I'm just not trendy enough to shop there.
Monday, December 04, 2006
Help Wanted
Okay, I probably ought to post this in the main forums, but I'll post it here first just to see if there are any takers.
WANTED
One or two new product reviewers for www.gamedev.net. Now that our review process has grown a little more streamlined and reviews are getting out the door at a reasonable clip, we have found ourselves with more products waiting for review than reviewers to cover them. So we need some reviewers.
What I need from you:
1. Must be prompt and dependable. My policy for gamedev reviews is that we will have a review completed and ready for publication within 30 days of receipt of the product. So if I get you set up with a company to review a product, I want a good size review (see our existing reviews for a guideline. They can be longer, but not shorter than that) in a reasonable timeframe.
2. Must be literate and be able to produce a thorough and descriptive review. In the past, I've had to do very little proofreading because our existing reviewers are a fairly literate lot. I'd like to keep it that way. If your grammar-skills need a little polish, please polish them before applying.
3. Must be honest. In the past, we had a reviewer who received a couple-thousand dollars worth of graphics hardware and software, then disappeared. And it made us look really bad with a couple of important companies. If you're honest, you'll get a lot out of our review program (see below) both in tangible and intangible benefits. Honesty is the best policy here.
4. Must communicate. While you'll have pretty-much complete control over your schedule, I do need you to communicate with me (email, IM, forum, whatever) to let me know your progress.
What I can give you:
1. Products. With very few exceptions (i.e. Alienware laptops), our policy is that our reviewers receive fully licensed versions of the stuff they review. In the past that has meant everything from $25 shareware text-editors to $3000 3D graphics suites. And I don't mess around with vendors when it comes to this. The deal is, you're giving them exposure and feedback for their product on an industry-leading website, and that's worth something.
2. Freedom from the annoying technical details. All I need from you is a review with barebones HTML formatting and some screenshots/photos, and I'll do the rest. I'll take care of scheduling the article's appearance, formatting and posting it.
3. Resume credit. If you want to get your toe in the door for bigger and better media or press-related stuff, you could do worse than have a handful of well-written articles on gamedev.net.
How this works:
It's pretty simple, actually. If you're a reviewer, you'll have access to the "Reviewer's Central" forum on gamedev. This forum contains the info for any companies that have contacted us regarding reviews. If you want to review one of their products, you contact me. I'll then put you in contact with the company so that you guys can work out the details of receiving the product (snail-mail or download). Then you get the product, start writing, and post your review-draft to the aforementioned Reviewer's Central forum. If anyone has comments, we'll post 'em there. When the review's ready for publication, we publish it.
Also, we usually forward the draft review to the product company. This isn't so that they can try to sway our opinion of the product but so that they can ensure that your review covers any new features or important stuff you might have missed. For example, one company prided themselves on the quality of their phone-support, so they wanted me to anonymously call 'em up with a problem and review that.
Right now I think I'm going to give preference to people who can review programming tools over applications. Several of our queued items are things like Direct3D GUI libraries and 3D engines, and if I can get folks willing to hack together a test-app for somesuch library, that'd be more useful to me than someone willing to test out the latest drawing program.
If you think you're up to the task, email me at john@thecodezone.com. We currently have some cool stuff waiting for reviewers, like 3D engines, Direct3D GUI libraries, and the like.
Friday, December 01, 2006
The gift that keeps on giving!
Now then, I'm always one to look upon the holiday season with optimism, and I'm not one to grow depressed at the sight of unbridled commerce. According to Fox News, this means that I'm waging a "war on Christmas, but I digress".
Anyway, I have a funny story. As pointed out last week, I just turned 40. My inlaws always make a point of forgetting my birthday. Mind you, they don't actually forget my birthday. This is clear for two reasons. . .
1. My birthday is eight days before their daughter's.
2. For the past several years they've called Shelly ON MY BIRTHDAY to wish HER a happy birthday and to ask "isn't John's birthday sometime soon? We're so bad at remembering those things."
This year they did the same "Oh we forgot. We're just flaky that way. Aren't we CUTE?" that they've done for the past several years. This year, though, they sent me an e-card after finding out that they once again missed my birthday.
. . .and it was thrown out by my spam filter before I could read it.
Dang, there's an O Henry play in there somewhere!
Now then, an e-card is the shallowest of gifts. It's the gift that says "I think so little of you that I can't even be bothered to spend 39 cents on a stamp". And if you ever feel the pull to send someone an e-card, just don't do it. All it does is underline the fact that you're a bit too wrapped up in yourself to make even the minisculest effort for someone else.
Sorry John. I couldn't be bothered to spend ten minutes of my time and 39 cents out of my pocket to send you a note saying Happy 40th Birthday. Instead, here's a link to a bitmap and a couple of banner-ads to get me off the hook for another year.The capper, though, happened yesterday. Shelly's mom called her up to ask for my shirt-size so she could go to JC Pennys and get me a gift. Shelly suggested that she instead just get me a JC Pennys gift-card so I could get my own shirt.
Mom-in-law's reply?
"Are you sure? Gift cards just seem kinda thoughtless."
Heh heh.
I hope it's not coming off like I'm upset about this. Honestly, I'm 40 years old now. I know Santa Claus isn't real and I really don't need any new toys. If you wanna completely blow me off for birthdays and such, I'm not gonna become one of those redemption-requiring "they forgot my birthday" kids that you see on Sitcom Plot #167.
I just find it humorous that someone who less than a week after sending very possibly the Least Thoughtful Birthday Acknowledgement In The Universe(tm) is suddenly concerned about her gifts appearing thoughtless.
I ain't offended. I'm just amused.
