Friday, September 28, 2012

Boston Festival of Indie Games - September 22, 2012

Quite an exciting time this past weekend as MIT was host to the inaugural Boston Festival of Indie Games.  The festival was an effort put on by us Boston Indies to showcase the development talent available in this area.

I was asked to be part of the curatorial committee, which I was flattered and quite pleased to be a part of.  It wasn't much - just playing some of the submissions and deciding whether or not they should be included in the festival.  Unfortunately, I didn't get to see much of the festival proper, since there was a Game Jam to participate in!

The theme was "independence" (since it was an Independent Game festival, after all).  The group I worked with created a game we called Choice Blocks.  Effectively a Tetris-clone, but the idea was to include an "independence of choice", by allowing the players to augment their gameplay by choosing which blocks were included in the game.  After some amount of time, a selection window would appear, and players would select from some randomly-generated pieces using the points they've earned, much like the deck-building mechanic of Dominion.  These pieces, while awkward to place, would earn more points.

The game was written in C# using the XNA framework.  I worked on the piece generation bit, as well as the user input and state transitions.


The festival was only one day, which meant the game jam was only one day.  Even then, we were presenting at the end of the night, so we had at best 8 hours to create a game.  This was a blessing and a curse.  The biggest issue was that we didn't have time to implement the "choice" part of the game, so in the end we remade Tetris but a randomly-created piece will occasionally fall.  It turns out that even then, it throws an interesting wrinkle into how you play Tetris.

What Went Right: The time constraint helped because we really had to keep the scope down, and we didn't introduce a lot of risk with complicated, untested features.  I was actually a bit surprised that all of the groups made a mostly functioning game by the end of the jam, which I can't say about other jams I've participated in.

What Went Wrong: This isn't so much "wrong" as it is "somewhat disappointing".  Of course the big thing is that we didn't "finish" our game, at least enough in my opinion to distinguish it from regular  Tetris.  I think with the extra day of the usual game jam we could have finished our basic vision, added some sound, and cleaned up some stuff like the sticky controls and scoring system.  I suppose it was a good thing that we Googled "open source XNA Tetris" to get the ball rolling quickly, but it feels a little hollow that we didn't really create anything new.  I mean, creating a platformer is one thing, but Tetris by itself is a well-established game.

Another problem, one that we couldn't really do much about, was the logistics that we were in a random classroom at MIT, and therefore couldn't have food or drink.  We plowed through the day with only a short time set aside for a couple slices of pizza for lunch out in the hall.  It just didn't feel as fun and relaxed as other jams.

That said, I'd do it again (you know I'm a sucker for jams), and I'm looking forward to next year's FIG!

Thursday, June 7, 2012

Global Game Jam, January 27-29th 2012

This was the fourth annual Global Game Jam, and I've been lucky enough to attend every year - it's an event I look forward to.  Aside from the usual "achievements" (optional restrictions to help focus your game designs), this year's theme was pretty simple: an ouroboros.
This year's theme. This exact thing.

Luckily, an image such as this can be interpreted several ways, and the game pitches reflected that.  The team I ended up on took the theme a bit more literally, borrowing a concept from American folklore: the hoopsnake.

What Went Right

Our goals for this project were to build on what has been successful in previous years: keep the game simple, and keep the humor high.  In that regard, we did quite well.

Hoopsnake! is a side-scrolling platformer, utilizing only one button as the game mechanic.  The hoopsnake constantly grows larger; grow too large and he'll fall apart, Game Over.  Press the space bar for him to take a bite of himself to get smaller; go too far and he eats himself out of existence.  You want to be small to fit through narrow passages, and you want to be large to be able to catch yourself on ledges after being propelled up by spring-coil copperhead snakes.  Eat all the doughnuts on the level to continue.

The humor is best exemplified by the soundtrack.  When you hit a spring-snake and are propelled upward, the game goes into a bullet-time state, and a bit of The Ballad of the Hoopsnake plays (also available as a separate track).  The overall goofiness of it earned us a standing ovation during our presentation.

What Went Wrong

Our team of programmers (myself included) didn't feel particularly strongly about a game engine, so we tried to pick something that we could all share.  Ultimately we settled on Java, using MarteEngine.  We made it work, although it's not the best engine for the design we had.  Most notably, MarteEngine is a tile-based platformer engine, where something like Hoopsnake! may have better benefited from something smoother or vector-based, like Flash.  As such, we had to get around this weird problem of the hoopsnake effectively falling down stairs, instead of rolling down a hill.

I felt the art could have been crisper, as well.  MarteEngine uses sprites, and one of the issues I worked on was making the animation of the hoopsnake work.  There was a lot of futzing with sprite animations and scale percentages, and ultimately we couldn't get it to look the way we wanted - but it doesn't matter so much because the hoopsnake rotates so fast that you'd barely notice the animation anyway.

As is usually the case with these projects, it would have been nice to have a bit more time at the end to polish what we had and focus a bit more on level design.  I feel it looks a bit clunky and rushed, but then again, it was only built in a weekend!


What to Improve

I think the successes of Hoopsnake! outweigh its shortcomings.  I only wish I had the time and money to learn several game engines to be better prepared for working with other programmers, or to invest into a single game engine, take the lead on the project, and be able to teach others.  But, that's more of a personal problem, and I enjoy tackling this problem with more game jams.

Download the Hoopsnake! project at this page.

Cardboard Jam II, October 8-9th, 2011

Back at MIT for another Cardboard Jam (board and card games).  The theme chosen for this jam was "occupy" - this was in the middle of all of the "Occupy Wall Street" business going on at the time.

Our group's initial brainstorming included expanding on multiple definitions of the word occupy, such as occupation (jobs) and occupying space, which is the direction a lot of other groups went in.  We moved toward a more current-event angle, the genesis of what we uncreatively called "Occupy Boston Game Jams".

An early iteration of our game.
The idea behind the game is that the players are leaders of an "Occupy" protest movement, and you have to balance between recruiting new people to the cause, keeping everyone engaged and fed, maintaining a positive public image, and not getting dissolved due to apathy or police intervention.  It's a cooperative game and the players have roles with certain bonuses.

We hit a snag early on where the gameplay simply wasn't engaging, and we weren't quite sure how to fix it.  So, in a bizarre move for a game jam, we opted to abandon the project for a majority of the weekend.  I think the idea was to "sleep on it", and hopefully have a kind of epiphany like you do after a good night's sleep or when you're in the shower.  Luckily for us, that's what happened!

In the interim, we spent some time futzing around with some other prototype ideas - one being a game where the battle mechanic involved poker hands.

A playtest.
One of the big changes we made when we finally decided to give the game another try was switching the dice that determine success/failure from d20s to d12s.  Partly because you rarely see d12s used, but it helped with the overall statistics. 

Overall I think the project was a success, despite the actual development time spent on it was about half of what it should have been. 

Tuesday, June 5, 2012

A (little more than a) Year in Review

So, obviously, the website and blog have endured a bit of neglect.  And I'm updating it now, which indicates something major has happened which prompted me to make such updates.  So, here's an outline of some of the major stuff that happened since the last time I updated the blog:

  • The last post I made was in April of 2011.  I didn't mention it here, but I was let go from QUICKHIT that previous February.  So the jam occurred as I was looking for new work.
  • I found such new work at 38 Studios, in July of 2011.  Hooray!  Again, I worked in QA, for their Digital Presence team, on their websites for their game Kingdoms of Amalur: ReckoningTM  (released in February 2012) and the expanded lore site Amalur.com.
  • Another Cardboard Jam was held in October.  I'll be making a separate post about it.
  • The Global Game Jam was held in January of 2012.  Again, separate post.
  • 38 Studios was hit by some financial troubles which, if you follow game industry or New England news, you might have heard about.  I'm not going to go into detail about it (I'm not even sure if I could), but I felt this article on Gamasutra provided a mostly fair synopsis of the events.
So, as of this writing, I'm currently looking for a job again.  The website and my resume have been updated with current information.  I'm fairly optimistic I won't have to wait too long for my next job.  In the meantime, I guess I've got plenty to write about.