Hi Didier, thanks for your reply.

I forgot to mention that my game client is a stand-alone application
(desktop & mobile), not a regular web page, so I'm quite restricted in
term of "web" capabilities on the client side. Right now, all I can do
is GET & POST http requests, and possibly provide additional header
data.

2) Does the login service allow me to register new accounts and
authenticate users via my own user interface, or is it only possible
to do so by redirecting to an existing google web page for login/
account creation? What I'm looking for is a user management framework/
API that allows me to check if a user exists, if he's signed in,
create a new account, and sign in an existing account. Is that what
google login service can provide? What do they mean by "accounts on
your own Google Apps domains"?

3) From the doc I gather that one needs some functionalities provided
by JavaScript to properly/easily use this feature. Is it possible to
implement this without too much troubles if all I have at my disposal
is access to raw socket functionalities? My game is not going to be
very fast paced, and I think I don't need to poll for new events
faster than every 5 or 10 seconds. Would it still be beneficial to use
the Channel API?

Thanks for your help,

On Jan 18, 7:07 pm, Didier Durand <durand.did...@gmail.com> wrote:
> Hi,
>
> 1) You are right: storing in ds is required in your case
>
> 2) You could use the Google Login service: very secured and will take
> care of login persistence for you
> Seehttp://code.google.com/appengine/docs/java/users/
>
> 3) Channel API is done to meet you needs (even at very high rate of
> polling): seehttp://code.google.com/appengine/docs/java/channel/overview.html
>
> regards
>
> didier
>
> On Jan 17, 9:32 pm, Spk <william.rava...@googlemail.com> wrote:
>
>
>
>
>
>
>
> > Hi folks!
>
> > I just got started with Google App engine (using Java) and it's great!
> > I'm trying to develop a backend for an asynchronous turn-based game
> > I'm working on in my spare time. My plan was to develop a REST-ish API
> > that my game client would consume & poll periodically for updates. You
> > can picture the game as a kind of chess game with only one multi-
> > purpose pawn for each player (their character). Each player takes a
> > turn to make his move (attack, defense, etc), until one of the
> > characters dies. Pretty basic.
>
> > Now it's the first time I'm writing a backend on top of being a google
> > app engine newbie, so there are a few areas I'm still a bit uncertain
> > about. I would really appreciate if some of you knowledgeable folks
> > could spare a bit of your time to give some advices on how to best
> > design this server. I'm using Objectify and the basic javax.servlet
> > framework to receive and submit requests.
>
> > Here are my questions:
> > 1) A game between two players can theoretically last days. From what I
> > understand, I should store each player's move in the datastore,
> > correct? My initial reflex was to just keep the game session data in
> > the memcache but then I read that it was not a correct use-case, as it
> > the oldest cached elements can be removed from the cache at any time
> > to make room for newer data in case it's running low on memory. Also,
> > I should not simply be storing this data in my "java
> > objects" (instance memory) as idle instances of my app can be killed
> > at any time by google app engine to free up resources, is that
> > correct?
> > 2) I'm going to need some way to identify individual users and save
> > persistent progress stats (level, experience, etc). I was thinking of
> > rolling a simple User class and prompt new players to create an
> > account with username & password. What is the best way of storing that
> > sensitive data (mp5 hash I suppose?). Also, how can I ensure that a
> > move request comes from the desired user? Do I need to use some kind
> > of secret key delivered to the user upon login and that would have to
> > be included in all subsequent requests? Do I just check the requester
> > IP? If so, how do you handle people behind corporate routers seen as a
> > single IP by the outside world?
> > 3) Is it ok to have the game client poll for game status update every
> > 5 seconds? Data sent back by the server would, for instance, include
> > the most recent move of the other player and manage player turn
> > assignment.
>
> > Thanks, I'll probably have more questions later! :)

-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine for Java" group.
To post to this group, send email to google-appengine-java@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine-java+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine-java?hl=en.

Reply via email to