Innovative Software Product To Transform Gambling GamDev Processes
About Our Client
An Austrian company that specializes in developing state-of-the-art mobile products for bold and daring business models. The Client can offer its partners a large number of IT services to support innovation projects, business model development and product tests.
Challenge
The Client was looking for a reliable partner to outsource project on building flexible and extensible system for writing gambling-oriented games for all mobile and desktop platforms, with their subsequent monetization and integration with billing and payment systems. The key requirement to the solution was that it had to simplify and speed up the game development process.
Solution
The fruitful cooperation within the joint team of the Client’s and ScienceSoft experts has resulted in a gambling platform which works in the following way:
- For each type of gambling, there are some pre-defined business logic rules which are assembled in a library and together with the payment data located on the server.
- On the basis of the existing logic, it is possible to easily create various games at a low cost by choosing certain parameters and tuning visual settings. In addition, the logic rules scalability enables shaping different functional modules and clients, changing game data and payment means simultaneously for all games as well as updating the game code when needed. Thus, a game is written once with Java on the server, but can be used on multiple mobile and desktop devices.
- End-users interact with the system through various clients (Android, iOS, HTML, etc.) using a communication protocol which appeals to the server. Mobile devices use a client app over a game management protocol that renders the game, and on the fly builds the game sequence that is dictated by the server. To play a game users have to download the app and install it to the client.
There are 5 gambling types that have already been developed. After a new gambling type is released, users can play individual games as well as take part in pair games or tournaments.
The solution was developed for feature phones (JavaME), Blackberry, Symbian, Android, iOS, Windows Phone 7/7.5, Browsers (HTML5/CSS/JavaScript). The mobile clients support audio, video, rich animation, custom fonts, styles, and skins.
Results
The designed system fully met the Client’s expectations of a game management platform. It already had five different games deployed on the cloud server and accessible via mobile clients as well as browser applications. Such an architecture solution with all the games located on the backend made the system capable of supporting high-load of user requests and also very scalable. The Client can create new games and publish them directly on the server, thus avoiding cross-platform development and drastically cutting time to market and the costs.
The collaboration between the Client and ScienceSoft team lasted for two years with the team size varying between 15 and 20 specialists. After the release, the platform continued to evolve by adding new device capabilities such as motion, sensor, NFC to stay on the edge of technology and remain competitive at the market
Technologies and Tools
The technologies used to develop the underlying component – the gaming server side – were the following: Java 6, J2EE, Netty, Spring and Hibernate for billing functionality, JDBC, PostgreSQL, Ant, JUnit, Maven, SVN.
For the client side the following technologies and tools were utilized on different platforms:
Android:
Android SDK 1.6+, BouncyCastle, Apache Ant, Maven, SVN, JUnit + Mockito, Eclipse 3.x.
iOS:
Xcode 4, CoreGraphics (provides drawing and animations), UIKit, CoreAudio + Objective-C language, Apache Velocity Engine technology + XPath language.
Windows phone:
Windows Phone 7.5 Mango (Windows Phone 7.1), C#, Visual Studio 2010, XNA Framework 4.0, Windows Phone Toolkit, Data encryption.
Blackberry:
JWTI (JSR 185), MIDP 2.0 (JSR-118), CLDC 1.0 (JSR-30), RIM API, Streaming, Touch on Canvas.
Feature phone:
MIDP2.0/CLCD1.1.
Desktop client:
HTML5/CSS/JavaScript, Web Sockets.