Jump to content
Sign in to follow this  
  • entry
    1
  • comments
    0
  • views
    457

Open Source Conquering the Data Dragon to Launch and Scale a Mobile Game Worldwide

Jay_Lee

541 views

For our team, developing Creature Quest, the mobile strategy RPG, has been a thrilling adventure all its own. It’s been a journey where our heroic development team needed to slay the fearsome monsters of scaling, client-versus-server data handling, and other tricky impediments – all so that the peace of a seamless player experience may reign throughout the game’s world. Completing our quest required gathering artifacts of power, from a trustworthy game engine to a database capable of delivering us to our destiny.

Our team of experienced PC game development professionals set out as a new company looking to explore the rapidly growing realm of mobile gaming. At its head was Jon Van Caneghem, the creator of the Might and Magic and Heroes of Might and Magic game series. In looking to provide the same enchantment of those games via a mobile experience, our team began learning the lore of the smaller-screen landscape, investigating technology options and the standard stacks while strategizing over how to overcome certain technical obstacles.

We had experience using Node.js and knew that we wanted a document database. That led us to vetting open source NoSQL options, and we found MongoDB to be a strong fit for the task at hand. However, as a startup with a small team that didn’t happen to include a dedicated MongoDB expert, the work of implementing and managing this database soon proved daunting. Our limited resources also meant efficiency and a tight focus on actual game development were essential to getting Creature Quest off the ground, making the prospect of adding an expensive MongoDB expert to the internal team even less likely.

Still, the situation called for putting expert database management into place. Given that the potential user base for a mobile game includes nearly everyone who owns a smartphone, overnight success could mean profound database scalability stresses requiring true expertise to navigate. Ultimately, we decided on a hosted MongoDB strategy that could deliver this proficiency, and affordably achieve the required scalability and reliability while also keeping database management off of the internal engineering team’s plate. The MongoDB database provider mLab had worked well throughout a free trial and assessment period, and allowed us to begin on a small service plan and then easily scale as needed.

In searching for the best framework for building Creature Quest’s client-side app, we sought a solution that could deploy the app to the iOS, Android, and Android for Amazon platforms. For this we chose the Marmalade SDK and game engine, which enabled us to create C++ code and deploy native apps for each of the mobile platforms we targeted. As for the rest of our stack, the Lua programming language saw the most use by our team, with Marmalade offering the integrations required between Lua and the C++ core engine. The libcurl library was also selected to communicate with a backend NodeJS REST API server, while the Mongoose NodeJS library for MongoDB served as a middleware layer. Data flows through this system with the client app first sending requests to the NodeJS server, which in turn sends calls to store or retrieve data in the database. NodeJS supports greater scalability by operating asynchronously, as concurrent handling of requests vastly increases the scale of data the system can process.

Throughout this game development journey, one of the most challenging strategic issues we’ve faced is in striking the balance between handling data on the client or the server. To safeguard the integrity of game data, our early test versions of the game required the client to verify all data with the server. This succeeded in making sure that players couldn’t use hacked versions of the client to cheat – unfortunately it also reduced the game’s performance to a stuttering mess. In mobile gaming, a velvety smooth play experience is a requisite: players will quickly abandon apps with performance issues.

So we adapted, allowing for unverified data to accumulate on the client and be saved to the server only at key transitional moments within the gameplay. For crucial data transactions such as in-game purchases, we focused on getting the architecture around those sequences just right, while at the same time concentrating QA efforts to be certain that the app wouldn’t crash when critical player data could be lost.

As the adventure of developing Creature Quest continues, the journey is already riddled with milestones, including a successful worldwide launch and a loyal and growing audience. But the game’s promising outlook is really helped by the fact that we have trustworthy technology and an effective data strategy in place going forward.

 



0 Comments


Recommended Comments

There are no comments to display.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Advertisement
  • Advertisement
  • Blog Entries

  • Similar Content

    • By Gafami
      Dear community,
      I would like inform you that "War IOM" v2 have been re-work graphics and added more feature to serve user experience.
      Here is my banner screenshot: 

      You can access to the website and play it directly on your phone (Chrome mobile, Safari iPhone, iPad) or your Laptop
      Link to play: https://www.iomgame.com/wariom/
      ++++ Game description: 
      The rule to win the game is very simple: buy the soldiers, defeat the enemy army and then destroys the flag. Try to use fireball to wipe out the enemy. 
      The game had the shop to buy new soldier, upgrade soldier and choose the team out. 
      Game data be stored on both user's device and server so never lost data again.
       
      ++++ Here is the look and feel of War IOM icon on your Home-screen phone

       
      Rumor: You can get double gem receive if you beat the mini boss at level 3. Also win level 3 will give you a lot of Gem, use it to buy new solider and upgrade your army!
      My facebook page: https://www.facebook.com/Iomgame-245553622715070/
       
      /******** Change log update 08/26 ********/
      -- Add new game play for level 6.

      -- Improve camera.
      -- Improve game performance.
      /******** Change log update 08/31 ********/
      -- Improve sound load time. No painful for waiting sound loading any more!
      /******** Change log update 19/09 ********/
      -- Add level 7 with new game play.
      Regards,
      Gafami
    • By Ales Velek
      Hi, this is my first finished game ever.
      It took my 2 years because Im little bit lazy.
      Its simple game where you defend the castle agains random spawned enemies. Lots of flying physics objects included :). 
      What do you think?
      Video
      Google play link



    • By GamesByNama
      Hey there!

      2 Play is a collection of 8 GAMES for 2 players in a local multiplayer on one device (split-screen)!

      They are all from different genres like racing, maze, arcade, reaction, mind games, ... so there is a game for everyone among them!



      Get it here for free: https://play.google.com/store/apps/details?id=com.Gamesbynama.ToPlay

      The games are all easy to understand but can really challenge the two players competing against each other. 

      The games are great to kill boredom (e.g. while waiting) or just to have fun together!

      HAVE FUN!
    • By Effekseer
      Effekseer Project develops "Effekseer," which is visual software for creating open source games; on September 13,
      I released "Effekseer 1.4," which is the latest major version release. 
      Effekseer is a tool to create various visual effects used in games and others.
      With Effekseer, you can easily create various visual effects such as explosion, light emission, and particle simply by specifying different parameters.
      Effekseer's effect creation tool works on Windows and macOS.
      The created visual effects can be viewed on Windows, macOS, Linux, iOS, Android and other environments with DirectX, OpenGL and so on.
      In addition, there are plugins / libraries for game engines such as Unity and UnrealEngine4 to view visual effects.
      Effekseer 1.4 is an updated version of Effekseer 1.3 released in November 2017.
      This update contains the following changes:
      The renewal of UI. Support the tool for macOS. Addition of a function to read FBX with animation. Addition of parameters to protect collied effects and objects. Addition of parameters for easier control of the effects. In addtion I improve plugins/libraries for Unity, UnrealEngine4 and Cocos2d-x.
      Besides that, more than 40 new sample effects have been added and many bugs have been fixed.
      Effekseer 1.4 is available on the project website.
      The license for the software is the MIT license.
      Effekseer 
      http://effekseer.github.io/

      Github
      https://github.com/effekseer/Effekseer
      
      Sample Effects.
      Tool Demo
       

      View full story
    • By Effekseer
      Effekseer Project develops "Effekseer," which is visual software for creating open source games; on September 13,
      I released "Effekseer 1.4," which is the latest major version release. 
      Effekseer is a tool to create various visual effects used in games and others.
      With Effekseer, you can easily create various visual effects such as explosion, light emission, and particle simply by specifying different parameters.
      Effekseer's effect creation tool works on Windows and macOS.
      The created visual effects can be viewed on Windows, macOS, Linux, iOS, Android and other environments with DirectX, OpenGL and so on.
      In addition, there are plugins / libraries for game engines such as Unity and UnrealEngine4 to view visual effects.
      Effekseer 1.4 is an updated version of Effekseer 1.3 released in November 2017.
      This update contains the following changes:
      The renewal of UI. Support the tool for macOS. Addition of a function to read FBX with animation. Addition of parameters to protect collied effects and objects. Addition of parameters for easier control of the effects. In addtion I improve plugins/libraries for Unity, UnrealEngine4 and Cocos2d-x.
      Besides that, more than 40 new sample effects have been added and many bugs have been fixed.
      Effekseer 1.4 is available on the project website.
      The license for the software is the MIT license.
      Effekseer 
      http://effekseer.github.io/

      Github
      https://github.com/effekseer/Effekseer
      
      Sample Effects.
      Tool Demo
       
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!