Ludum Dare #32 Thoughts

Ludum Dare #32 starts tonight and it was to be my most prepared Ludum Dare of all Ludum Dares. I had specific goals to be tracked over the previous few months, including learning how to make better music with garage band on my mac and upping my skills with open source illustration programs.

There was progress. I discovered InkScape, a free multi-platform vector graphics editor that completely replaces anything I might ever want to do with Adobe Illustrator.  Sculptris, a 3d digital sculpting tool, was also fun to play around with and could yield some interesting sprites or meshes if I produce a 3d game at some point.

There was incremental sideways progress on a few unexpected things too. I made a game for a mini Ludum Dare, which cemented my desire to get away from crafty.js and do something cool with phaser.js. This game was also my first introduction to and the agonizing decisions that come with designing a game around the best assets I could find. I also worked on Pantheon’s Ride the Lightning game, produced with crafty.js, which was satisfying to see so many people play on April 1st.

My musical progress fared less well. I composed a few loops which sounded good enough for jam purposes, but I need to be composing every day for at least a few months to get where I want to be with the audio.  For this upcoming jam I plan to stick to generated music and bleeps or incredibly simple garage band loops if I can pull off the composition without running out of time.

I think my targets were reasonable and my progress and time management could have been a bit better. For the next few months following this Ludum Dare I’d like to have more concrete and specific goals regarding audio and visual game development.  Recently, I’ve been getting into a system called OKR, short for Objectives and Key Results,  and I think using it to help plan goal posts and milestones following this Ludum Dare could help me move forward with game development.

I’ve also thought quite a lot about goals themselves and how I feel about goal management.  It feels good to achieve goals, and I love game jams because they time box my work and force me to produce something tangible I can look at in exchange for that time. Goals themselves are less concrete, even specific ones, and I think that in a way they can become an unrealized debt to oneself.  I’m hoping the OKR system improves how I feel about them, and how I feel about working towards a goal over time while not necessarily producing something concrete from it, or at least not right away.

My goals for this weekend will be pretty simple. I have a lot of other work I need to do on top of the jam, so I’m going to do the best I can with what I have going into it. On Friday I’m going to look over phaser.js tutorials and design something conceptually fun that I hopefully won’t trip up on during the implementation. On Saturday I’ll write the code and release it and on Sunday I’ll have to cut things short and move on to another project.

I do have a self-improvement plan for the judging phase. The Ludum Dare 48 hour compo requires projects to be open sourced during the submission process. In the weeks after the jam I’m going to look specifically for phaser.js games and try to understand the implementations. I also have a friend who uses Unity and I plan to acquire at least novice level skills with the framework in order to run projects and examine workflows.  I also plan to rate as many games as I can, and I might even try streaming some on Twitch depending on the bandwidth.

After the judging closes, it will be back to another iteration of what I could have done better along with looking ahead towards any game I might make for next month’s one game a month jam. I don’t think I’m going to incorporate games themselves into my OKR’s, since I’m using the OKR system to make otherwise intangible goals more concrete.  I’m looking forward to seeing how the goals themselves progress in the system and I’ll share the progress here.

Hands-free pong: My Mini LD #58 Game

Hands-free Wave Pong!A couple of weeks ago I created an entirely hands-free pong game demo in JavaScript for the Mini Ludum Dare #58.  The theme of this game development jam was “Pong” and I gave it a new twist.

You can check out the game here.  Note you’ll need a mac laptop running chrome to play the game demo and you’ll also need to give the browser access to your microphone when you visit the page.

I first got the idea for a hands-free game after seeing implementations by Daniel Rapp that used the doppler effect to track hand motion. His work seemed like the perfect basis for a game, and what’s remarkable about it is that it works so well. I’ve left the game on by accident and watched it continue to track hand motions from someone sitting across from me after I pulled back my chair.

I put this demo together in a few hours for the Mini Ludum Dare game jam and I’d like to expand on the concept by making a more involved game in the future. From swatting flies to leveling a space ship, there’s enough here with this mechanic to be quite entertaining.

PHPUnit install tip for Homebrew and Composer

PHPUnit is one of my favorite unit testing tools and I recently needed to install it directly into a project with composer. I’m on a macbook pro running mavericks and homebrew, so I typed:

composer require "phpunit/phpunit"

Surprisingly, I got:

Could not load package phpspec/prophecy in [UnexpectedValueException] Could not parse version constraint ^1.0.2: Invalid version string "^1.0.2"

I looked at my version of composer, installed last year probably, and it was at 1.0.0-alpha8. Aha! I thought, I will upgrade.

brew upgrade composer

This upgraded composer to 1.0.0-alpha9, but still did not resolve the error message.

Finally, the magic to get it working was:

composer self-update

The update set composer to 1.0-dev, which was enough for my composer require “phpunit/phpunit” installation command to work.

I’m noting this tip here on my blog in case anyone else finds themselves working with PHPUnit since the closure of its pear repository last year.  Composer is an awesome dependency management tool that’s a delight to use and I’m glad only a quick self-update was needed for PHPUnit.

Daylight Saving Time

Summer is my favorite season in San Francisco. This year I’m enjoying the approaching summer hours and following daylight in the mornings and evenings. The initial DST time adjustment is disconcerting, but it’s worth being able to appreciate the weather outside of the office.

Switching back in November is more challenging for me. I’m happy that the next change is quite a few months from now and near the end of a year that still feels new. I expect 2016 to be pretty awesome by the time it rolls around.

Thirty Flights of Loving

I keep returning to Thirty Flights of Loving, one of my all time favorite video games in the non-linear short story genre. If you haven’t played this yet it’s a quick $5 adventure that can be obtained here.  Spoilers ahead.

Thirty Flights of Loving drew me in after the first crash scene, with an injured Anita staring blankly into space while shooting empty rounds from a machine gun. The untold story behind that scene’s moment is shown and almost eclipsed by the literal shell shock of the character.

The scenes shift quite a bit after, but my favorite is the wedding party and the relaxed evening with friends. There’s a surreal and beautiful moment when the guests float into the sky that captures the feeling that everything’s going to be okay.

The most haunting part of the game for me is near the end. I’m riding on a motorcycle with Anita driving, and she turns to look at me with love in her eyes. Everything seems safe, the adventure is won, the past is present, and then the bike drifts into oncoming traffic.  I feel like this is a metaphor for my own life in a way; every time I’ve felt secure in my position or proud of something a shoe drops somewhere and I’m pulled away.

The developer commentary is a nice add to the game, though it doesn’t say that much about the depth of these particular moments. It also includes short movies on modeling several of the game’s objects in Blender, which is encouraging to me because I’m learning that software right now.


Playing This War of Mine

This War of MineI’ve finally had the chance to play the incredibly awesome This War of Mine by 11 Bit Studios. The game is a survival-sim crossover somewhere between Don’t Starve and Fallout that captures the feeling of wartime desperation and desolation.

This single-player game begins with a cast of characters that have to survive a war together in an abandoned half-destroyed house in a blockaded city. The outlook initially seems positive: at least one of the characters has an immediately usable skill and resources scattered around the house can be used to craft tools and repair the shelter. However, security quickly vanishes as the player is forced to send out characters to scavenge and replace dwindling supplies and make what feel like imbalanced trades for sustenance.

Actions matter too. In games like Fallout inhumane conduct is easier and almost encouraged in the resource gathering process. This War of Mine constantly reminds the player that there are always consequences. Early on, I accidentally killed a hospital worker after I was caught stealing and my character had a crisis of conscience so severe they never came out of it.

Character death is also sudden and final. This can shake things up after a span of successful scavenging runs — all it takes is being the wrong place and time to end things.

My favorite part of This War of Mine is the balance and pacing. My games seem to last about a month of in-game time, which is just long enough to feel like there’s a chance of rescue when the scenario gets grim.

The 2014 Retrospective Post

The year 2014 was an important and well-lived year in my life, for which I’m very grateful.

In 2014 I’m proud to have:

  • Became a Zend Certified Engineer for PHP 5.5 and Zend Framework 1.
  • Received word that I passed the MySQL 5.6 certification exam during the beta last December (2013).  Though Oracle claims the credentials are equivalent to non-beta exam takers, I’m proud to have earned mine because of the enormous block of questions featured only in the beta exams. It feels hard-core.
  • Succeeded at a dream job and found another. I’m getting closer to figuring out what I want to be when I grow up.
  • Released 3 games through the Ludum Dare game development competitions and also worked on the Shadowgate remake. That was cool.  I only had one small game out in 2013, so I feel like I’m gaining momentum in this area.
  • Joined the current decade in cell phone and laptop technology.
  • Visited Portland, twice!  Portland is neat. I could retire there someday.
  • Went on a proper (if somewhat local) traveling vacation to the empire mines.
  • Played and wrote more about games.

I’m also happy to have seen my family more and spent time with people who are good for me. That’s the most important thing.

Bringing in 2015

It’s that time again.  I started this blog in 2013, this is a young blog!  It feels very strange to write up another year’s end post already, so I’m going to do it backwards and look ahead to the new year.

In 2015 I plan to:

  • Complete one game a month in the One Game a Month Jam. (Is this a jam? I don’t really know. But it looks cool.)
  • Get my retirement finances in even more groovy shape this year. I’m definitely getting better at moneying like an adult.
  • Blog excitedly about the video games I own, most of which I haven’t played yet.
  • Pet more kittens.

In 2015 I also hope to:

  • Learn how to cook food worth eating. I’m *this* close.
  • Upscale my game development skills in the art and music areas. I’m committed to making 12 games next year, but I’d like them to be good ones, eventually.
  • Finish my lingering Magento enterprise certification. I still have the voucher; studying for the certification test got away from me this year.

Aside from these goals, I think I’m going to play 2015 by ear. I’m also going to write a retrospective of 2014 probably in the first week of January — it was an important year for me.

Ludum Dare 31: The Results

The results are in, and I’m happy to say Tiny’s Adventure in TV Land did much better than I expected!


I’m especially proud of the 3.94 I got in the Theme category!  One hope I had from this competition was to get a 3 or higher in any category because I’ve never scored above a 2.x before. I almost got a 4 in Theme! I’m also pleased that the 3.94 score placed me at #189 out of 1365 total 48-hour compo entries.

My rank in the Humor and Mood category placed me in the upper half of the competition entries. I did slightly worse in the Overall category than the last competition; my previous game SWARM received a 2.80 rating in Ludum Dare 30.

The most informative part of this competition for me was having 55 other participants play and comment on my game, which is a new record for me.  Thank you so much!

Playing Oblivion Again

After nearly a decade-long pause, I’m finally playing The Elder Scrolls IV: Oblivion again.  I’m actually going to beat it this time, too!

Back when I was obsessively playing Skyrim, I remember thinking that Oblivion was still better. I couldn’t remember exactly why it was, but I felt very strongly about that fact. Now that I’m back into Oblivion, it’s easy to see why.  Oblivion is beautiful. Skyrim is epic in a Game of Thrones tribute to the north kind of way, but it gets dreary and boring. Even the later generation graphics don’t quite save it by comparison. The placement of villages and overall map structures in Oblivion make sense, and don’t feel packed in like Skyrim’s do. Oblivion feels smaller, but that’s okay, because the cities, towns, caves and other areas resonate with the mood of the game.

I never finished Oblivion back when I first played it largely because my game got bugged inside the oblivion gates.  My incredibly powerful alchemist made potions to walk across the lava in the oblivion areas to reduce travel time.  I thought I was being clever by sidestepping one of the more boring areas of the game, but I ended up bugging the gates, and treasure chests weren’t populating along with other issues.

I have other games I intend to finish soon, so my current Oblivion playthrough is more of a casual speedrun.  I’m having fun, and this time around I’m not taking any shortcuts.