selene
selene tan

Author Archive

Prototype: Sideliner

by on Feb.14, 2010, under Blog, Lab

One thing I noticed about the Ludum Dare Flash entries was that most of them were done with flixel. For the competition, I decided not to use it because I didn’t want to learn a new library in the same 48 hours I had to make a game.

Anyway, I’ve finally gotten around to trying flixel out. I cast around a bit for a game idea that I thought would suit flixel’s strengths. It’s a game with 3 tracks where rocks come at you and you have to switch tracks to dodge them. The longer you stay on a track, the faster it gets. Also, as you get closer to the right side, the track speeds up and you gain a score bonus. Pick up ore for points, and red orbs for more time.

Get Adobe Flash player

Previous version (0.5)

Unfortunately, it’s not really fun. The graphics were also a pain. Rocks I can do; the drill took me at least twice as long.

Leave a Comment full post

SEEK*TOR

by on Jan.31, 2010, under Portfolio

SEEK*TOR is a puzzle game about revealing the single enemy turret on an obscured map. It was created for the 16th Ludum Dare competition, a 48-hour long solo game development challenge. The theme of the competition was “Explore.”

SEEK*TOR was ranked 5th overall of the 121 entries. Play it below:
(more…)

:, , , , , full post

Fixed bugs in SEEK*TOR

by on Dec.20, 2009, under Blog

I finally tracked down the bug in SEEK*TOR that sometimes makes the red enemy square (and some of the ally turrets) unclickable. While I was at it, I squashed a few more bugs I found along the way.


Play SEEK*TOR v 1.2

Changes in this version:

  1. Fixes bug where the upper-left turret is unclickable
  2. Fixes bug where sometimes the red enemy square is unclickable
  3. Fixes bug where on very high levels, the level never starts
  4. Turns off debug flag so turret layouts are randomized between 4 choices instead of just one
  5. Background music now loops

So what caused the unclickable-things bug, and how did I track it down?

With the help of debug output, I discovered that when a turret or enemy was unclickable, it was because something else on the screen “stole” the click event. In the unclickable upper-left turret bug, the click event was going to the flare display in the upper-left. In the unclickable enemy square bug, the click event was going to an object with a name like SpriteXXX. XXX was a number that was larger the later in the game the bug appeared.

The object name was my biggest clue. The number meant that it was a sprite that was created every level. The turrets are created anew every level, but they show up as TurretXXX. So I combed through the code until I found a sprite that was being created every level.

The sprite I found was the little explosion graphic that shows when you click on the enemy turret. In my competition-driven haste, I’d written code that created a new sprite every time the explosion went off, and didn’t bother to make it unclickable, or remove it from the stage afterward.  To fix the bug, I modified the code so that it created the explosion sprite only once and reused it every level, and I made sure the sprite was unclickable. That fixed the bug.

Leave a Comment :, full post

Post-Mortem: SEEK*TOR

by on Dec.15, 2009, under Blog

So this was my first Ludum Dare. I did the Global Game Jam back in February, so I had some idea of what to expect, although the GGJ was teams rather than solo. One thing I do regret is not interacting more with the community–IRC, Twitter, etc. I could have used more feedback than I got, instead of relying almost entirely on my husband’s comments.
Friday night I spent brainstorming ideas and thinking over mechanics. Saturday morning I started coding. By late afternoon / early evening, I had the major mechanics implemented, but it wasn’t fun. At that point the turrets were just yellow diamonds (and they were warp portals which your cyan circle teleported between), and the hint circle always disappeared before you could fire again.

Screenshot of older version of SEEK*TOR
Screenshot of older version of SEEK*TOR

The best thing that happened for the game occurred when I sent my Saturday prototype to a friend for feedback. He told me two very important things:

  1. He had the most fun figuring out where the hint circles intersected
  2. He wanted to know why you had to aim and fire to reveal the map instead of just placing light bulbs around the “platforms” (yellow diamonds)

So I made the hints persist but fade over time. That means you can see the hint circle intersections, but the screen doesn’t become overly-cluttered with old hint circles. It also means the aiming mechanic is important, since if you take too long, the previous hint will have faded away. I also changed the theming of the game so that the portals became turrets and you selected a turret to fire from, rather than teleporting between them.
Sunday was mostly a day of polish. The big feature changes were implementing multiple levels, scoring, and flare limits. I also added the start, game over, and between-level screens, made the graphics, (such as they are–hooray for GlowFilter!) composed a background track, and created the sound effects.
In the end, I was successful in terms of having a pretty-much finished game at the end. On the other hand, seeing some of the other entries, I kind of wish I’d done something a little more ambitious…
Things that worked out:

  1. Using abstract glow-y vector graphics instead of trying to draw. (I spent about 20 minutes attempting to draw a single turret before deciding my time was better spent elsewhere.)
  2. The game selects from 4 (hand-crafted) turret layouts and randomizes the enemy and player locations. That turned out to be enough randomization that I didn’t need to make a turret layout generator. In fact, I only just realized that I left the game in debug mode where it always chooses the same turret layout.

Things that didn’t work out:

  1. When I started, I implemented everything in one file just to see if the core mechanic would work. I made such a mess of my code that I spent hours late Saturday night moving code around so I could add levels. Spending hours working on code without actually adding new functionality–even regressing at times–was very hard on my morale.
  2. I spent too long trying to make my git history tidy. I’d keep forgetting to add a file to the commit or not commit for a while and wind up with a gigantic commit that involved 3 features and all the source files. Then I’d try to figure out how to break up or revise the commits. (And how to use vim, since that’s the default git editor…) Given that I never had to revert to a previous version, it was kind of silly of me.

Tools and Libraries Used:

  1. FlashDevelop
  2. TweenLite
  3. git
  4. ACID Music Studio
  5. Free VSTi soft synths: Crystal, LazySnake, and ErsDrums
  6. Audacity
  7. sfxr

(cross-posted from Ludum Dare)

Leave a Comment :, , , , full post

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.

  1. DREAMGIT_DOMAIN=user@yourdomain.com
  2. if [ $# -lt 1 ]; then
  3. PROJECT_DIR=${PWD##*/}
  4. else
  5. PROJECT_DIR=$1
  6. mkdir $PROJECT_DIR
  7. cd $PROJECT_DIR
  8. fi
  9. ssh $DREAMGIT_DOMAIN ‘mkdir -p ~/git/’$PROJECT_DIR‘.git && cd ~/git/’$PROJECT_DIR‘.git && git –bare init’
  10. git init
  11. git remote add origin ssh://$DREAMGIT_DOMAIN/~/git/$PROJECT_DIR.git
  12. touch .gitignore
  13. git add .
  14. git commit -m ‘Created new repo’
  15. git push origin master
  16. echo "
  17. [branch \"master\"]
  18. remote = origin
  19. merge = refs/heads/master" >>.git/config
  20. echo "Your new git repo ‘$PROJECT_DIR‘ is ready and initialized at
  21. $DREAMGIT_DOMAIN/~/git/$PROJECT_DIR.git"

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.

(more…)

Leave a Comment :, , , full post

eFusjon RAD Game

by on Jul.18, 2009, under Portfolio

eFusjon RAD is a game promoting the eFusjon energy drink, launched in July 2009.

In RAD you control the Efusjonaut, and must absorb eFusjon to neutralize free radicals while avoiding toxins. The Efusjonaut is controlled with the mouse, and can switch between an offensive toxin-eliminating mode and a passive free radical-neutralizing mode.

I came up with the gameplay concept and led the project. A graphic designer came up with the look and feel for the menus and an animator/artist created the main game art and sprites. I incorporated everything into Flash, set up the overarching code structure, and programmed the gameplay and scoring. Other developers worked on the leaderboard score submission, some of the menus, and the instructions. After some testing showed that people were confused about how to play, I came up with and implemented the idea of adding pop-up tutorial messages in-game explaining things.

Links:

  • eFusjon Gaming is the official game website, including details about the promotion
  • eFusjon RAD is the page where you can play the game. Registration is required because the game is part of a contest.
:, , , 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

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!