Cash River Casino
Online slot casino, influenced by Diamond Sky and Spin Vegas, with a modern spin in both art and coin accumulation mechanics.
Although a majority of the features pulled into Cash River came from previously built casinos, the one new feature that I implemented on the back end was money trees. The design goal of the money tree mechanic was to create a more engaging replacement for hourly bonuses, which allowed users to accumulate coins to continue playing within the casino.
One of the first things I wanted to implement was the database schema and data model within C#. With there being different types and trees and levels for each type, I needed to make three tables: money tree types, money trees, and user money trees. The first two acted as blueprints that have a fixed set of data and will only change if we are balancing the tree itself. The user money tree table is for associating a tree type to a user and recording the level it is if it can be upgraded, and how many coins are available to collect.
Next was creating the interfaces for user and client interactions. There are two types of interfaces I needed to think about, HTTP and WebSockets. The HTTP interface was for developers to be able to get the available money trees and do all the CRUD -- create, read, update, and delete -- actions to a money tree for a specific user. The WebSocket interface was more user-facing, but there were a few developer methods for testing. The main interfaces were for buying, planting, collecting coins, and upgrading. The tree would also accumulate when the user was offline, but there was a limit before the user had to collect before the tree could continue to progress once again.
The feature allowed me to get a better understanding of WebSockets with the constant communicating between client and server. Also, I worked closely with the engineer that was doing the front end for the money tree feature and it allows me to hone the interfaces to meet the needs of my fellow engineers.