jump to navigation

Blackbird Blokus May 28, 2010

Posted by gwyoung in Desktop Apps, Games, Projects.
Tags: ,
add a comment

This past semester I took a class on software engineering and the final project was to create a piece of software of our own choosing. My groupmates and I chose to work on developing a desktop game based on the increasingly popular board game, Blokus.

In case you’ve never played, Blokus is a simple game played on a grid of squares in which players of different colors place pieces of different shapes and sizes and try to fill up as many squares of the board as possible (or be the first to play all of the pieces.) The catch is that a piece can only be played if it touches an already-placed piece at a corner and is not adjacent to any existing squares of the same color. It sounds a bit confusing but it’s really easy to catch on: you can try playing a web version of the game here.

Since the goal of the project (and software development in general) was to create something that doesn’t already exist, we spiced the game up a bit by turning the 2-dimensional board into a 3-dimensional cube. The game is played on the six faces of the cube and the exciting twist is that pieces can wrap around the cube in all directions, which allows for entirely new strategies. In addition to coding up the actual game mechanics and the graphical user interface for the cube and the pieces, we added a ton of features including computer players, networked games, chat functionality, loading and saving of games, move ratings, and a tutorial that teaches the basics of the game as well as some general strategy. Here’s a snapshot of the most recent version:

If you’re interested in playing, you can download a copy of the game that works for Windows and Mac computers by clicking here. Once you download the zip file, you can play the game by double-clicking the executable jar file called “Blackbird Blokus” within. Be forewarned: there are still a few bugs that we didn’t have the time or energy to work out in our struggle to create a working version before the deadline. These include problems with the tutorial, starting a new game from within a game, saving and loading games on Windows machines, computation speed of AI players and accuracy of move ratings, but the normal gameplay should be entirely functional and, if you know a friend’s IP address, you can also play games against each other remotely. If you’d rather not read the rules from within the game, you can control the cube by clicking and dragging with the right mouse button,  play pieces by left clicking on them and then on the cube, and flip or rotate pieces with the WASD keys. You should be able to figure out the rest, and there’s even a message dialog to help you understand why certain moves are valid and others aren’t.

Since we only had a few weeks to complete the project, this version is far from perfect, but we hope to improve on it in the future and maybe set up some sort of web application where people can play against each other online similar to the way you can play on the Blokus website mentioned above. Enjoy playing our “alpha version” and I’ll keep you updated on the project’s progress!