I'm no expert on this subject at all. A quick Google search: http://www.google.com/search?q=socket+programming+games
Before you invest in this, however, you'll want to think about Nicolas's last email. I'm not familiar with OpenFire web server, but Nicolas is dead on if you are building a truly real-time game: don't use HTTP. On Mon, Mar 8, 2010 at 12:57 PM, Ahmed Khalifa <[email protected]> wrote: > thanks Ikai for the tip .. > can you illustrate more .. give me a start point .. example code or > any useful link?? > also, do you think openFire webserver can be useful in this case .. > best regards, > > On Mar 8, 10:11 pm, "Ikai L (Google)" <[email protected]> wrote: >> HTTP is just not a great protocol for real time games. Even with XMPP, >> there's a chance outgoing responses will be queued and delayed for a >> bit as capacity requires. >> >> If you want it to be truly real time, you'll have to develop your own >> server that is capable of maintaining an open socket connection. >> Trying to fit client/server communications in a real time game into >> the HTTP model is like trying to watch a movie by having your friend >> record it on his camera phone and MMSing it to you as quickly as >> possible. >> >> >> >> On Mon, Mar 8, 2010 at 9:08 AM, Ahmed Khalifa <[email protected]> wrote: >> > I have to tell you that i had to slow down the rate by which flash >> > sends requests to the server in order to give GAE some time to respond >> > which consequently kills the real-time game play intended .. >> > after all, even if GAE was not a good choice for a semi-real time game >> > can anyone please give me valid reasons for why to disregard GAE?? >> > many people are keeping telling me that but no one is giving me real >> > reasons for why .. plus, i have been really distracted by the amount >> > of suggestions that do not converge to on direction .. some are >> > suggesting using XMPP, others say long polling is the way, some say >> > GraniteDS is a valid option along with memcache .. I am really >> > confused about the decision to be taken .. >> > regards, >> > A. Khalifa >> >> > On Mar 8, 6:21 pm, Robert Lancer <[email protected]> wrote: >> >> Yeah, I certainly would not use GAE Java for anything that has to be >> >> semi real time. Have you checked out Red5.org or Web Orb at >> >> themidnightcoders.com? Those are designed to work directly with >> >> Flash. >> >> >> On Mar 8, 10:56 am, Ahmed Khalifa <[email protected]> wrote: >> >> >> > thanks a lot .. >> >> > however, i am still doubtful about the source of latency .. is it GAE >> >> > itself not supporting a certain feature that allows real-time response >> >> > or it is something that i lacked .. >> >> > thanks in advance .. >> >> >> > On Mar 4, 3:27 pm, Toby <[email protected]> wrote: >> >> >> > > Hi Ahmed, >> >> >> > > take a look at GraniteDS. It is a bit like blazeds with the ability to >> >> > > push and syncronize data between multiple clients. It uses a very >> >> > > efficient serialization and it runs on >> >> > > GAE:http://graniteds.blogspot.com/2009/04/graniteds-20-on-google-app-engi... >> >> > > on server side you just need to make sure that the datastore updates >> >> > > do not block your clients. I would suggest using memcache and to add >> >> > > datastore updates to the task queue. >> >> > > So when you receive a data change from a client you update the >> >> > > memcache value, you propagate the change to all clients and you put on >> >> > > the task queue a request for the data to be saved. This will be done >> >> > > asynchronously. >> >> >> > > Cheers, >> >> > > Toby >> >> >> > > On Mar 3, 5:47 am, nicolas melendez <[email protected]> wrote: >> >> >> > > > I want to do the same. Is there any good XMPP Java framework to >> >> > > > include in >> >> > > > my Applet? recomendations? >> >> > > > Thanks >> >> > > > NM >> >> >> > > > On Tue, Mar 2, 2010 at 11:31 PM, <[email protected]> wrote: >> >> > > > > Kaz, >> >> > > > > Not sure about the CPU (we are still at the proof of concept >> >> > > > > stage for >> >> > > > > using GAE). We are using the polling aspect since our business >> >> > > > > requires updates with 5-15 minutes. Its not very time intensive >> >> > > > > like a >> >> > > > > game would be. >> >> >> > > > > Good luck, >> >> >> > > > > Tim >> >> >> > > > > > Tim, >> >> >> > > > > > But isn't it so expensive to use the AMF/HTTP comet technique >> >> > > > > > on the >> >> > > > > > appengine? CPU usage can be extremely high. Or you have to use >> >> > > > > > AMF/ >> >> > > > > > HTTP polling which is not so responsive for gaming. >> >> >> > > > > > Thanks, >> >> >> > > > > > Kaz >> >> >> > > > > > On Mar 2, 7:43 pm, "[email protected]" >> >> > > > > > <[email protected]> >> >> > > > > > wrote: >> >> > > > > >> Take a look at GraniteDS or other AMF supporting tools. I am >> >> > > > > >> using >> >> > > > > >> GraniteDS to push data to a Flex client. >> >> > > > > >> It is fairly simple to setup so you can perform trsting and >> >> > > > > >> find the >> >> > > > > >> limitations which would impact your game. >> >> >> > > > > >> Tim >> >> >> > > > > >> Sent from my Verizon Wireless Phone >> >> >> > > > > >> ----- Reply message ----- >> >> > > > > >> From: "Jeff Schnitzer" <[email protected]> >> >> > > > > >> Date: Tue, Mar 2, 2010 3:50 AM >> >> > > > > >> Subject: [appengine-java] Flash arcade game GAE based >> >> > > > > >> To: <[email protected]> >> >> >> > > > > >> It would be extraordinarily difficult to use Appengine for >> >> > > > > >> this sort >> >> > > > > >> of project. You probably want a server framework that supports >> >> > > > > >> persistent connections and in-memory state that won't >> >> > > > > >> disappear when a >> >> > > > > >> memcache server is flushed. >> >> >> > > > > >> Here's a good starting point: >> >> > > > > >> http://en.wikipedia.org/wiki/List_of_game_engines >> >> >> > > > > >> Jeff >> >> >> > > > > >> On Sat, Feb 27, 2010 at 11:58 PM, Ahmed Khalifa >> >> > > > > >> <[email protected]> >> >> > > > > >> wrote: >> >> > > > > >> > hi all, >> >> > > > > >> > I am writing a multiplayer flash arcade game in actionscript >> >> > > > > >> > .. i have >> >> > > > > >> > discovered GAE recently and thought that it might be a very >> >> > > > > >> > good >> >> > > > > >> > choice for building and hosting my server .. >> >> > > > > >> > however, i realize that arcade games need an almost realtime >> >> > > > > >> > responsive capacity from the server .. besides the server >> >> > > > > >> > has to be >> >> > > > > >> > looping on receiving position object of Client A, storing it >> >> > > > > >> > in a DB, >> >> > > > > >> > Fetching Client B position object and sending it back .. >> >> > > > > >> > this will >> >> > > > > >> > result in a huge number of DB requests either storing, >> >> > > > > >> > fetching or >> >> > > > > >> > deleting which will quickly exhaust the CPU quota for the >> >> > > > > >> > application .. >> >> >> > > > > >> > So, I was wondering if any one had an idea or a reference to >> >> > > > > >> > come >> >> > > > > >> > around these two problems of real time response and CPU >> >> > > > > >> > exhaustion by >> >> > > > > >> > DB calls >> >> >> > > > > >> > best regards, >> >> > > > > >> > A. Khalifa >> >> >> > > > > >> > -- >> >> > > > > >> > 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 >> >> > > > > >> [email protected]. >> >> > > > > >> > To unsubscribe from this group, send email to >> >> > > > > >> [email protected]<google-appengine-java%2B >> >> > > > > >> [email protected]> >> >> > > > > . >> >> > > > > >> > For more options, visit this group >> >> > > > > >> athttp://groups.google.com/group/google-appengine-java?hl=en. >> >> >> > > > > >> -- >> >> > > > > >> 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 >> >> > > > > >> [email protected]. >> >> > > > > >> To unsubscribe from this group, send email to >> >> > > > > >> [email protected]<google-appengine-java%2B >> >> > > > > >> [email protected]> >> >> > > > > . >> >> > > > > >> For more options, visit this group >> >> > > > > >> athttp://groups.google.com/group/google-appengine-java?hl=en. >> >> >> > > > > > -- >> >> > > > > > 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 >> >> > > > > > [email protected]. >> >> > > > > > To unsubscribe from this group, send email to >> >> > > > > > [email protected]<google-appengine-java%2B >> >> > > > > > [email protected]> >> >> > > > > . >> >> > > > > > For more options, visit this group at >> >> > > > > >http://groups.google.com/group/google-appengine-java?hl=en. >> >> >> > > > > -- >> >> > > > > 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 >> >> > > > > [email protected]. >> >> > > > > To unsubscribe from this group, send email to >> >> > > > > [email protected]<google-appengine-java%2B >> >> > > > > [email protected]> >> >> > > > > . >> >> > > > > For more options, visit this group at >> >> > > > >http://groups.google.com/group/google-appengine-java?hl=en. >> >> > -- >> > 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 >> > [email protected]. >> > To unsubscribe from this group, send email to >> > [email protected]. >> > For more options, visit this group >> > athttp://groups.google.com/group/google-appengine-java?hl=en. >> >> -- >> Ikai Lan >> Developer Programs Engineer, Google App >> Enginehttp://googleappengine.blogspot.com|http://twitter.com/app_engine > > -- > 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 [email protected]. > To unsubscribe from this group, send email to > [email protected]. > For more options, visit this group at > http://groups.google.com/group/google-appengine-java?hl=en. > > -- Ikai Lan Developer Programs Engineer, Google App Engine http://googleappengine.blogspot.com | http://twitter.com/app_engine -- 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 [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en.
