A realtime multiplayer game using XMPP on Google App Engine? - google-app-engine

Theoretically speaking, is such a thing possible?
I know that Google App Engine can't make socket connections, so I figured using XMPP to send messages to the clients would work. Is XMPP on Google App engine low-latency enough to work for a realtime game?
I was looking into multiplayer game servers like Smartfox and the like, but I figured that the cost of the software combined with running it on my own server would be too much of a hassle, so I figured that running it on Google's hardware would be a good idea.
If you have any other suggestions on realtime multiplayer game servers, I'd love to hear them.

As npdoty points out, we've just announced the Channel API, which is intended for exactly this use-case. It's not released yet, but a preliminary version is available in the latest SDK for you to experiment with. There's no documentation yet, but you can explore the Trivia Quiz sample app to see how it works.

Related

Google Cloud Appengine Flex websockets support

Is there a way for deploying websockets server on Google Cloud Appengine?
No, you cannot. There is an open ticket for this feature, it's been open since 2009. There is maybe some light at the end of the tunnel though, as they've started to make an alpha version of this available.
There was a way for doing it for non secure sockets only(ws), but seems they are no longer support it. Lately they also removed samples from docs in this commit.
Not sure if there are plans for supporting websockets based solutions on appengine in future, so for deploying such a thing on Google Cloud you probably should use Compute Engine, atleast that's the way I go.

Which is more cost-effective for a mobile backend: Parse or Google Cloud endpoints?

So me and my partner are working on a mobile app.
And I'be been wondering which mobile backend is a better solution. The problem I see with Parse is that when there are high amounts of traffic in a short period of time, we would need to manually adjust the number of requests per second constantly. And it seems really expensive.
Google Cloud endpoint seems like a good solution, but the api would have to be custom coded and I'm not sure how much it would actually cost.
Then there is Kinver and other services. I'm not sure what code they use, but iv'e heard native code is better than javascript when it comes to making more reliable mobile apps.
As you can see here, Google Cloud Endpoints are completely free. You only will need to pay for your back-end in Google App Engine or in Compute Engine.
But definitely, the prices will be lower than those offered in Parse, except the "free" tier. But once you would need more than 30 request/sec (which is obviously not such a high limit), the prices go up quickly.
Another advantage is that in the Google Cloud you may code your back-end in Java, Python, PHP or Go, or in other languages if you go for the managed VMs option.
Lastly, you would have many other products to use if you need them in the future.

Web-based Multiplayer Board/Card game toolkit

As a personal hobby, I would like to program a web-based card game with a few tokens and write an AI for it. I do not want to spend time and effort on standard elements such as maintaining a list of games and coordinating who's playing who, or even writing a login system (ideally I'd like to use Google accounts).
My choice of programming language is flexible, but would prefer something I could run on Google app engine.
I know Google Play Games provides some of the APIs but I was hoping for something more comprehensive. Even better if it works with Google Play Games.
Can you recommend toolkits that provide all or most of this functionality?
Board Game Arena supplies the community and lobby for your online board game, and also provides hosting and the community of players, and helps deal with licensing. The big downside is that you must comply with their system, and must write in PHP, and they don't work with Google accounts.
That said, it is a solution for the problem presented in the question, at least in some cases.
Though I am sure this is a little less fully formed than you were hoping, I would propose WT Toolkit, which allows for javascript-less C++ web applications.
Does it support a login system? Yes it does! supporting both google and facebook, with an easy path to integrationg other OAuth methods (hotmail for example)
List of games? std::vector
List of current people playing others? std::unordered_map
Games are closer to native apps than they are to web pages; a framework that allows you to leverage typical game design methods and exposed WebGL through a unified interface, like WT does, might make it easier for you by allowing you to focus on the GAME, not the WEB.
Maybe not complete answer but at least it didn't belong to comments. (Doesn't have to be correct)
On Google App engine things that will help:
Users service Will help you with authentication
Oauth on Appengine
The Channel API can help you with realtime sync between players and server
The endpoint's will help you with endpoints for devices if needed
XMPP service offered for sending and receiving chat messages
The above will get you started with a simple game. Recommend to look at the channel api for the tic tak toe game.
I hope it helps

Where can I operate a PokerBot (and other games) legitimately?

I'd like to build a PokerBot (and a few other games) for the intellectual challenge. However, I only want to do this in an ethical and legal way.
So, I need a game server where all players and the game operator know that I'm running a pokerbot. Where that's not cheating but the norm. Perhaps even where being a human is against the rules.
(I'd also like to build PlayerBots for other games, not just poker.)
If one doesn't exist already, anyone up for doing a collaborative project to build such an environment?
UPDATE:
I would say that an open API is the ultimate sign of a server open to bots.
No API = Bots not welcome.
Also, I'm happy to play for points rather than real money.
You can check the Coding the Wheel series How I Built a Working Poker Bot to see if he mentions any sites where bots aren't frowned upon, but I'm pretty sure any of the sites that let you play for money will ban you for running a bot.
If you just want to do it for the learning experience or the challenge, try one of the free game sites like Yahoo! Games to see if bots are against their terms of service.
Poker academy has a bot API, and they run an online service for bots. It's commercial software though.

Web Scraping with Google App Engine

I am trying to scrape some website and republish the data as a RSS feed. How hard is this to setup with Google App Engine? Disadvantages and Advantages using GAE. Any recommendations and guidelines greatly appreciated!
Google AppEngine offers much more functionality (and complexity) than you will need if truly all you will want to do is republish some structured data as RSS.
Personally, I would use something like Yahoo pipes for a task like this.
That being said... if you want/need to get your feet wet with GAE, go for it!
Working with Google App Engine is pretty straight forward. I would recommend going through the Getting Started guide. It's short and simple and touches on essential GAE topics. There are more pros and cons than I will list here.
Pros:
In general, App Engine is designed for high traffic web applications that need to scale. Furthermore, it is designed from a programmer's perspective. Much of the scalability issues (database optimization, server administration, etc) are dealt with by Google. Having said that, I find it to be a nice platform. It is still being actively developed by Google engineers, and scheduling of tasks (a feature that has been long requested) is in the current road map.
Cons:
Perhaps the biggest downside right now is again the lack of official scheduling support and the quota limits currently set for free accounts. However you can't complain much if its free. Currently it only supports Python as a programming interface (although a new language [Java I predict] is coming soon). Furthermore, Python 2.6 (and 3.0 for that matter) are not yet supported. In addition, Django 1.0 is not officially supported in App Engine (although you can package Django 1.0 with your application).
Harder than it would be in most other technologies.
GAE can sort of do scheduled batch stuff like this now, but it's really not intended for that type of thing. Pick pretty much any other language and platform for this particular task, and you'll make your life a lot easier.
I think BeautifulSoup could run on GAE, so all your scraping needs are handled :D
Also, GAE has a geturl thingy. The only problem I think you might have is not having enough time to get the data (30 secs limitation).
I am working on a same project and I've decided that it's easier to prepare the data on another server and push them to GAE.
You might also want to look into Yahoo! Query Language (YQL)

Resources