This semester I am doing a directed study in in mobile development on the Android platform. The main objective is to go through the complete development cycle and release an app into the Android Market by the conclusion of the class. Five other students are in this study with me, though all of us have taken pretty diverse paths as far as our individual apps go. Even so, it’s nice having a few people to bounce ideas off of during the process.
After researching the Market, I settled on creating a casino application. While there are many apps for individual casino games, I found only one that offered the full casino experience in a single application. This app is also only offered as a paid application. My model for this app is to release a free (ad supported) version for handsets, and a paid version for tablets running Android 3.0 Honeycomb. Yes, Honeycomb has a minimal market share, but it will only grow, and it’s a perfect time to get in on the ground floor while competition is at a minimum in the space. The tablet version will offer enhanced UI’s for all of the games offered on the handset version, as well as additional games that would benefit from larger screen real estate such as Craps.
What is my minimum viable product? To be a casino application, I need to create a casino game. Once the first game is finished, I can potentially release the game, have others test it and collect feedback. By being modular, I can continue to add games over time and offer a more complete casino experience. What should I start with? Slots. Slots generate the most revenue for casinos, so naturally that means they are highly popular and people spend a large amount of time playing them. A slot machine seems easy enough. Three wheels, some pretty pictures and score keeping. How will I build it? Well, android offers a gallery view to horizontally scroll images. I can just turn it vertically and automate the spinning, right? Wrong. Gallery view cannot be made to scroll vertically. After searching StackOverflow and Google Code, I came across Android-wheel. This was perfect for my application! It drastically cut down on development time; I thought I would spend the next 2 days developing a custom vertical wheel. Next was to build in the win logic and betting. This was all pretty straight forward.
I then built a trophy system in order to keep record of major achievements in the game. Each game will have a couple of trophies that can be won for various outcomes. The slot machine has a couple of trophies that are awarded for hitting certain jackpots. There are also game-wide trophies that can be awarded for things such as reaching certain chip counts. The trophy room can be accessed through the main screen of the game to view all trophies.
The next step will be creating a wheel-of-fortune style bonus game for the slot machine. I can then use the code for the wheel to create a Roulette wheel and begin developing the Roulette game. Additionally, I will be working on a 5-reel poker slot machine, building off of the existing slot machine code.