This is a gallery of selected projects that demonstrate my experience in various areas of software development. To find out more about my work experience and to download code I've written, see my resume.
BadgeGames.com (visit website) - May 2010
BadgeGames is a flash game website that exclusively features games with achievements ("badges"). The achievement system connects the games to the website so that achievements earned in-game are recorded on your BadgeGames profile.
Other than the graphics and html/css work, everything you see on BadgeGames was done by me. This includes the js scripting, all of the PHP work, as well as a flash API that allows developers to add the BadgeGames achievements system to their games.
There is also an admin area which includes stats/graphs, as well as a cheat-detection system that uses gameplay statistics to check whether or not players have cheated. The admin area also includes a 'badge upload' feature which accepts a zip file containing raw badge images for a game and creates a set of stylized and properly-sized images for the badges using PHP GD.
Note: I no longer maintain BadgeGames, as I sold my share earlier this year to the businessman who financed it.
Tetris'd: The Game (play game) - November 2009
Noting its popularity, large fan base, and high rating, I immediately saw potential for a successful flash game. I contacted the artist, and he agreed to create a game with me based on the animation. Tetris'd: The Game is the final product of our collaboration.
There are several small gameplay glitches due to a rushed release date after securing a sponsor, but this did not hinder the game's success (note: the rushed release was a mutually agreed-upon decision). The game has been played millions of times since its 2009 release, and was received very well by fans of the Tetris'd series and casual players alike.
Various Flash Games - 2009-2010
Tetris'd is my most recent game, but I released others before it. Here is a list of the games I released before Tetris'd, in reverse chronological order.
My Flash Games
Ebay Inventory Management System - December 2009
This project was done for a client who bought items in bulk from a vendor and sold them individually on their eBay store. The problem was that the vendor's product inventory, which the client could download on the vendor's website in excel format, was dynamic and often-changing.
Every day the client would download the latest excel file, log into eBay, and manually update their inventory through the eBay interface. The vendor's inventory is thousands of items long, which meant it took hours to update the inventory manually.
The client wanted a fully automated solution that would accept the inventory in excel format, log into eBay, and do it all for them. Several additional features aside from updating the eBay inventory were requested, such as the ability to rename inventory items, select their eBay categories, and to keep a list of items that should not ever be added to the eBay inventory. The result was a full automation of the inventory upload system that saved the client from hiring an additional employee.
The solution had to be bug-free and dependable, since it costs money to upload new items on eBay, and it would be unnacceptable if items were uploaded with incorrect prices. A lot of time was spent on quality assurance and testing, using eBay's sandbox servers.
Side Projects - September-December 2010
This year, I've become interested in using computer science to solve or optimize for problems in game theory and artificial intelligence.
Among my recent projects are a program that plays 3d tic-tac-toe using a minimax tree with alpha-beta pruning, a bot that predicts the best move for a Yahzee-like game using a genetic algorithm, and a probability estimator for Risk that uses repeated simulations to get its results.
I often have questions related to probabilistic events, artificial intelligence, and game theory situations, and I find that computer science is a very helpful tool in the search for their answers.
The tic-tac-toe and Yahzee programs are currently not very user friendly, but I did create a GUI for the Risk program - you can download it here.
PC Monitoring for Computer Gaming - January 2010
No screenshot can be provided for this project since a screenshot would identify the client. This project was done for an organization that holds computer gaming competitions, where the participants compete from their homes.
The client explained that for the games they use for tournaments, it is often clear to participants when their opponents are cheating, but it is hard to prove so even with gameplay videos. For example you cannot conclude with video evidence alone that someone is maphacking, because it's possible they simply chose a strategy randomly and got lucky.
To fix this problem, the client requested a PC-monitoring application that gamers would be required to run while gaming. The solution periodically sends various pieces of system information, like screenshots and current process lists, to a server. If a player complains that their opponent is cheating, the serverside log files can be searched post-game for information that indicates hacking on the behalf of the accused player.
BadgeGames - May 2010
Tetris'd: The Game - Nov 2009
Various Flash Games - 2009-2010
Ebay Inventory Control - Dec 2009
Side Projects - Sep-Dec 2010
PC Monitoring - Jan 2010