Monday, April 26, 2010

Capstone Project: CardSurface

After four months and 15,031 lines of C# code my capstone project is finally complete!

CardSurface is a card game engine designed to work on a a multitouch screen and allow players to play a card game in a somewhat natural way. The engine itself is client-server based and allows multiple table clients to access the same server. Face down cards are viewable on mobile devices trough a web based interface.



Our project took an entire semester worth of work, but it ended up being a huge success! We implemented not only a GUI based table client using the Microsoft Surface SDK, we created a command line client that is also able to connect to the server and play a game.



Our engine is designed to implement any turn based card game. For our demonstration of the engine we implemented Blackjack, however Poker would be a better demonstration of our engine's features.

The biggest accomplishment of our engine is that the client itself has no knowledge about the game that it is playing. It requires the server to provide an updated game state after each move or action that is performed in the game. Additionally we support multiple clients and multiple games running on the same server!



There is a lot of room for improvement with this project and we probably only finished half of what we would have liked to have accomplished. However, it is definitely a project that I am proud of. The entire code base is available open source on card-surface on Google Code.

I also want to thank Aaron and Kyle one last time for being amazing partners on this capstone project. We definitely went above and beyond what was required and created something that will live on past this project.

No comments: