Dropping Blocks

Dropping Blocks

Dropping Blocks is a falling blocks game that I developed as a warmup for Ludum Dare 37.  Drop the blocks and complete the lines to add to your score.

Dropping Blocks

I took a different approach when developing this game, as I did not create a board structure to hold the blocks.  Each of the blocks is just a Unity GameObject, with a Block script attached which contains its row, column, and center offset for handling rotations.

Every time a piece is dropped, it checks all of the other pieces to determine if any of the blocks are directly below any of the blocks in the actively dropping piece.  If so, then the status of all of the blocks in the currently dropping piece are set to “not dropping” and a new piece is generated.  The downside to this approach is that all of the blocks must be checked every time a block lands.  It may be improved by creating a hash structure using the rows as keys, so that only the blocks in the row below the piece will be checked.

A piece is generated by generating a random number from 0 to 6 and instantiating the block in the arrangement for that piece.  An array of Materials holds all of the colors of the pieces, and is assigned to the block based on the piece types.

The line check code loops through each line index, and then determines if there are blocks at every column in the line.  This is also inefficient, since all of the blocks have to be checked to determine if a block is in each column for the row.  Again, a hash table structure may make this more efficient for checking the row and eliminate some of the unnecessary looping.  When I play the game in the Unity editor, there is a noticeable delay when a block lands.  However, in the Windows build the delay is not apparent so there may be some optimizations made for the Windows build.



Swaptroid Overview

Swaptroid was a game that I created for the MiniLD #59 event.  The theme was Swapshop, where the objective was to create a game using the provided spritesheet.  Also, you could make your own sprite sheet and submit it to the website.  Then you could swap-in any of the uploaded sprite sheets into you game to give it an entirely new look.

Swaptroid Post Mortem

I had never created a game using Construct 2 before, so I thought that developing Swaptroid would be a good opportunity to learn that game development environment.  I decided to just make a game in the style of a classic 8-bit platformer.  I decided to use Tiled again for making all of the rooms in the level.  I discovered that it was possible to import TMX maps created in Tiled using the tilemap object.  Unforunately, the only way to change the image of a map was by base 64 encoding each of the spritesheet images.  I also had to create a new animation manually for each sprite sheet for each of the player and enemy characters.  After pre-loading all of the sprite sheet information, I was able to make the game change sprite sheets every five seconds.

The objective of Swaptroid is very simple.  Defeat the enemies and collect the four items.  The enemies just simply move back and forth horizontally.  If I was to develop the game further, I would like to enhance the AI of the enemies and add new enemy types.  I would also like to add various powerups for the player to collect to expand the player’s abilities.

I was disappointed that with the free version of Construct 2, it only allows 100 events to be created.  It really isn’t possible to create much of a game with that constraint.  The personal license is $130 and the business license (required if you make over $5,000 in sales on your game) is $430.  Construct 2 isn’t a bad tool, but it’s hard to pay for a license when you can create 2D games in Unity3D for free.  The only advantage Construct 2 has is the visual scripting tool, however I really prefer Stencyl’s visual scripting interface for creating 2D games.

Swaptroid Developer Commentary


Let’s Play Videos


Play Now

GameJolt Icon



Oiram Overview

Oiram features classic platforming action, backwards!  Record your gameplay, and then play it in reverse for a special surprise!  This game was created for MiniLD #57 and the theme was “Reversed”.

In this game, everything is backwards.  The ending screen is shown at the start of the game.  You walk backwards towards the beginning of the level.  The background music is played in reverse.  The sound effects are reversed.  Avoid or stomp on the enemies, or else you will have to start over at the end of the level.  If you make it all the way to the beginning of the level, then you will reach the title screen.

The player and enemy models were created in Sculptris and then exported into FBX format.  Using those meshes, the armatures were created in Blender along with the run and jump animations.  All of the level design was created with the Tiled editor tool.  I used a script in a package called UnityHelper that I had developed which can read in XML files that are stored as TextAssets in the Unity project.  The script takes prefabs as parameters, and it will instantiate those objects in the game world according to the layout defined in the XML file that is generated by Tiled.  The classic theme was recreated in GarageBand using the sheet music style editor.  Then the song was imported in to Audacity where I applied the reverse effect.  Audacity was also used to reverse the hopping sound effects as well.


Oiram Videos

Oiram Playthrough

Oiram Development Time-Lapse


Links and Downloads

Review by Jupiter Hadley