Game: Must’ve Been Rats!

This past weekend, I made a silly stealth game with my friends Jake and Paul for the Global Game Jam.

You can download it here (just unzip it and run the MustveBeenRats.html file): Must’ve Been Rats! Download

You can also check out all the other games our friends created for the jam here: NHTI Global Game Jam Games

For those who don’t know, Global Game Jam is a 48-hour game jam. Basically, for 48 hours straight (or as close as one can physically manage), people come up with a game idea and create it! The theme this time was a heartbeat.

screenshot

About

Our game is called Must’ve Been Rats! As I’ve mentioned, it is a very silly, 2D stealth game. The idea is, you walk around in this big dark room, with only a few small lights placed about.

There is an elevator somewhere in the level that will let you continue on, but it requires a beating heart to power it. You must find this beating heart in one of many briefcases scattered throughout the level. You can tell if a briefcase contains the heart by getting up close and listening for a heartbeat coming from it.

To throw a wrench into things, there are guards patrolling the area with flashlights. If one sees you, he will start to come after you. If he gets close enough, he will lunge out and tackle you, causing you to restart the level. However, if you can manage to sneak up on them, you can scare them to make them pass out for a short time, allowing you to walk right past them.

You must evade these guards while searching for the briefcase with the heart. The heart is in a different one each time, though!

Development

We decided to use Flash, along with the Flashpunk framework, Jake’s super-awesome FLAkit library, and Ogmo Editor. These are all great, free, and open-source tools!

For some reason, which we cannot determine, we had a very tough time delegating work to each other. As such, things took longer than they should have, and we were consequently unable to add all the features and polish we hoped for. Regardless, we still had a blast making it, and we are happy with the result!

It was supposed to be a serious game. This started to change when Jake was explaining ideas on a whiteboard, and attempted to draw the player character. He looked really silly, and I jokingly said “that’s totally how I’ll draw him for the game”. Well, I started the art shortly after, and, after a few attempts to make it look serious, I caved and just drew it like Jake’s drawing. And…. that is what you play as in the game.

player

Our friend Mike Elser was working in the same room as us. He’s a pretty hilarious guy, so we decided to stick a headset on him while he worked, and record his voice. All the voices you hear from the guards are what came of this. It is literally 60% of what makes the game good. The “boogidy boogidy boogidy” sound the player makes when he scares people is Jake’s voice.

Here is what I did in this project:

  • All art
  • Level design
  • Recording, researching, and editing of all but two sounds
  • Creation of “music”
  • Most audio programming
  • Most briefcase and elevator programming

You can view the source code here: Must’ve Been Rats Source Code

LESSON LEARNED: Do not go into a 48-hour game jam with a pre-existing idea.

P.S. Here’s the title screen, which has almost nothing to do with the game!

Must've Been Rats!

Game: Scattered Song

Scattered Song is my first game of 2013, and it’s my January game for One Game a Month. It’s also also the first game in a long while that I have made entirely by myself.

It is a 2D adventure puzzle game. To me, it has an old-school Pokemon and Zelda vibe.

You can play here:

I knew I was going to have a lot of free time this month, so I didn’t need to impose as many restrictions on myself as I usually need to.

Design

I managed to get most of the game’s functionality finished in time to have a couple weeks for level and general game design. This was the longest I’ve ever had to design things, other than initial brainstorming and quick, on-the-fly decisions.

I wanted to keep explicit tutorials to a minimum, and I was able to do so, having only the movement and shooting controls displayed outright. Anything else the player needs to learn is taught through level design, through puzzle-like drawings (similar to what Braid does), and (hopefully) through intuition.

I also wanted the player to be able to choose how they want to play, to as much of an extent as this simple game allows. Each level can be completed using arrows or without using arrows. For the most part, the game is much more difficult without arrows. Later in development, this gave me the idea of making an optional “Hard Mode”, where you have to play without arrows.

“Speedrun Mode” came about when I fixed a bug that I found interesting. It had to do with teleporters, and you were able to get to areas earlier than you should, skipping large parts of the level. It was rather silly, but I decided to keep some non-gamebreaking glitches such as this, and include them in a separate “speedrun mode”. I threw in a timer and time record system, and it was done. You can even do Speedrun Mode and Hard Mode combined, with a different set of record times.

Music & Audio

I wrote all of the music in the game. You can listen to or download the soundtrack here (pay what you want, no minimum): Scattered Song Soundtrack

The idea for collecting pieces of a song came pretty shortly after I created the orb and pedestal graphics. Each part had to be sparse and not make a whole lot of sense by itself, while also feeling complete when they were all together.

The music in each level came rather late in development. Things felt uncomfortably empty, so I decided to add something to fill the void. I wanted to keep them as rhythmic and non-melodic as possible, so that the home world had all the harmony, and truly felt like a relaxing home area.

I used Cakewalk Sonar X2 and PreSonus Studio One 2 as my DAWs. Most of the tracks are comprised of instruments from Native Instruments Kontakt, with Absynth, FM8, and Massive making up the rest.

Most sound effects are panned according to the player’s position on the X axis, relative to the center of the screen. I also set the volume of certain sounds according to the player’s distance from the source of the sound. I decided that these two techniques combined, with the camera angle taken into consideration, was the most natural-feeling audio solution.

Almost all of the sound effects were acquired from Freesound.org, a great resource. I tweaked them slightly to fit my needs.

Tech

I used FlashDevelopFlashpunk, and Ogmo Editor to make this game, all of which are free, open-source, and 100% awesome. If you have never used Ogmo, you absolutely need to check it out. My friend Jake made some sweet classes to connect Flashpunk and Ogmo. I used Inkscape and Photoshop for graphics.

If you’d like to view the source code, check out the project repository here: Scattered Song Repository

♦ ♦ ♦ ♦ ♦ ♦ ♦ ♦ ♦ ♦ ♦ ♦ ♦ ♦ ♦ ♦ ♦ ♦ ♦ ♦ ♦ ♦ ♦

This game was great fun to work on, and I am proud of it. I hope you enjoy playing it, and I would love to hear feedback. Drop me an email, a tweet, a comment, or whatever else.

Why make one game a month?

A few hours before 2013, my friend and indie game dev partner Jake Albano, convinced me to participate in One Game a Month.

One Game a Month (1GAM) is simply a challenge to game developers to successfully finish a game at least once every month in a year.

Since I began programming, there would be regretfully long amounts of time where I never saw a single line of code.  This was usually between semesters of school. Whenever I did finally get back to coding, I had to spend precious time re-learning concepts, which slowed my development process and my growth as a programmer.

♦ ♦ ♦ ♦ ♦ ♦ ♦ ♦ ♦ ♦ ♦ ♦ ♦ ♦ ♦ ♦ ♦ ♦ ♦ ♦ ♦ ♦ ♦

I’ve begun learning about indie game developers and their journey to “success”. Indie Game: The Movie and talks by Ed McMillen, Jonathan Blow, and Wolfire Games (3 of my most admired developers) have really taught me lessons in career and design as well as provided loads of inspiration. What is blindingly obvious is that, if you want to be an indie game developer, you need to WANT to be an indie game developer.

Though I fear what may or may not come with choosing to pursue independent game development as my living, and though I have personal things I need to wrestle with for this, I can’t imagine myself doing anything else. Too many things have aligned and gone right, too many great people have come my way, too much of it feels right, and I have too much fun with it to go anywhere else.

All of this and One Game a Month is where I am and what I am doing to get myself in gear and jumpstart my portfolio and my career. The future will be tough and will demand an inhuman amount of work, but with my friends and my incredibly supportive family, it also looks brilliantly bright.

Game: Vigilante

Vigilante is a side-scrolling action platformer. It was my team final project for my AG131 Intro to 2D and 3D Game Development course.

Click here to download the game: Vigilante.zip

Click here to view the source code: Vigilante Source Code

Click here to view and download the soundtrack: Vigilante Original Soundtrack

Screenshot from Vigilante

The original idea for this game was to give it a classic Metroid vibe, with lots of parkour moves, and a Gears of War-style cover system.

Well, the art assets turned into a time-sucking vortex. We had to make many cuts, and limit ourselves to something simple.

Regardless, it was an excellent experience, and many good things came of it. I learned how to use Mappy to generate levels, I refined my screen-scrolling camera skills, and I learned about SAT collision.

Here is what I worked on in this project:

    • Creation and implementation of music. (Vigilante Original Soundtrack)
    • Implementation of sound effects.
    • All audio programming.
    • AI (very simple)
    • Level loading from Mappy
    • HUD, menu, enemy, and parallax background art
    • Control scheme
    • Collision

I spent a lot of time researching and implementing SAT Collision. Though it is not incredibly stable, I managed to create classes and take copious notes on the subject that could be useful to anyone.

You can see them here: SAT Collision Code

Game: PGTBDCRPG (I never came up with a real name)

For one of our labs in a game development course I was taking, we were told to just have fun and make a simple game using what we had learned in the course up to that point. I decided to try my hand at random, procedural generation as well as a turn-based RPG-style stat and battle system.

Click here to download and install the game: Procedural Turn-Based Dungeon Crawler.zip
Click here to view the code on the project’s repository: Procedural Turn-Based Dungeon Crawler Source Code
Click here to view and download the soundtrack: Procedurally Generated Role Playing Game Original Soundtrack

Screenshot of PGT… whatever I call it.

Working on this game went rather smoothly. Not surprisingly, the most time-consuming parts of it were the random map generation, enemy AI, and stat balancing. It was all very experimental, and no “official” algorithms were used. …or if there were, it was by accident!

The calculations I concocted for leveling up, damage, etc. were pretty convoluted. I basically just experimented with math through what was partially trial and error until things seemed to balance out.

Some interesting aspects I implemented are:

    • Stats (STR, AGI, etc.) will increase more depening on what actions you do in battle most often. For example, if you do a lot of melee attacks, your ATK will increase quicker. So ATK = melee, DEF = blocks (defends), MAG = magic, DEX = successful dodges.
    • HP and MP will increase more upon level up depending on if ATK or DEF is higher.
    • Known spells and weapons are based on MAG and ATK level (respectively).
    • Each weapon has a base damage amount, a critical hit chance, and an accuracy rate. Each of these, as well as both the attacker and target’s stats, are used in the equations to calculate the result of an attack.
    • Each spell was meant to be unique to each other. Fireball simply deals damage, Cure simply heals, Convert swaps the caster’s HP with their MP, and Absorb steals life from the target and gives it to the caster.

The AI is rather large and branching. Certainly too much to fit on this page. It is aware of it’s HP, MP, known spells, known melee attacks, and opponent’s HP and MP. Depending on all of these stats, they may choose to be aggressive, figuring the odds are in their favor. They may see that they are in danger and choose to play defensively. There is always a chance that they will behave recklessly, despite the circumstances. This is mostly to keep them beatable.

The map generation is rather convoluted and hard-coded. Feel free to look at it in the source code if you dare (Map Generation Code), but I won’t bother to try and put it into words.

This project was incredibly fun to work on and I am quite pleased with what I was able to accomplish in a week.

Game: Thirty Years After Year Zero

Thirty Days After Year Zero (TDAYZ) was a game my friend Jake Albano and I created for a 48-hour game jam.

You can play it on Kongregate here: Thirty Days After Year Zero on Kongregate

For this jam, we had our friends and anyone else vote on a theme and genre. We took the highest and lowest voted choices, and combined them, much like Mojang’s Mojam.

You can see the poll on our website here: Thaumaturgist Games 48-Hour Game Jam Poll.

What we wound up creating (after doing some tie-breaking) was a Post-Apocalyptic Sci-fi Beat-em-up RPG.

Screenshot of T.D.A.Y.Z.

We both wrote post-mortem blog posts for this jam. Here is mine: Post Game Jam Wrap-Up

As can be seen in my blog post, this jam was a little rough for us. It was my first ever game jam, and Jake’s first jam with another person. We learned many things about working in a game jam though, and in the end it was still a very valuable experience.

For this jam, here is what I did:

   

Game: The Hero’s Journey


The Hero’s Journey is a very satirical, fantasy RPG/Adventure game. It was created in 48 hours for an NHTI game jam.

You can play it on Newgrounds here: The Hero’s Journey on Newgrounds

Screenshot of The Hero’s Journey

I worked on this game with two other people, Jake Albano and Paul Ouellette.

This game jam was hosted by our college, NHTI. The theme was procedural generation. To satisfy the theme, we have the following:

    • The character’s hair, torso, and arm colors are randomly generated.
    • The world is procedurally generated.
    • Loot drops will be either a sword, a shield, gold, or a diary.
    • Swords and shields combine a random prefix and suffix to generate it’s name.
    • Swords and shields will bring up your stats by a random amount (within a limit).
    • Gold drops gives you a random amount of gold (within a limit).
    • Diaries combine a random pre-written beginning section with a random pre-written ending section to form the entries.

Here is what my share of the work was:

    • Creation and implementation of sound effects and music. (The Hero’s Journey Original Soundtrack)
    • All audio programming.
    • Grayscale effect.
    • World tile art.
    • Character/loot art.
    • Meter and stats HUD art.
    • Co-writing of diaries.

This game was a blast to make, and I am quite pleased with some of the simple things in it. For example, if the player is standing on a sand/beach tile, an ambient ocean wave sound is heard.
All sound effects were created using as3sfxr.