Archive for the ‘Uncategorized’ Category

Nephew in Town

Wednesday, August 5th, 2009

Tracy’s sister’s 12 year-old son spent the past week with us and it’s been a bit challenging trying to figure out what he’d enjoy. Swimming pool? Yup. Exploratorium? Mostly. Playing Rock Band on the PS2? Yup. Doing chores for us around the house like vacuuming our living room? Not so much. Still, we have so many chores that he could help out with, I figure he’s gonna like one of them … right?

Fixing appdailysales.py

Monday, August 3rd, 2009

As an iPhone app developer, I like to keep track of how my apps are doing on a daily basis. They’re not huge sellers or anything (usually like a couple dozen or so total sales per day) but I am curious. On Friday morning, I noticed that Apple slightly modified their iTunes site in such a way that appdailysales.py (the python script that I was using to grab my daily stats) stopped working.

I checked for updates but didn’t see any. So I spent some time trying to see if I could fix it myself. I don’t know python that well and I know almost nothing about web protocols or forms or what not but after some searching, I found a script that mostly worked from a couple web pages on that topic. So after several hours on Saturday of experimenting, modifying, and coding I finally got it to work again! I also threw in a modification to be able to type your password on the command line invisibly.

And then I found out that the original author had submitted an update to resolve the main issue just a few minutes after I first checked.

Ah well, it was still an educational experience and now I know python a bit better. Also, this supports my theory that if you ignore a problem long enough, it eventually goes away. In any case, if anyone’s interested in my version, it’s here.

Massively Multiplayer Mayhem

Friday, July 31st, 2009

I used to play a lot of World of Warcraft. I loved just about everything about the whole “Massively Multiplayer Online Roleplaying Game” (MMORPG) genre except for some of the “massively mutliplayer” part. I like people, I really do. But man, something about the anonymity of the internet occasionally brings out the ass in people.

This recently hit a lot closer to home with my iPhone app, Boom Dice. I just wanted to make a simple little game and I thought it would be neat to incorporate the Open Feint chat system. Unfortunately, all the chat rooms were taken up by 12 and 13 year olds (at least that’s how old they were telling each other they were) being really obnoxious. So I’m probably going to disable chat in the next version.

But it’s gotten me thinking… I’d really like to someday create a massively multiplayer game (or at least a moderately multiplayer game). Is it possible to do that without it devolving into a giant chat room with usernames like “xxx*PenisMightier*xxx” saying stuff like “ne hot girls wanna cyber? pm me!!!!!!!!”?

Test Script

Wednesday, July 29th, 2009

I found out about a neat plugin called Scrippet from my friend Stephan’s website. (If you’re interested in independent film making, check it out!) The plugin lets you create boxes formatted to look like screenplays. Unfortunately, it doesn’t work if you’re viewing this post from an RSS reader or something like that. But if you actually come to my website, this actually looks like a script:

INT. MACH is sitting at his desk, typing away on his laptop.

MACH

Wow, this is going to be awesome! I’m going to write my first script for the blog.

(beat)

I wonder what it will be about.

Moments pass.

MACH does not come up with anything awesome.

MACH

What would Michael Bay do?

The room EXPLODES.

THE END

Flashback to the 80s, Part II

Monday, July 27th, 2009

I just got back from my high school reunion! It was lots of fun hanging out with old friends and meeting new ones (either significant others of classmates or classmates that I didn’t get to know as well during high school). It’s funny how familiar people are, even after two decades. It got me to thinking how much or little I might have changed. I think I look pretty different from when I was in high school, although I’m pretty much the same size. And personality-wise, I think I’m more outgoing now than I was back then. One thing that hasn’t changed, though, is that I’m still pretty goofy…

Flashback to the 80s

Friday, July 24th, 2009

I’m headed to my 20th year high school reunion this weekend, which made me think of Depeche Mode. I was really into them in high school so I dug up this video on YouTube. Oddly enough, I think this is the first time I’ve ever seen this video. Growing up, we didn’t have cable and hence, no MTV. Oh, but I can hear you young whippersnappers asking, “What does MTV have to do with music videos?” Well see, back in my day, MTV used to play music videos. Man, I’m old…

applicationWillResignActive

Wednesday, July 22nd, 2009

When you turn off your iPhone while an app is running, that app gets sent an “applicationWillResignActive” message to tell it to stop running things like recurring timers or whatnot. I just recently noticed that a certain exploding dice game does not properly do this when I continued to hear a tick-tick-ticking even after I turned off the phone. So … umm, yeah, make sure your apps don’t do that.

Sunburn

Monday, July 20th, 2009

On Sunday, we met up with a bunch of friends and enjoyed a wonderful outdoor concert by the San Francisco Symphony in Dolores Park in San Francisco. The music was fantastic and the weather was great, but I did get a bit sunburned in the process. Note to self: it’s important to apply sunscreen everywhere that’s exposed, not just the places I can reach…

Boom Dice AI Faces

Friday, July 17th, 2009

I had one of my friends playtest the game with the new AI for Boom Dice. He liked the AI, but he got a little confused when it came time to picking the AI opponent. Originally, I was just going to have the player tap the corresponding dice type (ie., they’d tap the silver die if they wanted to play the silver opponent).

But it gets a little confusing between the part where you select an opponent and the part where you select your own dice set. So I decided to put some little character faces on the dice when you’re selecting an opponent to differentiate it. And then I thought, “Hey, there are six sides to each die — how about putting a different expression on each one?” Of course, that’s six times the work but hey, you guys are worth it.

I haven’t gotten very far with them, but this screenshot gives a rough idea of the direction I’m going in. Click on the thumbnail to see the full size image.

Thoughts on AI

Wednesday, July 15th, 2009

I’ve written a very rudimentary AI (artificial intelligence) for Boom Dice and it definitely makes the single player game more fun. It’s functional, although not particularly hard to beat. One of my readers, Andy Daniels of Enginuity Games, kindly sent me a much more well thought out Excel spreadsheet to analyze the optimal number time to reroll or not. But I wonder: is the best AI necessarily the best for a game?

I’ve also been thinking about this since the wife and I have started playing the original StarCraft again (we play co-op against a couple computer AI opponents). She usually plays Terran and if you’re familiar with the game, you know that the starting game for Terrans involves building bunkers and if the enemy rushes you, you just send out a bunch of SCVs to repair it. Fortunately, the computer AI focuses on the bunker although a smarter one would go for the SCVs first, rendering your bunkers much less useful. But then where would the fun in that be?

Anyways, the point of the StarCraft anecdote is that it got me thinking about what the goals should be for designing an AI for a game. Here’s what I came up with:

  • The AI should be challenging so that you have to think to beat it.
  • The AI should be consistently beatable if you are good.
  • Beating the AI should involve playing the game in a fun way.