Blog - selene tan
selene tan


Finished my first Ludum Dare!

by on Dec.14, 2009, under Blog

Sweet, I managed to complete my first Ludum Dare! I was thinking of learning Push Button Engine for it, but after going through a couple of tutorials I decided I’d go for straight-up Actionscript instead. PBE has some neat features, but I need more time to get my head around its component-based programming model.
Anyway, SEEK*TOR is a game where you’re trying to locate the enemy by firing search flares from turrets. You have limited flares, and turrets have a limited range, so you need to carefully choose where you aim. It’s in Flash.

SEEK*TOR Voting page

Incidentally, I’m annoyed with Audacity because it added an initial silence to all the mp3 files I encoded with it. So all the sounds come in late. :( Also, I just realized that I forgot to have the background music loop…

(Cross-posted from Ludum Dare)

Leave a Comment :, , full post

Git on Dreamhost

by on Oct.14, 2009, under Blog

Though my website is hosted on Dreamhost, these days I mostly use them for version control hosting. So I was very happy when they set up git on their servers.

Casper Fabricius’ Keeping git repositories on Dreamhost using SSH has some instructions and a handy script for automating the process. Thing is, I tend to create the folders and files for a project before I set up the git repository. Casper’s script assumes you want to create the folder and repository at the same time.

So here’s my version of the script. If you call it without arguments, it assumes you want to make a repository for the current directory.
if [ $# -lt 1 ]; then
  mkdir $PROJECT_DIR
ssh $DREAMGIT_DOMAIN 'mkdir -p ~/git/'$PROJECT_DIR'.git && cd ~/git/'$PROJECT_DIR'.git && git --bare init'
git init
git remote add origin ssh://$DREAMGIT_DOMAIN/~/git/$PROJECT_DIR.git
touch .gitignore
git add .
git commit -m 'Created new repo'
git push origin master
echo "
[branch \"master\"]
remote = origin
merge = refs/heads/master" >>.git/config
echo "Your new git repo '$PROJECT_DIR' is ready and initialized at

Note: both Casper’s and my scripts still work if you call them with a directory that exists, e.g. dreamgit dir_that_exists. You’ll see mkdir spout an error, but the rest will execute.

2 Comments :, , full post

Scrambling Words for Maximum Fun

by on Sep.03, 2009, under Blog

A while back, I worked on an online Flash version of the game show Don’t Forget the Lyrics. It’s a game show where contestants get up and sing along to some music until the music stops dead and they have to fill in the rest of the line. They have three lifelines (a la Who Wants to be a Millionaire) they can use: show the first three words, turn the question into a multiple-choice question, or get their pre-appointed friend to answer for them. The first two are easy to code up, the third not so much. We didn’t have the budget to record people singing the missing lyrics, so it had to be text-based. We thought of randomly selecting one of the multiple choice answers, but realized that people would probably feel cheated at being given a wrong answer. And it would be too easy to just always give them the right answer.

At some point, I came up with the idea of showing the player a scrambled version of the correct answer. That would leave it up to the player’s skill to get the correct answer from it, so it wasn’t a guaranteed success but would still seem fair. Then I had to come up with an algorithm for scrambling words that wasn’t too easy, but wasn’t too hard for anyone to solve in the time limit.


Leave a Comment :, , , full post

Information Access in Avalon Code

by on May.27, 2009, under Blog

Recently I’ve been playing a DS RPG called Avalon Code. It’s an action RPG where the world is about to end, and you’re the Chosen One who’s been granted the Book of Prophecy to populate the new world. It’s your duty to use the Book to gather information about all the things that will be in the new world by “code scanning” them, which you do by hitting them with the Book of Prophecy. (Apparently the new world is going to have a lot of monsters.)

When you code scan something, it adds a page to the book that describes the object and shows its “codes”. Codes are blocks of different shapes and sizes that represent various qualities, such as Fire, Snake, or Justice. The codes are arranged on a grid (the “mental map”), and you can “rewrite” the codes by swapping them around.

The Sword page and the 4 hot-swap code slotsThe Sword page and the 4 hot-swap code slots.

You’ll find item bases scattered through the game, and you modify them by swapping codes. The above picture shows the Sword base with one Fire code, making it a “Fire Sword”. There are also recipes for specific items, e.g. the set of codes you’ll need to make the Sword into a “Champion Gladius”.

Making the recipes is a painstaking process. You have 4 slots of “holding” space to transfer codes between pages — all other codes have to be on a page. So if you decide you want that Champion Gladius, you have to: (more…)

Leave a Comment :, full post

Replayability in Video Games

by on Apr.14, 2009, under Blog

“Replayability” is one of the features that video game boxes trumpet, often with the word “endless” tacked on the front. It’s considered to be fundamentally opposed to “story” — games that brag about their stories, like those in the Final Fantasy series, aren’t replayable. Games like Tetris, are.

The most common way I’ve seen to make a game with story “replayable” is to limit the amount of content you can see in one play-through. Multiple endings, multiple character choices, branches in the story — these are all ways to restrict available content. Of course, games usually limit the impact of such choices, making the replay basically the same as the original. And some gamers don’t even bother with a second run, wasting the effort that went into producing the replay content.

I think the issue is that games with stories tend to have a lot of fluff — not exactly filler, but activities that are only interesting because of the crumbs of story interspersed. Sometimes even the crumbs are boring the second time through, so new content has to be added to entice people into replaying the game.

On the other hand, people re-watch movies and tv shows, and re-read books all the time. (I’ve certainly read my favorite books more than once.) Sometimes there’s new content, e.g. an extended edition of a movie, but usually not. There are two reasons this is more common:

  1. It takes less time to re-watch a movie than it does to re-play a game.
  2. You can skip to the good parts.

Number one I’ve seen addressed a few times in RPGs. The most common method I’ve seen is the “New Game+” mode, where you start the game over but keep your items, experience/levels, and/or abilities from your initial run-through. Since most of your time in an RPG is spent in combat, this speeds up the replay pretty well. In Chrono Cross there was even the ability to speed through cutscene text. (Although at that point I started to wonder why I bothered.) In adventure games it would be nice to have a “solve this puzzle” button available on a second play-through; I haven’t seen that implemented. I suppose walkthroughs fill that role.

Inability to skip to the good parts is what makes the time factor such a big deal — few people are willing to play through 4 hours of game just to get to a single 2-minute cutscene. To some extent you can get around this by making multiple saves; I know I had a lot of saves in Final Fantasy VII just before cool cutscenes or bosses. One issue with this method is that you don’t necessarily know before going in whether a section of the game will be worth seeing again later. Another issue is that it can take up a lot of space, although this is less of an issue now that modern consoles have more than 1 MB/15 slots of space for savegames.

Some games have skipping to the good parts built in. In the recent Half-Life games, once you’ve completed a section, you can choose to start playing from that point. You’re given a standard set of equipment/ammo, and the checkpoints are frequent enough that you can pick almost any part of the game you want to play again. Games in general seem to be getting better at this kind of replayability — Mirror’s Edge and Saint’s Row 2 also make it easy to re-play specific missions. Unfortunately, the games that really need it (i.e., RPGs) don’t seem to bother.

Replayability of the more-content kind is nice to have, but replayability of just-the-good-parts goes a long way towards encouraging me to revisit a game.

Leave a Comment full post

Ada Lovelace Day: Emily Short

by on Mar.25, 2009, under Blog

Today is Ada Lovelace Day, and I’d like to spotlight Emily Short, who’s best-known in the interactive fiction (IF) community. She was involved in the development of Inform 7, a sophisticated tool/system for creating IF, has written several works herself, and created a handy guide to IF for newbies or people who want to explore. She also has a column, Homer in Silicon, in GameSetWatch where she says some very insightful things about narrative in games.

Another thing I admire about Emily Short is that she’s clearly no stranger to the technical side of game development. There are a lot of people writing about games, but I like the kind of analysis you get from someone who programs.

Leave a Comment :, full post

Basis Double Pong

by on Jan.06, 2008, under Blog, Lab

When I first told my friend about Double Pong, he thought that it would be a game of Pong with two paddles perpendicular to each other, controlled with one input. When I was thinking about a small project to re-familiarize myself with ActionScript, I decided to make his version.

Get Adobe Flash player

Leave a Comment :, , full post

Robot Finds Kitten

by on Nov.29, 2007, under Blog, Lab

After finding out about the lively Nintendo DS homebrew scene, I was determined to make something of my own. But first, I wanted to make something small to familiarize myself with the relevant libraries.

As a fan of both robots and kittens, I of course thought of Robot Finds Kitten, the “zen simulation” that has been ported to a multitude of platforms. I found an existing DS version of RFK, but its controls were sluggish, spurring me to write my own.

I used devkitPro and the PAlib text and input libraries to make Robot Finds Kitten.


Leave a Comment :, , full post

Arenas of Challenge

by on Oct.28, 2006, under Blog

I’ve been following this thread on a guy’s first time running a D&D campaign. Somewhere along the way, (around page 2) a discussion about character creation (and especially power selection) as a “valid” arena of challenge got brought up.

What’s a “valid arena of challenge”? Well, an arena of challenge is a context where success or failure is socially important to the people involved. Chess can be an arena of challenge. D&D can be an arena of challenge. Within D&D, something like kill-count could be an arena of challenge, if the players choose to make it so.

What makes something a “valid” arena? That’s where the arguments start. Most of them involve the question of “fairness”, which is always tricky.

I think that one major requirement is that players know that it is an arena of challenge. I feel like this is the “most unfair” thing to do. If someone were applying for a job where height was secretly important (i.e., was an arena of challenge), but applicants weren’t told that it was, people would think it was pretty unfair. Melinglor brought up the situation where the GM says “Go make whatever character you want,” so the players do, and come up with characters that are useless for the adventure. When the GM said “Make whatever character you want,” the GM was essentially saying “Character creation is not an arena of challenge.”

The problem, of course, is that in D&D, character creation affects a player’s effectiveness in the rest of the game; it’s implicitly an arena of challenge. For character creation not to be an arena of challenge, the GM has to handle things so that all characters have the potential to be equally effective. One way to do this is to give the players the illusion of freedom and control, but not the reality. Another is to make sure that all characters have opportunities to take on challenges they are particularly suited for, and carefully balance challenges so that nobody is too useless.

Another requirement is that players are given enough information about the arena of challenge to form a strategy not based on pure chance or whimsy. Of course, what constitutes “enough information” varies from person to person. (It’s also possible that in an arena of challenge, pure chance is the optimal strategy. I think those arenas are uninteresting. “Read my Mind” is one of those uninteresting arenas.) I think that enough information should be given that players need to make as few assumptions as possible to formulate a strategy.

In my opinion, the universe of all possible D&D play is too wide for players to form strategies for. If I were told to “make the best character possible”, I would still be making certain assumptions, such as assuming that the game would be heavily combat-based, and that the game would generally be by the book. I might even assume that I was supposed to make the best character for solo dungeon-crawling. All these assmuptions could be wrong, and that would not technically violate the stated challenge. If I made my solo dungeon crawler and it turned out that the character was being rated with respect to its usefulness in a heavily political game with almost no combat and certainly no dungeons, I would cry foul.

I guess what I mean is “Players should know what the arena of challenge is.”

Finally, Callan brings up a good point about how character creation is more of a “deal-breaking” arena of challenge than most others. Basically, if character creation is an arena of challenge, there’s usually no way to opt out of it–it’s required to get to everything else. That sucks!

So my last “fairness rule” is that players should be able to choose not to participate without overly dire consequences. Of course, “overly dire consequences” ends up subjective, too. “Do this or else you don’t get to have fun” is pretty dire. Below that, I’m not sure where I draw the line.

This is, in some ways, more fundamental than the others. Players should be willing to to enter the arena without coercion, because coercion is inherently unfair.

Leave a Comment full post

Em no Meio

by on Oct.17, 2006, under Blog, Music

One of the assignments for my Visual Story class was to create a short film that told a story without dialogue. My role in the group was sound designer; I also composed the soundtrack for the film.

Download Em No Meio (130 MB .MP4)

Leave a Comment :, , full post

Looking for something?

Use the form below to search the site:

Still not finding what you're looking for? Drop a comment on a post or contact us so we can take care of it!