With 4.0, we officially take the beta label off of RTT, and release it to the world!
As you know, RTT adds a bi-directional channel for real-time communications to the brainCloud platform, greatly expanding the types of experiences that can be delivered without additional tech.
The list of great new features that RTT has already enabled includes:
For 4.0 we are pleased to add:
we’ve RTT-enabled Async Matches. So now you can use the Async API in real-time! (Don’t worry, you can still use it offline if you would like).
Oh, and while we were at it, we’ve made async matches automatically delete themselves after 90 days. So your apps no longer have to do the cleanup manually if they don’t want to.
we have integrated our new Hosting features with our RTT Lobby service
Plus we have officially launched our RTT-enabled Plus subscription plans that make these great features available at all usage levels.
Did we mention hosting?
In brainCloud 3.8, we introduced support for custom Room Servers (i.e. game or experience servers) that integrate with our Lobby Service for matching up users.
The cool thing is that you have full freedom to custom code your Room Server yourself, in any technology. The not-as-cool thing was that you had to host (or arrange for hosting) of the servers yourself, plus you also had to code up a Room Server Manager, for us to integrate with (it was responsible for spinning up your servers and managing them). Suffice to say, that’s a bit more complicated than most people want.
So for 4.0 we’re pleased to announce that we can host your custom Room Servers for you – all managed by our built-in Room Server Manager. It’s truly as simple as giving us the name of the Docker image to use for your service. We handle the rest, spinning up servers and containers as needed – and charging you for the server cycles used.
Relay Servers (beta)
Even simpler than hosting a custom-built Room Server, is hosting our new built-in Relay Servers!
We have used our new RTT + Hosting infrastructure to add built-in Relay Server support to brainCloud.
Now building a real-time or near-real-time multiplayer experience on brainCloud is as simple as:
Configure the relay servers on the new Design | Cloud Code | My Servers page
Connect the relay server to your lobby via the Design | Multiplayer | Lobbies page
Utilize our new Relay Communications APIs in your Unity apps! (note – Unreal and other libraries will be supported soon!)
New Billing Plans
With all this new infrastructure, there has to be some way to pay for them! Sorry! 🙂
But it’s not all bad news. Not only have we launched new Plus plans that add support for RTT and Hosting, but we are also introducing new lower-cost Lite plans! Plus we have significantly lowered the API usage costs (as you scale up) across all plans!
Also note that we have added a new Development Plusplan, which is a $5 / month plan that gives your apps in development access to Hosting features (i.e. hosted Room Servers and Relay Servers).
Go Live! reworked to support the new V4 billing plans
New Change Plan action menu item allows you to dynamically swap the plan for your app at any time
To terminate service for your app, just choose Delete from the action menu. The system will now automatically expire your subscription. You will be invoiced at the end of the month, on a pro-rated basis, for the amount of service your app used.
We have also added a new Plan column to the display to make it easier to tell exactly which plan your app is using
Core App Info | Advanced
Restore Checkpoints – brainCloud creates a checkpoint each time you deploy to an app and/or import to it. This new feature allows you to easily restore an app’s meta-data to a recent checkpoint.
Authentication | Email Authentication
brainCloud can now send confirmations to users after they have successfully changed their passwords. Configure the emails here.
Cloud Code | My Servers
This is the screen formerly known as “S2S Config”
The screen has been expanded to support the configuration of multiple server types:
Custom Servers – these are the old S2S Configs-style servers
Relay Servers – deploy your own set of brainCloud Relay Servers
Room Servers – configure brainCloud to host your custom Room Server images
Room Server Managers – for integrating with a custom-developed, externally-hosted Room Server Manager
Multiplayer | Lobbies
Room Server selection updated to use the new My Servers configurations (instead of referring to servers from Web Services, which 3.X did)
User Monitoring | User Summary
You can now trigger the sending of a password reset email to Universal Identity users (if they have a contact email stored against their profile). Click the mail button to send.
User Monitoring | Recent Users
The New column has been replaced by a new “Logins” column – which shows the number of times that user had logged in. Much more informative!
Reporting | Analytics
We have added a new section that reports the # of Dormant Users in your app. Dormant Users are defined as users who have not logged into your app in 180 days.
Reporting | API Usage
We have added new RTTand Hosting usage statatistics
DOCS top menu
We’ve added a Forums link to the DOCS menu. Hmm, maybe we should rename the menu to HELP?
Important: The 4.0 libraries (especially Unity) contain changes that will be breaking for some apps. See this blog post for migration instructions. As always, the older libs continue to work for existing apps. We recommend all devs upgrade at their earliest convenience.
The following changes/additions have affected the brainCloud API:
All libraries have been updated to include all 4.0 APIs, with the exception of the Relay Service
The new Relay Service APIs are currently available in the Unity / C# libraries only. Unreal + other libraries will follow soon.
BCLD-4679 – Duplicate leaderboard config issues (leaderboard Duplicate, new “MOCK” division set instance creation) if Enrol or Announcement minutes and called when rotation minutes remaining < (Enrol + Announce + Buffer) minutes
BCLD-4651 – Permissions issue with groups – ReadGroup() vs. ReadGroupData() with other=1
BCLD-4415 – [Documentation] – More documentation support for the parameter ‘isOpenGroup‘ for the ‘AutoJoin’ operation
BCLD-4650 – Issue in the UpdateGroupACL cloud code proxy
BCLD-4645 – UK Area code is missing from Authy
BCLD-4494 – Add documentation for ‘UpdateEntityIndexedId’ call in both API and S2S Explorer in the API Reference Docs.
BCLD-4524 – Add Server Session support for Leaderboard Service operations that are currently only supported for Player Session
BCLD-4337 – Sending null match state on create Async Match should not clobber the summary!
BCLD-3192 – ‘GetSharedEntityForProfileId’ returns positive log response without entering the profileID
BCLD-4307 – Improve speed of ChildEntity – UpdateEntity using updateFields instead of update
BCLD-4293 – Operations are not alphabetized on the APIHooks screen – should be
BCLD-3232 – Client API – ‘ReadServerTime’ Operation returns a definite response, despite entering incorrect app ID
BCLD-4483 – DataStream Push Notifications – new safe mode to reduce excessive DataStream-related usage charges
BCLD-4499 – PostTournamentScoreWithResults is missing in the Unreal Client
BCLD-4503 – resetCurrency is missing from the virtual currency service
BCLD-4448 – Defect being seen in async match profile urls
BCLD-4498 – If a company is in a Suspended state, they are unable to edit their billing information to get out of that state…
BCLD-4488 – User can create Leaderboards with spaces and special characters using the ‘CreateLeaderboard’ API call
BCLD-4449 – User can create Leaderboard with spaces and special characters using the ‘PostScoreToDynamicLeaderboard’ API call.
BCLD-4454 – StartTime matches Registration time for Monthly Tournament in ‘GetTournamentStatus’ call
BCLD-4228 – API: Updated player names and picture urls not reflected in turn-by-turn match summary
BCLD-4358 – Inconsistency between comms initialize parameter order and wrapper order for java android and desktop
BCLD-3200 – JSON error when saving a quest with an already existing name
BCLD-4268 – Attaching an email identity overwrites an exisiting contact email
BCLD-3470 – Monitoring -> Global Entities -> Bulk options -> Export should be disabled when there are no global entites for the app
BCLD-4294 – Missing data in the new AppStore VerifyPurchase() call…
BCLD-2788 – Portal: deleting an image in [Achievements] without saving the achievement causes a missing image
BCLD-3968 – Errors handing $and in Where clauses
BCLD-3969 – getRandomEntitiesMatching sometimes returns 0 items for max 1, even when items match
BCLD-3977 – Log processor is incorrectly attributing mongo log collection write failures (too to large log sizes) to a particular app
BCLD-3927 – Clicking on resetpassword email link twice gets user to a valid looking reset password screen
BCLD-4111 – Design Portal should not be able to configure invalid Steam product info
BCLD-4105 – Add the missing readUserStatsSubset() cloud code method
BCLD-4108 – Global Entities: allow filtering and sorting on entityId,version, and expiresAt
BCLD-3989 – File Storage being reported on the API Usage page appears to always show 0.0
BCLD-4118 – When we do a SwitchToChildProfile(), we should add a login log entry for the child profile
Plus miscellaneous fixes and performance enhancements…
This article has been updated to include September 2020 tweaks to RTT pricing.
The Plan plan
brainCloud 4 is fast approaching – and it is bringing a slew of new capabilities to the platform, including the official release of RTT (Real-time events, Chat, Messaging, Online Matchmaking, Lobbies, Presence and more!) as well as brand-new Hosting capabilities (Relay Servers and Room Servers).
As these new capabilities bring additional costs to running our infrastructure – we will be introducing revised pricing plans in coordination with brainCloud 4.
The good news is that if you aren’t using these features, nothing much changes — in fact, we’ve revised the API pricing tiers downward, so your overall costs should go down!
For the folks taking advantage of these great new capabilities, we have added new Plus plans, and have worked hard to keep the pricing reasonable and in-line with the costs to provide the service.
We are also introducing new discounted Lite plans – perfect for apps with lower usage requirements.
When 4.0 launches, the new plan lineup will look like this:
Development (Free) – access to all features, except hosting. Limited to 100 DAU, 1000 accounts. Includes 10 CCx.
Development Plus! ($5 /month) – All features, including hosting. Limited to 200 DAU, 2000 accounts. Includes 20 CCx.
Lite ($15 /month) – Core features. Includes 1M API.
Lite Plus ($25 /month) – Core features + RTT + Hosting. Includes 1M API, 50 CCx.
Standard ($30 /month) – Core features. Includes 6M API.
Standard Plus ($50 /month) – Core features + RTT + Hosting. Includes 6M API, 100 CCx.
Business ($99 /month) – Core + Enterprise features. Includes 10M API.
Business Plus ($199 /month) – All features. Includes 15M API, 250 CCx.
We are confident that we have a plan to fit every app!
As we were putting together our new set of plans, we decided to simplify and standardize the API Usage Tier Pricing.
All V4 plans use the same discounting tiers as they scale (it used to differ by plan). So no matter what plan you start with, as you get to 15M total API calls for the month, the cost per M drops to $10.00.
One side effect of this standardization is that the cost of additional usage for Business Plan customers now starts at $10.25 / M API, instead of $10.00 / M API from the old plan. To make up for this, we have bumped up the Business Plan to include 10M API for free (instead of 9M) – so it is a net win.
We have also made our API Usage pricing tiers more aggressive. In the old plans, you needed to hit 300M+ API calls to get to $9.90 / M pricing. In the new plans, we drop the price to $9.75 / M API at just 25M+ API calls.
We have accelerated the API discounting across the board, resulting in savings of 5-10% at high usage levels.
New Plus Plans
The new Plus plans make RTT and Hosting features available to apps at all usage levels.
Features available to Plus plans include:
Async Match with RTT
Relay Server Hosting
Room Server Hosting
We have worked hard to keep the incremental costs of the Plus plans low – so that as many developers as possible can integrate these great new features into their apps.
Note – Plus plans are subject to RTT Usage and Hosting Usage costs. More details in the sections that follow.
New Lite Plans
A frequent request has been for lower-cost, lower-usage plans.
We are pleased to present our new Lite and Lite Plus plans. These plans offer the all the same features as their Standard plan equivalents, but at lower 1M API usage levels.
These plans, which start at just $15 and $25 /month respectively, are great for indie developers, the development of smaller experimental apps, and even for more ambitious apps in the long-tail phase of their product lifecycle.
brainCloud’s RTT features require a nailed-up TCP or WebSocket connection for every client device. The costs to brainCloud are in maintaining connections (CCx) from our servers, and delivering the millions of real-time events to your users as they participate in chat, messaging, lobbies, etc.
To account for this utilization, we simply convert these resources to API counts.
Every RTT plan comes with a number of Concurrent Connections (CCx) that are freeper hour. For example, the Standard Plus plan includes 100 CCx. That means that a peak of 100 Users can be concurrently online without additional CCx usage fees. Assuming your average play session is 12 minutes, that might actually equate to 500 users per hour, or 12K users per day. And that’s if RTT is enabled for the full time that users are in your app. Optimize your app to only initialize RTT when you need it, and 100 CCx could equate to thousands of users per hour.
Above that, apps are charged at a rate of 10 API calls per CCx per hour. So – lets say your app was averaging double that – or 200 CCx. The additional costs would be 100 x 10 API/CCx x 24 hours x 30 days = 720,000 API counts. At ~ $10 / M API, that’s about $7.20 in usage.
The other component of RTT Usage is event delivery. RTT is great for chat and lobby operations – where one operation may fan out to dozens (or thousands) of recipients. That’s great functionality wise – but those deliveries can really add up!
The good news is that RTT is very efficient at delivering events – so we are charging at a bulk ratio of 100:1 – that is, your app is charged just 1 API count for each 100 events delivered!
brainCloud now supports hosting of Relay Servers and custom Room Servers. This really opens up the sort of experiences that can be accommodated in a pure brainCloud environment.
The good news is that you aren’t charged for API calls / messaging / etc to your hosted servers — even if the server is one of our Relay Servers (using our new Relay Protocol).
That said, we do of course need to pass along the cloud costs of hosting the servers, and the data transfer usage associated with it, from the cloud provider.
For pricing, brainCloud is simply marking up the hosting costs by 15%, and adding 1.5 cents per hour for managing the servers.
To help keep costs low, brainCloud will automatically spin up / down servers as required. There are a complete set of parameters that can be customized to allow Teams to fine tune the best balance between server cost and performance.
And those are the new plans!
Those are the billing changes for v 4.0.
We appreciate that brainCloud’s adherence to elastic pricing can seem a bit complicated. It is certainly more complicated than traditional per-MAU pricing. But in the great majority of cases, it is also much better value.
Our overall goal when designing our pricing models is to ensure that the pricing you are charged reflects the costs that we incur in providing the service.
We feel this approach aligns our interests. The more server resources your apps consume, the higher our costs, and the higher the price to you. But the more efficiently you can build your app, the lower our costs, and the lower the pricing for you. It’s win:win – and we are on the same side!
If you have any questions or feedback, please reach out to us via the Green Chat widget. We are always happy to hear from you!