API for turn-based multiplayer game - android

I would like to add the multiplayer functionality to my Android game. In particular it must be turn-based. I don't want to reinvent the wheel, so i need a framework/API or whatever that avoid to write the server side. It is just a personal project of mine, so i have not special requirements. Now, i know 3 possibilities:
Google Play Services API for Turn-Based game
SmartFoxServer
Parse
I would like to know if there are other technologies or if any of the ones that i've written above is good.

https://developers.google.com/games/services/android/turnbasedMultiplayer
As someone said in comments, Google Play services is cross-platform and will work for iOS if you ported it in that direction. Also, the support in the way of tutorials and documentation is very great for this.
On top of that, you can integrate other Google goodies like high scores, badges, etc.

Related

Making a Unity Mobile Game with Google Firestore (Plus Google Stack) Across iOS and Android

I want to start developing a unity mobile game that will use Google Firestore as its database and ideally cloud functions for its "server architecture." I have experience with Firebase and Unity but what I am confused about is two things:
What exactly is Google's "Full Stack", like what should I be using on top of Firestore and maybe cloud functions (is this all I need to worry about, or is there more, working with AWS at work there seems to be a ton of things that need to be in place for a well working project)
What is the best way to integrate Firestore with a Unity Mobile game that spans across iOS and Android? Is there a tutorial to get started with a project like this?
Thanks a lot guys, and I would also appreciate any other tips on how I should approach making a unity mobile game that spans across iOS/Android. For instance what other technologies should I be looking to integrate?
I am guessing that "Full Stack" includes all of Firebase's other services: Authentication, Cloud Functions, ML Kit, Hosting, Cloud Storage, Realtime Database, and Firestore (https://firebase.google.com/products/).
Firestore is currently not available for Unity (https://groups.google.com/forum/#!topic/firebase-talk/dc8CuW7LDM4). You could write a bridge for it but that would be a lot of work and hard to test.
The Realtime Database may meet most of your needs though. It is the current version of what the Firestore is.
Update to this question:
Firestore SDK for Unity is currently in alpha (since 5th of march).
Link to the Github discussion.
In case it is changed here is the announcement:
As some of you have noticed, yesterday we released Firebase Unity SDK
6.12.0 which includes an alpha release of Firestore. This release is experimental:
We expect there will be breaking changes to the API Some features are
missing (for example: IN queries) You may uncover issues for which we
can't supply an immediate resolution Please try it out and let us know
how it goes. Read more about how to get this release in Add Firebase
to your Unity project.
We're very excited to (finally) get this in your hands and hear how it
works for you!
I love Firebase (/Firestore) and we use it all the time for major projects for clients.
But Firebase is "totally useless" for certain things...
Just forget about it for "multiplayer games with Unity."
Suggest you
Familiarize yourself with Playfab, do some small demos.
Don't forget that Unity itself offers multiplayer inherently built-in to Unity. (Indeed, it is of course a major part of Unity, it is a mammoth achievement.) Unity multiplayer is not perfect but you should certainly familiarize yourself with it totally, including the sundry cloud features, before exploring other paths.
Firebase is useless for Unity mp games, set it aside.
how I should approach making a unity mobile game that spans across iOS/Android
There are 100,000 ? such games which are done, naturally, just with Unity's own MP systems.
How else? As I say, once you are very familiar with that, also explore Playfab.

Libgdx game using Google Play Game Services on iOS and Android

I am creating a game using Libgdx and would like to integrate player, Leaderboard, high score on both iOS and Android devices. Ideally I would use Google Play Game Services but I could be convinced to use other technologies (like Parse).
There are tutorials to use Google Play services for Android devices: (http://theinvader360.blogspot.co.uk/2013/10/google-play-game-services-tutorial-example.html). But as far as I understand, this will not work for iOS devices (according to this:https://developers.google.com/games/services/integration/)
There are also tutorials to do so on iOS devices, using RoboVM: http://www.badlogicgames.com/forum/viewtopic.php?f=11&t=11424 but as far as I understand this will only work for iOS devices.
Since one of libgdx benefit is to write once but to run cross platforms,
my Question is the following:
How do I integrate with Google Play Game Services and run on iOS and Android.
It seems to me that the answer is to use the REST API (https://developers.google.com/games/services/web/api/) since this is technologically agnostic, but that means that I then need to implement quite a few things (login, notifications...)
I cannot imagine I am the first one to be facing this but it seems there are no examples available on the subject.
You don't have to use the REST API for this, even though that would certainly be an option.
The easier way is the use of platform specific code via interfacing.
Everything that is not directly integrated into libGDX won't work via "write once, run everywhere". This also applies to achievements, leaderboards and other things that Google Play Game Services offer. However, you are lucky that GPGS unites these features within one framework for at least Android, iOS and Web.
So what you would do, is adding the platform specific library dependencies to the platform specific projects you have generated. Then implement a generic interface, e. g. AchievementHandler with methods like unlockAchievement(String achievementId).
Then you would implement this interface via AndroidAchievementHandler that makes use of GPGS. The same will work with an IOSAchievementHandler.
In your core code, you will only use AchievementHandler and each platform will use its own implementation of this.

Google Play Game Services on a desktop game

I created a game in Java using Libgdx framework. Now I would like to know if it is possible to use Google Play Game Services in a desktop (java/.jar) game, or is it meant just for mobile devices?
As I am faced with the same question, I do not have a complete answer, but I think the short answer is yes, you can.
But you'll have to use the rest API instead of a nice java API, and some features are not available (such as the real-time online multiplayer support). You can see the reference here:
https://developers.google.com/games/services/web/api/index
As you can see, the major stuff like anchievements, leaderboards, and turn-based multiplayer services should be available (and you can even see there is stuff like joining rooms, but they are marked as "For internal use by the Games SDK only."), so I guess the REST API covers the major needs.
I have yet to test this on a desktop aplication and for sure you'll want some support library to help with the quirks of the HTTP-REST protocol, but I think it is feasible.
EDIT: Since this API is meant for the web, you may still need some kind of initial JavaScript interaction with the user (using google's JavaScript libraries) in order to authenticate the user first, but the rest of the interaction can be done "server-side" (and in any language you want). Read this for more details:
https://developers.google.com/games/services/web/serverlogin

Game server infrastructure for two players turn based board phone game

I tried to do my homework in this topic, but unfortunately with no luck, at least the picture not as clear I can start digging deeper or registering for a service etc.
What I am trying to implement: Simple 2 player board game, with CPU or internet opponent. The game is a phone game for all the 3 platforms iPhone, Android, WP7. (please do not harm WP7:-)
One option is go to some cloud (Azure, Amazon) and implement some game server. Sounds reinventing the wheel, but maybe there is an open source implementation. (only ASP.NET because my skills)
My current understanding my other and preferable option is using a service like Openfeint or ScoreLoop (bought (and eaten?) by RIM :-().
Unfortunately it is not clear for me (after reading the two FAQs) if besides of high score lists and maintaining statistics is any of game server is capable to conducting a board game between two authenticated player?
Could anyone point me where to start? (or suggest me a WP7 sample or marketplace game which uses a public game server for two player board game internet gameplay?)
Thx for answers
I also wanted to develop a multiplayer game and examined Openfeint, Scoreloop and Skiller. I ended up using Skiller as my multiplayer engine, since it was the only one that supports multiplayer and it works great.
Hope i helped.
Look at Azure for social games toolkit https://github.com/WindowsAzure-Toolkits/wa-toolkit-games
There as some areas of concern outside of the logic of just the game.
User Identity and Authorizing. (Game Center)
Game Data Persistence and Storage. (Cloud Database like AWS DynamoDB)
Game Match Queuing. (AWS SQS) Don't attempt this with a database using pessimistic concurrency.
Notifications of Match Players are ready for sleeping clients. (AWS SNS to APNS/Google to Endpoint(this mobile device))
Polling or Notification for Next Move. (AWS SQS or SNS) I wouldn't poll a Database for this.
Those services are just example recommendations. I don't work for Amazon, they are the easiest and most affordable to get up and running but there maybe better services out there. I found them with your same requirements in mind. I don't want to commit to 100 bux plus a month if my idea is a boon-dongle.
You could do all that listed above to start out for under $15 a month using cloud services. The best thing is if your idea takes off you simply bump up the thresholds on those with a flick of a switch from an admin portal. Some automatically scale.

How to start developing a social multi-player game on android

I'd be very keen to know how to develop a social game on android which includes 2 or more than 2 players. Let's say chess..for example or scrabble.How to begin? Are there any online resources or tutorials available on this subject?
The best resource out there is Google's Android developer guide: http://developer.android.com/guide/topics/ui/index.html
This not only gives you an explanation for all the major classes of the android sdk, it also gives you tutorials into things such as reading from contacts (specifically the "content providers" section).
As for sockets, I don't think there is anything special with Android's Java implementation for that, you should just be able to find any Java socket tutorial and use that.
I think this is a good article on writing Android games: Getting Started in Android Game Development
Yup Skiller is a really cool social and multiplayer SDK. (you can download from here: http://www.skiller-games.com)
Also, you will need some kind of framework or a graphic environment, i recommend AndEngine which works for me, but you can use box2D (which rumor has it that it is being used in Angry Birds).
Good luck.
From my experience there are a couple of social SDKs. One that worked for me is Skiller multiplayer SDK. They take care of the multiplayer protocol and server side so you dont need to mess with this part and only handle the game logic. Currently they support only 2 player multiplayer games which was fine for my game and probably will satisfy your chess game but they said that they will release massive multiplayer SDK soon as well.
Good luck with the game.

Categories

Resources