In recent years, networked and online gaming have become ubiquitous; in particular, card games like poker and hearts have flourished and found dedicated communities online. However, any specific card game will have countless variations that are popular within certain circles or regions, and if such a variation that someone wants to play does not exist online, there is currently no fast and easy way for someone to create it. We aimed to solve this problem by creating the application Cards with Friends, a generic card game engine. In the application, we provided users with an API that they could use to write arbitrary card games, with functions they could use that are necessary for online play (like passing cards, bidding, and playing and receiving cards). This way, users would be able to implement a non-existing card game from scratch and play it online, or take the implementation of an existing game and make a minor tweak to it.

I was one of the two main backend developers for the project, contributing heavily to general game structure design and writing the initial implementations of sample games like hearts and spades that were used to showcase the project. The application is no longer live online, since none of the contributors currently have the time to actively maintain the project. However, you can view implementation details in the final report here.