The Vault Open indie game development

Articles by fserb

the name of the game is grab

This is my Ludum Dare 32 entry. The theme was An Unconventional Weapon.

For a while, I've been trying to bring some League of Legends mechanics into smaller games, and Ludum Dare seemed like the ideal opportunity to do so. One of the funniest characters to play in LOL is Blitzcrank, so I knew the mechanics were solid: hooking things is fun. There's also the counter side of having to stand still while hooking which makes one vulnerable if the hook misses.

After the core mechanic was chosen, most of the work went on the enemies. Each enemy has a slightly different AI. Pink rotates its bullet around itself, so it tries to always stay the same distance from you; Yellow always tries to stay as far from you as possible, shooting from time to time; Purple throws a bullet in your direction, and moves there to grab it back; Blue just tries to dodge the hooks and counter-shoots you.

Another interesting part of the game is how every time you kill a ghost, you stay with the other three ghosts (and the BG changes), as if each set of 3 ghosts is kinda a different game. I think this could be explored further in other games.

Done using ugl. Full source code.

Tin Can Internet

This is my Ludum Dare 30 entry. The theme was Connected Worlds.

This is the first game I made since I moved from Zurich to Montreal. The whole games was made in a day or so. Most of the time I spent cleaning up the old infrastructure and making sure everything worked fine.

I've spent some time making sure the controllers were working fine and improving the rope mechanic. I think they turned out pretty well and it is super fun to circle around planets.

The hard part was finding a challenging mechanic after the basic mechanic was in place. I tried a bunch of strategies here (running to the top, infinite size world, etc). I settled with a time-based level mechanic. It isn't the deepest one, but it's pretty ok for a small game.

Done using ugl. Full source code.

Orbit

This game started as a follow up from Super Hot Asteroid and Hypermania. I was also looking for super simple control schemes.

After deciding on the control scheme (just switching direction, auto move and auto shooting), it was just a matter of finding an interesting balance. In the end I decided to prioritize trying to destroy as little as possible while surviving the turret attacks.

Code-wise, it's nice to notice the AI for the turret. It tries to be smart and predict your movement patterns. It became too good, which made me add a shield to the player. The shield, on other hand, made the game a bit longer, which allowed me to add a score very strongly biased towards not destroying things.

Visually, we kept the minimalistic color/black/white theme, which I think works great.

Done using ugl. Full source code.

You are a metro car

This is my Ludum Dare 29 entry. The theme was Beneath the Surface.

I didn't have too much time for this, so the whole game was fully done (from idea to submission) in close to 10 hours. I don't think this impacted the implementation a lot, but it meant I had to go forward with the first idea that we had. (Which was, in fact, my girlfriend's).

Interesting implementation point here was using a Voronoi diagram to decide which station connects to each other (all rails are, in fact, perpendicular to edges of the Voronoi cells of the station).

I've spend most of the time trying to get some user input that didn't suck. I experimented with the car automatically running, with break only mode, with different speeds, etc. Ultimately, being able to fully control forward/backwards was the most fulfilling choice.

I also had implemented some passenger mode, where you could see little passengers on the train and deliver them to each station, but it was just very distracting and not fun. Finally, I also had plans for different types of missions, but then I realized they are all variations of "go to a particular station", so I cut those out too.

Done using ugl. Full source code.

HTML5 Audio

Sfxr now supports HTML5 audio!

This means I was able to flip the default games from Flash to HTML5. I.e., unless people press on the "flash" link, all games are by default HTML5!

I plan to start developing directly on the HTML5 target from now on (instead of using Flash for debugging, as I've been doing). Let's see how that works out.

Gamepads are joysticks

I've added gamepad/joystick support to all Flash and HTML5 games. The Gamepad API is currently only supported on Chrome (and Firefox nightly, I heard). So to use it, you need to use Chrome.

Also, the buttons are only tested for my Xbox 360 controller (on Mac), so not sure what will happen with different controllers and platforms. Feedback would be nice.

Gather

In this game, you have to group boxes of different colors. A group disappears when each color in it has the same number of pieces. The game is over if you reach the bottom of the screen.

This game's idea came to me when I was looking for 8-bit pixel art and it has some inspiration from Aba's sum10.

It still has a minimalistic theme, but different from previous games. I really enjoy the top score bar on this one and I think it really adds a nice effect.

Done using ugl. Full source code.

Leaderboards

I've just coded a quick interface to Scoreoid and added support for the leaderboard on Hypermania and Super Hot Asteroid.

The scoreboard shows the top 20 users. It's mostly a quick hack that I may regret in the future and will have to embarassly remove. That said, it's there and it's fun.

Hypermania

This is my take on Atari's Megamania.

It has some of the enemy patterns found on the original game, but the latter levels are somewhat harder. Also, not having lifes makes the game much harder than the original version. I may revisit that. It has also a nice minimalistic theme.

One interesting part of coding this was trying to find a minimal data structure to support all different enemy patterns. In the end they can all be described by a spawn pattern (for horizontal and vertical waves), functions for x and y movement and frequency of shooting.

It also contains a Space Invaders generator that has nice results for such a simple idea. It's based on Invader.Fractal.

During the development, I ended up improving a lot some of ugl: better timers, game delay, input reset, sound caching and nicer particles.

Done in 20 hours, using ugl.

Full source code.

HTML5

After working a bit on openfl-html5 and making some horrible hacks that were later fixed by Joshua, I've managed to release HTML5 versions of all ugl games.

My original plan was to have only those and completely ditch the Flash releases, but openfl-html5 is not that stable yet. So I'm keeping both for now, defaulting to flash. As soon as I get sfxr working on HTML5, I'll flip the default.

Update: just fixed a bug that prevent the iframe from showing on Firefox. Also, added a bunch of optimizations that made the HMTL5 version much faster.