About the FlipDecks project
Built in the Unity Game Development Framework using C#, FlipDecks is my first application officially released to the Google Play store. Summing up to over 3000+ lines of code, with Firebase, Iron Source, and Google Authentication integrations, it's the most complex personal project I've built, and the second most complex project I've built overall.
Firebase
Unity
C#
Features
In-app developer toolkit
Making a card game means releasing new cards and balancing older cards regularly. What better way to do this than having an interface dedicated to this? To solve this problem, I created a layout that can be used to make new cards and edit older cards. This minimizes the amount of additional work that has to be done in the Unity editor or VS Code. All changes that happen are immediately pushed to users without needing to update the app. This is done because every user has an event listener that only triggers when a developer pushes changes to the database, ensuring that updates to cards made by normal card usage such as "total copies of this card in existence" don't cause constant database pulls, and are only pulled with direct requests.
Messaging
To figure out the fundamentals of making a CRUD system in Firebase, I originally started with a messaging system. Messaging systems involve writing and reading data to and from a database. Every message needs a place to go, so this is when I added the account creation system as well, which allowed me to add update and delete functionality. Once these features were in the game, I was confident enough that I could build an app more complex than a basic messaging app, so I shifted focus to making FlipDecks, while leaving the original messaging system in tact.
Card Collection
In FlipDecks there are a variety of cards to collect. Every card is named after the trick performed on the card, and is animated so the style of the trick translates to the card. Every card belongs in one or more "collections", so completionists have something to work towards.
The Tech Stack
Firebase
After managing a database for 2 years, I knew that database management was a passion of mine that I wanted to pursue deeper. I wanted to expand my use of databases past what I have used in the past, so I looked to find an easy to integrate and work with database. Firebase ended up being a great option for my first personal database project.
Google Authentication
Nobody wants to lose their save data. Google Authentication was an obvious choice as a method to connect users to their FlipDecks accounts across multiple devices. Google is trusted by many, and their Google Auth sdk is safe, ensuring that the only information FlipDecks pulls is the information needed to make an account, allowing google to manage the rest of the information securely on their end.
IronSource
To generate revenue, FlipDecks uses IronSource Ad mediation. Ironsource is an industry standard in mobile game development so learning to integrate IronSource is an important step as a developer.
Unity
I chose to make the app in the Unity framework because I wanted the app to be cross-platform and run on both Android and IOS. Currently, the IOS build is not done, but since the game is built in Unity, it's an option that is left open to FlipDecks going forward.