I checked my Microsoft developer dashboard today to see if the XBox One Creators Program was still running. I noticed that Kitty’s Adventure has now passed 50,000 acquisitions between XBox One and Windows Store. It is by far the most popular game that I’ve released to this day.
Also this month, we had a great turnout for the online Knoxville Game Design Meeting. This month’s topic was Java Game Development.
I spent some time updating my two college work pages for Georgia Tech and the University of Tennessee. Links to those two pages are now displayed on the main menu on my site under Education. I also found more of my old websites, which I uploaded and linked on my wiki page under Historical Pages. I uploaded the source code for some projects that were missing, such as the Predator database projects.
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.
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.