Category Archives: Blog

Wrappers, Clients and Inconvenient Singletons…

With release 3.6.5, brainCloud is breaking away from the singletons that were previously a key aspect of our API.

We thought we’d take a moment to discuss the pros and cons of the design, and explain where and why we are going a different route.

Background

To start, lets review the purpose and design of the client library.

The goal of the client library is to simplify development of brainCloud-based applications. It does this by:

  • providing local implementation of brainCloud client calls (instead of forcing the client app to use Raw REST calls)
  • automating communications with the server (bundling of messages for efficiency, packet security, and more)
  • performing standard error handling

The library is actually organized into two major components:

  • the brainCloud Client Library – a pure, platform-independent wrapper of the brainCloud client-server protocol
  • the brainCloud Wrapper – simplifies aspects of the API (especially authentication) by incorporating more client-side functionality, like saving and restoring anonymousIds and profileIds.

Use of the client library is required by apps. Use of the wrapper is highly recommended, but optional. Note – originally we only had the client library. The wrapper was added later as an aid to app developers. 

 

Delving deeper into the design, you can see that the client object maintains a list of services and internal components that work together to provide the client functionality. The wrapper on the other hand is quite simple, and merely adds an additional simplification layer to the API.

Of significance here is the use of singletons. There are two singletons in play – one for the client, and one for the wrapper. Not only are the singletons used as the reference from the client to the wrapper and/or client library objects – but they are also used for communications between BrainCloudWrapper and BrainCloudClient.

In hindsight, although our intentions were good – this usage of singletons was a mistake.

The cons (as we now see them) are:

  • Complicates the client code (calling the static class methods to retrieve a reference to the wrapper and or client object is more painful than using a direct global of some sort)
  • Complicates the documented code examples
  • Restricts a client to have one-and-only-one connection to the brainCloud server [ this is a crippling restriction for some use cases – couch co-op anyone? ]

The fix

And so, we are fixing this.

The changes to the new client libraries are three-fold:

  • BrainCloudWrapper objects now have their own reference to their associated BrainCloudClient companions
  • BrainCloudWrapper objects also now provide direct methods for accessing the client services: you no longer have to call wrapper → client → service → operation, instead it is simply wrapper → service → operation

The result is that instead of your client code looking like this:

BrainCloudWrapper.Instance.GetBC().LeaderboardService.ListAllLeaderboards( ApiSuccess, ApiError);

It can look like this:

_bc.LeaderboardService.ListAllLeaderboards( ApiSuccess, ApiError);

The Changes

So – more flexibility and clearer code? What’s the catch?

The catch is that you need to make a few changes to your client to get this goodness. For new apps it’s no big deal at all – this could be a pain for existing apps though, so we are still including a legacy singleton mode in the client libraries – but that needs to be specifically enabled.

Here are the steps to getting your app working using the updated libraries

  1. Grab the latest brainCloud client library from the portal via the Team | Client Libs page.
  2. Create an instance of BrainCloudWrapper and save it to a global accessible throughout your client app. In our documentation examples we use _bc, but it can be anything
  3. Adjust any client code to use this new reference – try searching and replacing:
    1. “BrainCloudWrapper.Client.” → “_bc.”
    2. “BrainCloudClient.Instance.” → “_bc.”

And that’s about it.

Note – you can optionally specify a _wrapperName to use creating the wrapper. This name will be used as a key when storing data about the session, like the anonymousId and profileId.

You only need to specify the profile-name if you are implementing a client with multiple concurrent connections to the brainCloud server (to help keep the session data separate). In particular, if you are updating an existing app, do not specify a profile-name – this ensures that the user does not lose their saved profile references when they upgrade to the latest version of your app!

_bc = new BrainCloudWrapper(); // optionally pass in a _wrapperName
_bc.initialize(_appId, _secret, _appVersion);
_bc = go.AddComponent<BrainCloudWrapper>();
_bc.WrapperName = "_example"; // optionally set a wrapper-name
_bc.Init();

Legacy Singleton Mode

Want to move to the new libraries, but change as little code as possible? No worries, we have you covered. Here’s what you do:

  1. Grab the latest brainCloud client library from the portal via the Team | Client Libs page.
  2. Turn on legacy singleton mode via the BrainCloudClient.EnableSingletonMode() API call. Put the call in your code right before you initialize the library.
  3. Unity only (and only if you were using the Client static class accessor):
    Adjust any calls to BrainCloudWrapper.Client.aService().anOperation() to use BrainCloudWrapper.Instance.Client.aService().anOperation() instead (Note the additional Instance step).

The following code snippet shows how to enable singleton mode in various languages:

BrainCloudClient.EnableSingletonMode = true;  // Turn on legacy singleton mode
BrainCloudWrapper.getInstance().initialize(_appId, _secret, _appVersion);

.

BrainCloudClient.EnableSingletonMode = true;  // Turn on legacy singleton mode
BrainCloudWrapper.getInstance().Init();

Conclusion

Anyway, thats the summary of what we have changed, and why.

We hope you agree that the improvements to functionality and readability are worth it.

If you have any feedback or concerns, feel free to hit the chat link and let us know.

Cheers!

Introducing Global Tournaments

Introduction

brainCloud’s new Global Tournaments feature is an entirely new system designed to amplify player engagement in your games.

Global Tournaments are suitable for any game where competition centres around leaderboards. In fact, in their simplest version, Global Tournaments can be thought of simply as prize rules associated with a leaderboard.

But as you will see, there is actually a whole lot more to them.

 

Goals

When designing Global Tournaments, we had a specific set of goals in mind.

brainCloud’s Global Tournaments should:

  • Be easy to add to apps
  • Be flexible in terms of tournament schedule, phases, rules, payouts, etc.
  • Integrate with brainCloud’s existing reward systems
  • Automate key aspects of player engagement
  • Be manageable so that entry fees, prize amounts, etc. can change over time as you iterate
  • Act as building blocks for building more complex tournament types (i.e. tiered tournaments, etc.)
  • Work within the existing brainCloud pricing tiers

 

Features

Global Tournaments support the following key features:

  • Duration – support for daily, weekly, and arbitrary length tournaments (up to 14 days)
  • Phases – support for optional announcementenrollmentcompetitionbuffer and award phases
  • Flexible Prizes – Award participants any combination of virtual currencyxpplayer statsachievements and custom data
  • Entry fees – Free vs. Paid Tournaments
  • Push Notifications – automatically send configurable push notifications at key points during the tournament
  • Email Integration – send custom email notifications as well

 

Design

Concepts

This diagram describes the main entities involved in creating a Tournament:

  • Leaderboards are defined in the brainCloud system by entities we call Leaderboard Configs
  • To create a tournament, you attach a Tournament Template to a Leaderboard Config
  • The Tournament Template defines the rules of a tournament – entry fees, prize rules, notification templates, etc.
  • The Leaderboard Config defines how scoring works (highest score, cumulative score, etc), the rotation schedule, and also the pacing of the tournament phases.
  • Each rotation of the leaderboard is a Leaderboard Version. All scores are stored by version in Leaderboard Entry objects.

 

Special rules:

  • The same tournament template may be used by multiple leaderboards. This of course creates a separate tournament per leaderboard.
  • A leaderboard may also attach multiple tournament templates. This is useful for cases where you want to have both free and paid versions of a tournament, that act upon the same set of scores. (rationale: better liquidity, smaller payouts)

 

Tournament interactions / api

The following are the key tournament interactions to understand:

  • Get Tournament Status – returns the status of the specified tournament, and whether the player is currently enrolled in it. If the player is not enrolled, returns details of all the tournament configs associated with the leaderboard
  • Join Tournament – all tournaments must be joined before you can submit scores to them. Joining a tournament involves specifying the leaderboard that anchors the tournament, and the tCode of the tournament [template] that you are joining. An entry fee will automatically be deducted from the player’s currency balance if required.
  • Post Tournament Score – posts an score to the tournament leaderboard. Note that you must pass in the epoch time that the game round started in, to ensure that the score is eligible. Note that there are several versions of this operation (see the API for details).
  • View Current Reward – returns the player’s standing in the currently active tournament, and the reward they can expect to receive if they keep this rank.
  • View Reward – returns the players reward for a completed tournament, and whether it has already been claimed. Will return an error if the player is not enrolled in the tournament.
  • Check For Events – query the brainCloud events queue to see if any Tournament Completion events have arrived
  • Claim Tournament Reward – claims the rewards for a completed tournament, incrementing appropriate player balances (currencies, etc.).

For more information on these interactions, see the Tournament API.

 

Phases and States

Tournament States are used to organize the larger tournament lifecycle. They determine when tournaments are active, processing award calculations, and available for award clams.

Tournament Phases help to micro-manage when players can join tournaments, post scores, etc. throughout the Active tournament state.

The following diagram summarizes the relationship between brainCloud tournament states and phases:

Note that brainCloud doesn’t explicitly tell you the phase it is in – instead, it gives you information as to when registration starts and ends, when play starts and ends, etc.

 

Events and Notifications

A key goal of brainCloud’s Global Tournaments system is to automate the tournaments interactions with players. As such, the system:

  • Automatically rotates and cycles through tournament states and phases as per the schedule defined
  • Send events to players when the tournament has completed
  • Optionally sends push notifications and/or emails
    • When a new tournament opens for registration (enrollment) – sent to previous tournament participants
    • When a new tournament opens for play (competition) – sent to previous and currently registered participants
    • When a tournament’s competition phase is close to ending – sent to current participants
    • When another player beats their tournament score, bumping them down a rank – sent to current participants within 10 ranks of the player who posted the score
    • When a tournament completes and they’re awards are ready to be claimed – sent to current participants. The system also sends an Event to the player’s event queue.

Note that you shouldn’t blindly configure all notifications – especially the email-based notifications. Some recommendations:

  • Obviously, do not configure both Tournament Registration start and Tournament Play start if your tournament doesn’t have an exclusive registration period, or your players will get two back-to-back notifications, and be annoyed.
  • Be careful about configuring Email-based notifications – we’ve included the trigger points, but for most cases we would recommend that you mostly use them to announce that a tournament is complete and that the player should come collect their prize. It’s also a handy opportunity to include info on other game offers, bonuses items to increase scores, etc.
  • Be aware that brainCloud does not yet support automated unsubscribes (coming soon)

 

Special: Scoring notifications

There are two types of designers. Designers who think that scoring notifications are cool, and those that think they could get annoying very quickly. And they are both right.

To add the engagement of scoring notifications, hopefully without overwhelming the player, we’ve added the following rules:

  • We’ll only send a player one scoring notification per 24-hour period

The are two additional rules that affect this:

  • If you post a new score, we reset the notification clock. This means that engaged players will receive more than one notification in a 24 hour period, because they’re actually responding to them.
  • We won’t send the player a score update until at least 30 minutes after their last posted score (i.e. you don’t want to receive a push notification immediately after exiting the game)

 

Bonus Features: Auto Join and Auto Reward

Global Tournaments offer an incredible way to increase engagement and monetization with your players – but what if you are just looking for a quick way to automatically add rewards to your weekly leaderboards – without code changes?

Look no further – brainCloud has two new features that allow you to automate the key portions of the tournament processing:

  • Auto Join – Enables players to automatically join the tournament associated with a leaderboard, simply by posting a score to it (via the standard leaderboard PostScore method). Note that this only works for leaderboards that have one-and-only-one tournament associated with them – and that tournament must be free.
  • Auto Claim – Causes tournament rewards to be automatically claimed by players during login. Note that the [x] Enable Tournament Auto Claim check at login compatibility flag must also be enabled on the Design | Core App Info | Advanced page of the portal

Note – although we provide the Auto Join and Auto Claim features for convenience, in most cases we would definitely recommend that you implement the full tournament API. A key benefit to tournaments is engaging with your players – getting them excited about what they can win and adding that extra flourish as they claim their prizes. Auto Join and Auto Claim hide all that – minimizing the opportunity for extra player engagement.

 

Features Availability and Billing Notes

Global Tournaments are available across all brainCloud subscription plans.

The basic API billing rules are in effect – 1 API count per API call, 1 API count per Push Notification, 1 API count per Email Sent

In addition, the following counts are added to offset the overheads of automated tournaments:

  • Awards Calculation – At the end of the tournament, 1 Bulk API Count per participant is charged to cover the CPU load of processing results and sending events to the players
  • PostTournamentScoreWithResults() – adds 1 Bulk API count to cover the overhead of comparing the players previous and current tournament results, and determining whether to send notifications to displaced players. As compensation, however, returns the updated tournament results (essentially GetGlobalLeaderboardView()), hopefully saving the app an API call in return.
  • Auto Claim – if the Auto-Claim feature is enabled, 0.5 Bulk API Counts are added to each Authentication()

 

 

Parse and who can you trust?

Parse and who can you trust?

On Thursday, Facebook dropped a bomb. They announced that they were shutting down Parse, the Mobile Backend-as-a-Service (MBaaS) platform that they acquired in 2013.

Parse is one of brainCloud’s competitors, and arguably the biggest and most established player in the BaaS industry. Even so, brainCloud doesn’t run up against them that much because we have a richer, more specialized featureset that works better for our customer base.

In the wake of this event, it is inevitable that people are asking “What happened?” and “How can we trust any BaaS to build our business upon”. To that end, I thought I’d put together a few thoughts.

Why was Parse shut down?

The internet is a-buzz with comments that the business must have been failing.

I don’t buy that. The business case for the Backend-as-a-Service market is very strong, and Parse had a good product for the space they were aimed at. By all accounts, they had plenty of customers and an overall strong business. So why close it?

The answer is that Parse no longer aligned with the goals of it’s parent company, Facebook.

At the time that Parse was acquired, Facebook was floundering. They had recently IPO’d, but hadn’t figured out their mobile and advertising strategy. The stock was down, revenues were down – and they made a series of acquisitions hoping to strengthen and diversify their portfolio. Parse, well positioned as a platform for enabling mobile apps, seemed like a smart play to help them build up their mobile presence. And I’d say it was.

But now, almost three years later, things have changed. Facebook has totally turned it’s ship around. It is now a juggernaught in mobile, has advertising sales through the roof, and is more focused than ever on building out its core product. In managing everything it is doing, Facebook needs to continually ask itself: “Is <x> strategic to our overall success?”

And I think that’s where Parse failed the test. Parse’s business was probably $50-$100M per year. Healthy, for sure – heck, we’d take it! But that’s just a drop in the bucket to Facebook (less than 1% of revenue!), which will net close to $20B this year. And yet, I’ll bet that division had some of Facebook’s best engineers!

And that’s what it comes down to – Facebook said as much in their blog post. They are going to “focus their resources elsewhere.” I don’t think this is the normal generic excuse that a company makes when they announce bad news – in this case, I believe that it is very literally what they are doing.

 

Who can you trust?

In the wake of the Parse shut-down, a lot of people will be wondering how they can put their trust in any Backend-as-a-Service. After all, a ton of people probably chose Parse specifically because it was run by Facebook – a huge, incredibly successful organization, that was guaranteed to be around for years to come.

Here is my suggestion on the evaluation criteria to consider:

parse_and_who_can_you_trust_

  1. Feature Set – always start with the features – there is no point in going for a solution that doesn’t meet your needs.
  2. Organization – consider the organization that develops it. Are they a long-standing, established business, that has earned a solid reputation in the marketplace?
  3. Funding – how is the company/product funded? Beware of purely VC-funded companies. A lot of BaaS vendors are early stage VC-funded – this makes for splashy million dollar announcements and marketing materials, but the funding comes with strings attached, in terms of “You must succeed by <x> or you will be shut down.”
  4. Business Model – does the business model make sense? Is it easy to understand how the business would make money for the organization? If not, be wary – a “too good to be true”business model is often a sign of a last-ditch “hail mary” throw for success.
  5. Alignment – Does the product align with the strategic goals of the parent organization. No matter how good the product, Facebook has just proven that you are in danger if a clear alignment isn’t there.

Given this critera, how does brainCloud rate?

  1. Feature Set – we pride ourselves on our features, and the rapid pace at which they are evolving. With brainCloud (especially in comparison to a lower-level offering like Parse), you spend less time building features and more time using them. And we match each new feature with a visual tool for configuring and managing it.brainCloud goes over-and-above the classic BaaS capabilities with support for Gamification (xp, milestones, quests, achievements, leaderboards, etc.), Segmented Push Notifications, Scheduled Cloud Code, Auto Promotions, Mobile Multiplayer, Shared User Accounts, External Authentication, Server-to-Server APIs, a dynamic DataStream Architecture, and much much more.
  2. Organization – brainCloud is built by bitHeads, a 20-year old technology software developer based in Ottawa, Canada, in conjunction with playBrains, our game development subsidiary. bitHeads has earned a reputation as one of the top software development companies in Canada, and through the years has built award-winning products for Microsoft, Sony, Blackberry, Canada Post, Samsung, E*Trade, Nortel, Mitel, and hundreds of others.
  3. Funding – brainCloud is privately funded by bitHeads, its parent organization, with some assistance from various Canadian government programs. We are privately controlled, and thus no ultimatums.We started building brainCloud over four years ago, well before the term BaaS or MBaaS was a thing. We saw the value and opportunity in this market back then, and are determined to build the best product for it.
  4. Business Model – we don’t give brainCloud away, but we do work to keep the cost of the service as low as possible. brainCloud is free for development (maximum 100 dau), but you pay starting at $30 / month once you go live. This minimal charge ensures that every brainCloud customer is pulling their weight and paying their share of the costs for the service. This allows us to offer lower prices than our competitors, while at the same time ensuring that bitHeads can operate brainCloud indefinitely.bc_parse_modelContrast that with the models of some of our competitors, and ask yourselves how they can possibly be successful in the mid-to-long term? They have to charge their paid users more, and are basically betting that they will have enough high-volume customers to pay for the inevitably huge number of low-volume customers (that they subsidize for free). And some models are even crazier! These are the sorts of bets that you make when you are desperate for your next round of VC funding, or looking to be bought.
  5. Alignment – brainCloud arose because bitHeads was constantly building custom backend solutions for our customers. And we were building them over-and-over again, with largely the same features. For online casinos. Retail networks. Telecommunications. Mobile/Social games. For twenty years.Four years ago, we finally said, wait – what if we did this once, and productized it, so that we (nor anyone else) has to keep re-inventing the wheel? And thus brainCloud was born. It started as a small, separate team working within the company to build the core server system. We released the first apps on the platform almost three years ago – before we had a design portal with which to design and manage things (configuration was CSV and JSON back then).Today the team consists of twenty-ish people within the larger bitHeads/playBrains organization, together with the support teams to make that work. All services teams at bitHeads are aligned to delivering products and services around brainCloud. The custom apps and games that we build today are built upon brainCloud – it’s our competitive advantage. And we continue to productize and evolve the platform based on the feedback of our great community of developers.There’s no fear of alignment here – bitHeads is brainCloud.

 

And there you have it – my take on Parse, and how bitHeads and brainCloud rate as a Backend-as-a-Server that you can trust. To our brainCloud customers today, thanks a bunch – rest assured, we are in this for the long haul.

And if this is your first exposure to brainCloud, please sign up and take a look for free. If you take a good look at our features and tools, we think you’ll realize the power of the system we’ve developed, and the passion of the folks building it.

Oh – and if you are looking to move from Parse, please check out this survey. Filling it out will help us to prioritize the tools and support processes that we’re developing to assist Parse migration.

Happy coding folks!

Paul.

(PS – And for all you Parse-based folks looking to move, feel free to reach out. Our services teams would be happy to help you move over to our platform!)

Launch Tip #1: Version Enforcement

Launch Tip #1: Version Enforcement

This post is the first of our new series on best practices to observe before launching your app.

It’s an exciting feeling… Features are complete. Beta feedback incorporated. Final bits of polish applied. You are ready to launch.

Or are you? Are you sure that you have… Tested for every usage scenario? Every race condition? On each of thousands of device variations? Under unpredictable network conditions? Accounted for changing performance characteristics as your user base ramps?

Luckily you are using brainCloud – so you know your servers will handle the loads. But what about your client app? Your dev team is prepared to react and fix issues quickly – but how will you ensure that important updates make it to your users quickly?

Sure – the app stores support automatic software updates – but even so, it can take 3 weeks before the majority of your user base is using the new version of your app. That’s far too long if your app is crashing, corrupting data, and/or generally frustrating your users. In those 3 weeks your app’s ratings will take a huge hit.

This is why it is essential to implement Version Enforcement before you go live.

launch_tip__1__version_enforcement

The good news is that brainCloud makes it easy.

 


 

Version Enforcement

brainCloud has built-in support for enforcing minimum client versions.  During authentication, in addition to transmitting information about the user that is logging in, the brainCloud client library sends two key pieces of information:
  • platform – the type of device that the user is logging in from
  • gameVersion – the version of the client game or app
These parameters aren’t just informational – brainCloud’s Version Enforcement feature allows you to ensure that only users of a specified version and above can log into your application. This forces out-of-date users to upgrade their clients before proceeding.
Version Enforcement is configured via the brainCloud Portal, and works in collaboration with integration code that you add to your app.

bc_version_app

 


Above – the Design | Core App Info | Platforms screen

Note –  you can specify this minimum version on a per-platform basis, allowing you to accommodate staggered release schedules, different app approval processes, etc.

 


 

Integrating Version Enforcement

Integrating Version Enforcement into your app is very simple.

Follow these steps:

  1. Set the app version in your client app. In most of the brainCloud client libraries, this is done via the BrainCloudClient.Initialize() function. In Unity, you can use the brainCloud Settings dialog.bc_version_unityIn either case, the version should be a string of format of “X.X” or “X.X.X” – for example, “1.0.0”.
  2. Go to Design | Core App Info | Platforms, and temporarily set the minimum app version to something higher than your current app version.
  3. Enhance the Authentication error handling of your app to catch the out-of-date error response (see the Version Enhancement section of the Authentication API page for details) – and display an appropriate message to the user. Ideally you should redirect the user to your apps store page so that he/she can trigger the update immediately. The brainCloud portal allows you to datafill the upgrade URL along with the minimum version.

  4. Test to ensure that it works!

That’s it. Once this is in place, you will rest easier knowing that if (when) your users find problems in the field, that you’ll be able to push fixes to them in no time!

brainCloud at GDC!

brainCloud at GDC!

It’s our favorite time of the year. No, not because of the refreshing -40 degree temperatures of Canada’s Capital – though that’s swell – but rather because we can escape the cold for a week of fun in San Francisco!

So, if you’re going to be at the Game Developers Conference in San Francisco March 2nd – 6th, be sure to drop by and say “Hello”.  We’d love to meet, discuss your game, get feedback on the platform — maybe even share a drink or two!

We are there for the whole week – but the easiest places to find us will be:

  • Wednesday – Friday – we’ll be at Booth 2444 on the GDC Expo Floor.  We will be easy to find – we are way, way back in the far right-hand corner! Best booth in the house – ulp! 🙂
  • Thursday 4pm-5pm – we’ll be in Room 302, South Hall, giving a session on Juicing F2P Revenue Using Cloud Tech – be sure to check it out!

We’re also out and about the rest of the week. Some of the events we’re attending include the Vesuvio Party on Monday Night and the Ontario Social on Thursday Night.  Drop us a note at “sales at getbraincloud.com” to meet up.

Hope to see you there!

 

5 Steps to Ignite your Free-to-Play Revenue (without Advertising)

5 Steps to Ignite your Free-to-Play Revenue (without Advertising)

Only one in ten mobile games succeed.

The business reality is that since 2011, Free-to-Play (F2P) games have been making more money than their Premium counterparts.

Although still essential – today’s games must be more than just fun – they must effectively employ F2P monetization to succeed.

bc-5steps-succedssAn effective Backend-as-a-Service (BaaS) is an essential lubricant for the free-to-play economy. Here are 5 key ways a great Backend can ignite your free-to-play revenue:

  1. Go Cross-Platform – adding platforms adds audience, which feeds players into your F2P engine. An effective Back-end makes it easier to offer the same features across diverse platforms.
  2. Enable Cross-play – allowing your players to continue their play across devices encourages play when and where convenient, increasing engagement and forming habits
  3. Add social competition – social competition is an excellent way to give players additional objectives in your game, increasing engagement (and virality)
  4. Reduce cheating + theft – utilize server-side receipt validation to remove in-app piracy and increase your revenues.
  5. Grow/Retain your VIPs –  utilize an automated promotions engine to help push players through your funnel, and retain the VIPs that you have (increasing $ spend)

* Player segment definitions (below) courtesy of Emily Greer’s presentation at Casual Connect ’12.

bc-5steps-segments

For more details, check out the slideshare presentation below – and while you’re at it, be sure to check out brainCloud – it’s free during development, and starts at just $25 / month once you go live!

Sign Up For Free

Note that this content is from a presentation that I originally gave at the Montreal International Game Summit in Nov 2014 – used with my permission. 🙂

brainCloud BaaS is for Apps too

brainCloud BaaS is for Apps too

It seems like every other day that we’re asked – “Is brainCloud only for games? Can I use it for other types of apps?”

Make no mistake about it – the brainCloud BaaS is primarily designed for games.

But this doesn’t mean that it can’t be used for apps (including IoT) as well. In fact, allowing for any type of application is key to our overall business philosophy – use as much or as little of the API as you’d like, and only pay for what you use.

We’ve worked hard to ensure that brainCloud is the best BaaS / MBaaS solution available for the development of Freemium and/or Gamification enabled apps.

Key BaaS for Apps Technical Features

The key app-related features include:

  • Comprehensive Cloud data – user / global scoping, stats / entities / storage
  • Flexible Identity Management – identify users via E-mail, Facebook, Google Id, etc.
  • Custom Cloud Code – need brainCloud to do something special server-side – code it! (using JavaScript)
  • Cross-platform Push Notifications – reach out to your user base in real time across device platforms
  • Server-side Receipt Validation – increase revenues by eliminating in-app purchase piracy using server-side receipt validation
  • Rich Gamification – player XP, achievements, leaderboards and more are available for when [if] you decide to add Gamification
  • Easy integration – local libraries available across all device platforms (iOS, Android, WinPhone, BB10, Web, PC/Mac, etc.)
  • Great designer / debugger web tools – the brainCloud design tools make it easy to set up your game, and the monitoring tools make it easy to view, debug, and even edit the data of your app as you develop

 

Key BaaS for Apps Business Features

The key business / product management features include:

  • Centralized pricing controls – control the pricing of in-app purchases centrally
  • Scheduled promotions – set up promotional pricing in advance, together with language-specific cross-platform push notifications for when sales / events start
  • Auto promotions – plus, design custom auto promotions to be automatically triggered when users enter a defined user segment.  For example, a day after a user utilizes a new feature, hit them with a promotion to activate the “premium” version of it
  • Cross-platform Analytics – brainCloud include built-in “just-in-time” analytics that reports on the usage and monetization of your app, across platforms
  • Support Tools – the Monitoring tool makes it easy to provide field support for your user base
  • Affordable Elastic Pricing model – brainCloud “No-Brainer” pricing is based on API usage – only pay for as much of brainCloud that you’re utilizing. Pricing starts at just $25 / month, and is completely free during development.

 

The Backend-as-a-Service business case

And of course, the brainCloud business case works for the BaaS for Apps model as well.

  • Save development time and budget – zero developer and service costs during development!
  • Save hosting / operational costs – brainCloud is much cheaper than hosting yourself, plus you don’t need dedicated IT support personnel!
  • Increase revenues – brainCloud’s freemium and promotional features will increase the monetization of your app

So, the next time someone asks “Is brainCloud designed for games, or other types of apps?” – the answer is “Yes.

For more information, why not take a test drive? Sign-up free today!

Sign Up For Free

BaaS for Single-Player Games

BaaS for Single-Player Games

An interesting question was put to me today:

“Would it make sense to cloud-enable an existing, successful, single-player mobile game?”

My gut reaction was “probably not“.  We know that the sweet spot for our Backend-as-a-Service is with social and multiplayer games, where a back-end is pretty much required. For those customers, pitching brainCloud is simply a question of Build vs. Buy.

That said, brainCloud offers a *lot* more than just multiplayer and social features – features that greatly aid in the management and monetization of any free-to-play game…  so lets dig deeper and do the full analysis.


 

Background

First, a bit of background on the game in question:

  • It’s a freemium mobile game on iOS and Android
  • The game is successful, and doing roughly 50K DAU, with about $0.02 ARPDAU
  • Monetization is via in-app-purchases for speeding up the accrual of key stats and in-game currencies – progressing the meta-game
  • There are no social features – no leaderboards, etc.
  • The game is integrated with no cloud tech, other than analytics and some advertising – so no cloud saves, etc…
  • It’s a very small team – 1-3 devs really – so time is money

So – what benefits cloud features have to offer a game like this?  And do the benefits out-weigh the impact of adding the new monthly cloud service costs?

It’s easy to argue that their player base will grow and become more engaged if you add cloud saves (so players can play across devices), social leaderboards (to compete against friends), published achievements, player vs. player challenges, etc…  but it’s impossible to predict (or later prove) what the monetary impact of those incremental improvements might be…  [plus, in this case there’s an existing product and customer base – so greatly evolving the game storage and socialization strategies might be disruptive].

Instead – lets take this from a purely monetization perspective.  One of the key focuses of brainCloud is not just providing the bread-and-butter of cloud tech – but also providing a platform that allows you to really increase the monetization of free-to-play games.

So – focusing just on the freemium monetization features – what minimal integration efforts would result in maximum return for the game?

The key features I’d suggest are:

  1. IAP Validation – brainCloud provides server-side receipt validation, which eliminates IAP piracy, resulting in a boost to IAP sales.  Let’s be conservative and predict a 5% boost to IAP revenue as a result.  [For some background, see this GamaSutra article regarding IAP piracy.]
  2. Scheduled Promotions – brainCloud provides certralized coordination of pricing and promotions, across platforms.  And brainCloud supports scheduling of promotions – and automated sending of push notifications to inform the user base of the promotions as they happen.  Sure this is stuff a product manager can coordinate manually – but when you’re a small company, you tend to focus on the new products and leave the old ones to fend for themselves.  It’s fair to expect say 2.5% boost from allowing brainCloud to do this for you.
  3. Automated [Targeted] Promotions – finally, brainCloud allows you to aim targeted promotions and dynamic player segments.  This means, you can define a player segment for “VIPs that are leaving the game” – and hit them with a special promotion to get them to stay.  Given that whales are responsible for 80% of revenue for most games, extending that stay should be easily worth another 5% boost.

It would only take a week or two to add these features to the game (plus a bit of testing of course).

 


 

The Math

The game is currently bringing in about $30K USD per month (50,000 DAU x 0.02 ARPDAU x 30 days).  A 12.5% increase on the monetization results in an additional $3,750 USD per month.

But…  now there are [brainCloud] server costs – so we’ve got to factor that in.

Looking closely at brainCloud pricing, you can see that 50K users is estimated at about $1600 USD per month – which seems pretty reasonable given the benefit.

But wait, that’s assuming 100 brainCloud API calls per DAU – if the game is only using brainCloud for monetizaiton, it’s API usage will be way, way down – we’re probably talking 5-10 API calls per DAU (and that’s assuming players are playing multiple sessions a day).

Lets say it’s 10 API calls per DAU.  In a month, that would be only 10 x 50,000 x 30 = 15M calls – which is actually only $150 / month*.  Talk about a bargain! 🙂

* and that’s before the early adopter discounts!


 

The Results

And, the moral of the story is, there’s always room for increased monetization.

Our estimates are that for a cost of 10 days of integration, plus $150 monthly for brainCloud, the developer will see a 12.5% increase in sales, which in this case is a monthly increase of almost $3600 USD per month.

Even if the increase were over-estimated by a factor of 10x it would still be worth it in the long term…

Cool.

 


One Final Note

This pricing analysis points out one of the greatest aspects of the brainCloud pricing model – you just pay for the amount of the service you use (in millions of API calls), not for the amount of the service that the provider fears you *might* use.

Utilizing these same features from competing platforms at 50K DAU could cost as much as $3000 / month!

Makes brainCloud seem like quite the deal, doesn’t it? 🙂

Sign Up For Free

 

brainCloud Pricing Update!

brainCloud Pricing Update!

As you know, we are continually measuring, tweaking and improving the performance of brainCloud.

The good news is that the latest round of platform optimizations had a greater impact than expected – meaning we can handle even more users on our servers at lower cost.

The even better news is this means, effective immediately, we’re adjusting our pricing tiers downward.

This is part of our ongoing pledge to align brainCloud pricing with our costs, to ensure we’re offering you the most cost-effective solution possible.

braincloud_pricing

While delivering the good news, we thought we’d spend a moment to provide a bit more background on brainCloud’s pricing model.

 

API Usage – the brainCloud Pricing Model

brainCloud pricing is based on API Usage – which is the number of API calls (requests + responses) that your app makes to our servers.

We choose API Usage because:

  • Cost alignment – it aligns directly with our server costs
  • Cost transparancy – the costs are calculated without hidden assuptions (e.g. average user engagement, etc.)
  • Scalable by benefits – it allows customers to decide how much or how little of brainCloud to use, and pay accordingly

Of course, it does have the disadvantage that unlike DAU (Daily Active Users) or MAU (Monthy Active Users), API Usage is not a term that most developers and business people are used to talking in terms of.

 

Estimating API usage

Reporting API usage after-the-fact is straight forward; Estimating API usage ahead-of-time is tricky.

brainCloud API usage is dependent upon:

  • the type of app or game
  • how much of the brainCloud feature set you’re using
  • the engagement of your game (length of play, # of sessions, etc.)

For shorthand, we can use the following formula:

Estimated # API calls = <API calls per DAU> x <avg DAU per day> x 30 days

So – for example, if we were estimating the montly cost of a game with:

  • 100 API calls / DAU (which is about our system average)
  • 5000 daily active users (average)

it would total 15M API calls per month, which would cost $150 USD.

 

Average API usage

The API Usage per DAU in brainCloud varies by app – but averages ~100 API Calls per DAU.

Some competitors quote an average of 200 or 300 API calls per DAU – there are 3 main reasons for this discrepancy:

  1. Designed for mobile (less chatty) – Our API is optimized for mobile, and from the beginning has been designed to do more with fewer interactions.
  2. They are conservatively estimating cost – for them to match up costs to revenues in their forecasts, they need to conservatively estimate how much server usage a player could cost.  It’s human nature to therefore estimate high to ensure that costs are covered.  We have no need to do this since we charge for API usage itself
  3. We support lower usage scenarios – Clients are free to use as much or as little of brainCloud. Want to use brainCloud for cloud saves only?  No problem.  brainCloud monetization features only? Go nuts – and pay less because you’re utilizing our servers less!

In practice, we’ve had apps in our network use less than 10 transactions per DAU, and some use upwards of 200 API calls per DAU.  We’ve not yet had an app average greater than 300 API calls per DAU.

And note, brainCloud includes tools to help you assess and optimize your API Usage – to keep your costs (and our server usage) down.  Our costs go down, and your costs go down – win:win!

 

Free during development

We hope this clears up any questions you may have about pricing in brainCloud.

As always, brainCloud is free during development (up to 100 users), and if you sign up before March 6th, 2015, you lock in our special Early Adopter pricing until 2016!

Sign Up For Free

bitHeads announces brainCloud

bitHeads announces brainCloud, a new revolutionary cloud solution for game developers

Leading games technology company today announced the industry-wide availability of brainCloud, a streamlined backend solution for comprehensive, cloud-based game management.

Ottawa, Ontario, and Montreal International Games Summit (MIGS), Nov 12, 2014 — Previously only available to select game developers, bitHeads has officially launched brainCloud to support backend development and build revenue opportunities for game developers.

An out-of-the box solution for game development and management challenges, brainCloud is set to revolutionize the interactive games industry.brainCloud is a robust backend cloud-based production toolset that cuts game development time and costs by providing a one-stop solution that manages multiplayer features, monetization, cross-platform analytics, promotions, sales, and more. brainCloud works seamlessly with existing tools to operate and grow a game developers’ core business.

Dramatic shifts in mobile game development over the last five years demand fast-paced development that integrates innovative tools and drive user engagement while providing effective analytics and monetization strategies. To be commercially viable, games require multi-platform and multi-network support, game management systems, deployment, and advanced analytics. Addressing this need, brainCloud is an advanced solution within the emerging category of the cloud-based platform tools for games development.

Key brainCloud features include:

  • Game Features – multiplayer, matchmaking, cloud-saves, identity management, social integration, leaderboards, achievements, push notifications, virtual currencies, and in-app purchasing. Using the JavaScript-supported brainCloud Cloud Code feature, developers are able to build in additional features.
  • Local Platform Integration – when a player is awarded an Achievement in brainCloud, that achievement is also triggered in iOS GameCenter.
  • Advanced Pricing and Promotional Features – brainCloud provides support for multiple virtual currencies and coordinates the product and pricing management across all platforms, allowing the developer to quickly put items on sale with just a few clicks.
  • Scheduled Promotions – sales can be pre-configured well into the future and when the promotion automatically triggers, players will receive notifications on their devices (in their language), and automatically get the preferential pricing when they go into their store screens.
  • Advanced Auto Promotions – developers are able to define dynamic target segments of users and trigger individual promotions just for them. For example, a developer could define a promotion for “MVPs that may be leaving the game” – and define the criteria as “players who’ve played > 50 times, who’ve spent > $20, and who haven’t played in the past 5 days”. Whenever a player enters this segment, a special “Promotion for MVPs” would be triggered, offering them a product at a huge discount, in an attempt to keep them in the game longer.

“Auto Promotions are just the beginning of the sort of advanced monetization features that bitHeads has in store for brainCloud,” notes brainCloud product manager Paul Winterhalder. “There’s no limit to the sort of advanced features that we can build to help developers to better engage and monetize their communities.”

“Having worked with the team at brainCloud on multiple projects, they definitely know their stuff when it comes highly-scalable back-ends,” says Stu Duncan, founder of Bight Games, the creators of ‘The Simpsons: Tapped Out”.

“Before building our latest game, Project Cyber, we looked at a number of backend-as-a-service platforms. None of them had as complete a game feature set as brainCloud”, says Spearhead Games co-founder Atul Mehra.

Wanda Meloni, CEO of M2 Research explains, “Solutions such as brainCloud now offer small-to-mid-size developers the sort of back-end infrastructure previously only available to larger developers such as Zynga, King.com and Supercell. Providing an out-of-the-box solution, bitHeads and brainCloud are really leveling the playing field.”

Outlining key findings from M2 Research’s upcoming State of Game Development Report Meloni notes, “Independent developers with less than 25 employees now make up 62% of the games development market, while mid to large scale indies represent another 13%. With 75% of the total game development market made up of independent teams, optimizing backend infrastructure is critical for developers looking to build in cross-platform development, monetization and ultimately cost savings.”

“bitHeads has been building customized backend solutions for clients since 1995. The growth and need in the market is there, and with brainCloud we have built a robust and scalable platform that helps developers concentrate on what they do best – make great games. We help them get games out faster, save on development, hosting and maintenance costs, and have built-in features specifically created to increase revenue,” says Scott Simpson, CEO of bitHeads.

Developers who sign up before December 31, 2014 qualify for special early adopter pricing until 2016. Sign up for a free trial now at getbraincloud.com.

ABOUT BITHEADS: For nineteen years, bitHeads has been building games and network development solutions for some of the most well respected brands in business today. Providing secure, custom development solutions bitHeads is a leading provider of cloud and backend infrastructure, mobile, big data and M2M solutions. brainCloud has been developed in partnership with the Canada Media Fund.

For more information on brainCloud please visit: www.getbraincloud.com

Visit our website for further information on the parent company: www.bitheads.com

CONTACT DETAILS:

Melissa Brown, CEO
Five Leaf Clover, Inc.
Mel@fiveleafcloverinc.com
+1 (858) 382-8392

bc-sign-up-free