Projects
  • Name: Jackalope Online Casino Game
  • Type: Large
  • Start Date: 10/10/2009
  • End Date: 12/4/2009
  • Students:
    • Lance Jian Team Leader
    • Ivan Lee
    • Sangmin kim
    • Taizo Ellis Team Leader
    • Yuichiro Hata
    • Dugan Chen
    • Steve Froese Project Manager
    • Karl Romanowski Project Manager
    • Owen Hope
    • Nigel May Team Leader
    • Cody McCulloch Team Leader
    • Tony Martins
    • Shane Vander Meer
    • Kevin Smith
    • Mathieu Lauzon

Jackalope is an online casino game that includes Blackjack and Roulette. It is a multi-player network platform that keeps track of game and player statistics. From this project, we applied the knowledge gained from CST Technical Programming Program.

Our goal with Jackalope was to create a web service with an intricately wide scope. We wanted to do a little of everything: ASP.NET, WCF, WPF, Entity Framework, Game development, 3D Graphics and more. On top of all that, we wanted to build a 3-tier architecture that was flexible, scalable and portable to our future projects in industry. We had a great time creating Jackalope and We are sure this experience will resonate throughout all our careers.

Team CLient

Our challenge was to create a client application that could consume a Window Communication Foundation (WCF) service. The client communicates with the service via SOAP messages; however, the client never needs to worry about them! In .NET, 'proxy' classes are created that can call the services methods, as though a class was made directly in the project. It made communicating with the service a breeze!

The GUI is still lightweight, as all the game logic is performed on the server. Therefore, all the client had to do was display 'new' information and send messages to inform the server what the user was doing, such as placing a bet or joining a table. Easy right?

The team's technology of choice was Microsoft's next generation UI framework, the Windows Presentation Foundation (WPF). The learning curve on this technology is really steep, especially if the programmer wants to fully utilize WPF. This technology leaves WinForms behind, and is a whole new way to look at GUI development. The framework is designed to truly separate the UI completely from the code (using best practices of course), allowing a coder and designer to work almost independently. The GUI is constructed in XAML, which is the GUI markup in XML.

In the end, the client team had a ton of fun learning WPF from 3D animations to on the fly scaling and rotations of controls.

Team DB/Admin

Our team had the tasks of implementing the Data Access Layer, providing a generic interface to database operations, building an administration web site, as well as setting up the developing environment.

The database layer utilizes the Entity Framework technology and separates the logic layer from any specific database implementations. The administration web site uses Asp.Net, Master Page, Web Service and AJAX technologies to provide the best user interface experience. We also set up the source code control, automatic integration and bug/project tracking system.

Team Game Logic

The Game Logic team was responsible for the game play development for both the Blackjack, and Roulette games. Through a series of iterative development, we studied both games and developed a working backend that the Game Client could easily integrate with. Initial challenges arouse when we were determining the scope of the two games, as there are many features unique to different Casinos. After a series of discussions we decided to go with the standard Las Vegas rules, the most common implementation for both games. We programmed in C#, using a high level of abstraction we were able to divide both games into many objects such as a Player, Deck, Card, Hand, and many more. Our team faced additional challenges while working on Blackjack Game as it is far more user interactive than our Roulette implementation. To deal with the different actions that a Player may make was a complicated problem; however through Pair Programming, State Diagrams, and vigorous Unit Testing we established a good working backend that is accurate, robust, and reliable. The Game Logic is the backbone of the Casino application, and we are proud of our implementation.

Team WebService

Our team was responsible for developing the game server that allows multiple players to connect to the casino, and interact in game instances. The server connects a client with a game instance, and keeps track of a player’s current session, different instances of a game, and monitors for unresponsive clients. We chose to implement a polling-style server, where client applications must poll the server on specific intervals to maintain connectivity. When a client polls, the server updates the client’s session information, and returns any information to the client’s current activity. Part of the main challenge of developing this server is learning the relatively new Windows Communication Foundation, and coordinating the interaction between the client and game instances. With the help of WCF, we were able to make the server as flexible as possible, allowing future clients to be developed for everything from web browsers to game consoles.

For technical details please refer to the program Wiki https://techpro.bcit.ca/trac/2009/jackalope

To try this program, please visit http://techpro.bcit.ca:8000/home/ and download it from the download page.

Return