Running a game as a live service means you can adapt your game to your players’ needs, keep your game fresh and make the experience more enjoyable.
Traditionally, making a change to your game takes days…even weeks. You have to engineer, test, publish a new version of your game, and then wait for all of your users to download the new version. A real-time updating framework would skip all these steps – but such a solution usually requires significant engineering resources to build. And even adopting a 3rd party solution takes extra time and effort to maintain compatibility across different platforms. Unity Analytics is introducing Remote Settings to make it easy, fast, and free for every Unity developer to update games on-the-fly.
Remote Settings opens a vast range of possibilities for you to optimize gameplay experiences.
Tune the difficulty curve for your players.
For example, we made our Fruit Slasher game more challenging by adding more fruits at each round.
Implement special holiday scenes to make your game more fun.
Our early adopter Dr. Panda has been using this feature for Halloween and Christmas specials for Dr. Panda in Space.
Remote Settings is easy to use. It’s native to the Unity engine and employs an API similar to PlayerPrefs that most Unity developers are familiar with. We’ve also included a “Remote Settings Component” that lets you get started without writing any code. Once set up, Remote Settings requires no additional engineering work to operate. All changes apply as soon as the game restarts. You can even use the Analytics dashboard to track real-time impacts on key metrics.
So far, we’ve had some really great reaction from our pilot customers.
“Remote Settings allows us to dynamically modify various gameplay factors in real-time and are incredibly easy to implement in our projects! It saves us plenty of development hours so we can keep focusing on creating new experiences for our players!”
Lukasz Wolinski
CTO, Dr. Panda
Remote Settings is now in open beta and free to use for all Unity developers. You can download the package from the Asset Store or through the configure page from the Analytics dashboard.
We’d also love to hear your feedback about the feature and your stories about how it can help turn your brilliant creative ideas into remarkable player experiences! Moving forward, we plan to add more features for Remote Settings (e.g., segment-based Remote Settings). Stay tuned and feel free to reach out to us anytime.
Leon Chen
Unity Analytics, Product Marketing Manager
Mikkel Hjortshoej
July 14, 2017 at 12:10 amAre the current values on the server at build time baked into the game, so if your game is launched without internet access the first time, it won’t break?
Leon Chen
July 14, 2017 at 11:00 pmRequesting the Remote Settings configuration over the network is an asynchronous process that might not complete before your initial Scene has finished loading, or might not complete at all, so you should always initialize your game variables to reasonable defaults.
If Unity has not saved the settings yet (such as when a player has no network connection the first time they run your game), then the RemoteSettings object does not dispatch an Updated event and so does not update your game variables.
You may find more information from our documentation. https://docs.unity3d.com/Manual/UnityAnalyticsRemoteSettingsNetRequests.html
Or please just feel free to contact our support team at Analytics@unity3d.com. :)
Roy
July 11, 2017 at 9:50 pmAwesome!! one question, does this setting will work for consoles??
Leon Chen
July 12, 2017 at 12:39 amUnfortunately, we are not supporting consoles (specifically Xbox and Play Station) at this time. But the feature supports mobile and PC (Windows/Mac/Linux) platforms.
Daniel
July 8, 2017 at 10:03 pmI have concerns about iOS. I believe Apple does not like apps to change their behavior after review. Is it recommended practice to inform Apple of all changeable aspects of your app before review?
Leon Chen
July 10, 2017 at 11:18 pmNot necessarily. However, it depends.
Apple cares first and foremost about the user experience. From my understanding, their rules are in place to make sure there are no behaviors within apps/games that degrade the user experience. Part of that is ensuring that there is no material deviation from what users expect when they download and install an app vs. what they actually get. i.e., they don’t want their users to feel like they’ve been misled from what is marketed/advertised in the app store.
Please see the program license agreement, section 3.3.2 https://download.developer.apple.com/Documentation/License_Agreements__Apple_Developer_Program/Apple_Developer_Program_License_Agreement_20170605.pdf
And app store review guidelines 2.5.2
https://developer.apple.com/app-store/review/guidelines/#software-requirements
There is an area to submit comments on a build upon submission, but as long as you aren’t completely changing functionality app (e.g. calculator app that becomes a VPN app) or remotely executing code, I wouldn’t be that concerned.
Hope that helps.
Felix Chippendale
June 22, 2017 at 3:41 pmkyaa (means girly screaming in japanese lol)
Eduardo Lauer
June 17, 2017 at 1:23 amAny plans on being able to set different values for specific segments of users?
Leon Chen
June 18, 2017 at 10:38 pmGreat question, Eduardo. It will definitely be part of our roadmap. We’ll update with more details later this summer.
DMX
June 13, 2017 at 8:53 amLooks very promising! Always wondered how to implement such a feature- now it will become easy. Definitely useful.
Nikola
June 12, 2017 at 5:02 pmHi,
Unity Analytics is becoming comparable to some excellent BaaS’s. Thx for that!
The remote settings are very promising.
Is there a plan to go further and implement a Leaderboard and/or Challenges system that can be modified dynamically in realtime?
Best Regards,
Nikola
Leon Chen
June 13, 2017 at 3:35 amThanks, Nikola. Our R&D team is actively exploring these exciting features though I cannot promise them now. We might have some news for you this fall. Stay tuned. :)
Ryan Chapman
June 6, 2017 at 10:55 pmAh perfect! This was on the roadmap for an upcoming release of Motive.io, but now we can focus on even cooler stuff. :)
David Darias
June 6, 2017 at 8:55 pmWoow, I am programming this exact same asset. It’s name is “CloudConfig”.
Serialization is with JSON and used a C# attribute to specify remotely updated properties.
I think I will have to pivot (again). : (
Jonney Shih
June 14, 2017 at 4:20 pmI like your idea better, attributes.
Anthony
June 6, 2017 at 7:34 pmSo for the Remote Settings its only applicable every time they log onto the game, or are idle from it. There’s no direct way to constantly update values within the game for our players?
Leon Chen
June 6, 2017 at 8:54 pmOur current open beta allows new settings to take effect when a game restarts. But we’d happy to learn more about your use cases. Would you please send us more information to our support email? Analytics@unity3d.com
Pablo
June 6, 2017 at 12:20 pmThanks, Unity!!
This is a highly, extremely useful feature and I hope to Unity team keep moving in this direction. Many times you want to make few changes from remote, and you need BIG solutions from other services, paid, and much more complex (for example, gamesparks, playfab, kii etc.).
This is useful, for example, when you create an app for a restaurant, you can change daily the strings that are shown in the “menu”, so you don’t need to create a full backend or look for other solutions.
Leon Chen
June 13, 2017 at 3:39 amThanks, Pablo. And that’s an excellent use case!
haim
June 5, 2017 at 10:03 pmit look nice but couldn’t get it work… also no support in the forum (yet).
i’m getting error 401 when inserting the project ID.
unity editor 5.6.1…
Leon Chen
June 6, 2017 at 9:42 amThe feature shall work with 5.6. Would you please send you questions (including project ID) to our support email? Analytics@unity3d.com
slake_it
June 5, 2017 at 10:01 pmThanks for the great feature.
Leon Chen
June 6, 2017 at 9:41 amGlad you like it! :)
Raj
June 3, 2017 at 8:30 pmSo would this require a game to have an internet connection?
Mark Choi
June 5, 2017 at 9:03 amThat’s right. Remote Settings requires that the game has an active internet connection to grab the latest values.
Poojitha
June 3, 2017 at 5:55 pmIt was very easy to implement. It just too couple of minutes to get it running!
With this and Cross Platform Native Plugins Plugin, I don’t need to worry any more and focus on my game core alone!
Leon Chen
June 5, 2017 at 9:04 amGlad to hear that, Poojitha! :)
Ben
June 3, 2017 at 4:03 pmWould it be safe to assume overtime you’ll add more data types such as Arrays? This would be great for quiz games.
Leon Chen
June 6, 2017 at 9:40 amWe are still working on our product roadmap. In the meantime, I guess you can save a JSON array in a String value and parse it in the client. Please feel free to reach us if any further questions. Analytics@unity3d.com
Damien Delmarle
June 3, 2017 at 8:44 amthanks took me 10 minutes to implement in my game :D
Leon Chen
June 5, 2017 at 9:15 amSounds great! Feel free to reach us if any questions or if you want to share your story. :) Analytics@unity3d.com
manutoo
June 3, 2017 at 7:56 amAfter reading here https://docs.unity3d.com/Manual/UnityAnalyticsRemoteSettings.html , I can answer everybody : it’s what its name say, it’s only some remote settings for your game, not an auto-updating process like the tag line “Update your game in an instant” could have make us believe… So, it’s nice, but way less useful than a real auto-updater… :-/
Jack
June 3, 2017 at 6:25 amVery useful thanks
Leon Chen
June 5, 2017 at 8:49 amGlad to be helpful! :)
box621863
June 3, 2017 at 4:23 amis it free?? or I have to pay?? Can I use more Text contents like dialogues for NPCs in games ?
Leon Chen
June 5, 2017 at 8:49 amYes. It is FREE to every Unity developer.
And you can use more Text contents like dialogues for NPCs in games. But as a practical matter, I’d imagine that would quickly hit the upper character limit? Please feel free to reach Analytics support at Analytics@unity3d.com. We’d be happy to answer your question in more details.
Nathan Warden
June 3, 2017 at 12:47 amOkay, so I’m trying to understand what this actually is. Is this simply a way to “activate” certain portions of your game under certain circumstances, or is it an auto updater, or both? Thanks :)
Nathan Warden
June 3, 2017 at 12:52 amI think I understand. It’s like having PlayerPrefs that we control, that globally applies to everybody connected to the internet. So instead of the “Prefs” being written to the registry or a config file like PlayerPrefs, it exists in one place on a Unity server, that only we developers can write to, but every player of our game reads from. Right?
Leon Chen
June 3, 2017 at 11:54 amThat’s right! :)
Kami
June 5, 2017 at 9:34 pmI guess you clarified it better than the author of this article!