Yeah, it’s the usual j2d quirky performance issues. One of these days they might actually write a backend that works reliably, but until then the dual-url solution is the best I can do (the OpenGL backend doesn’t even work on this machine!).
[quote]I think you are using google app engine to deliver the game, am I right? If not, ignore the following questions.
How are you delivering the game resources, jar, and other files. Are they static resources (which means that everytime they change you have to redeploy the application) or do you upload them to the application and store them in the datastore?
[/quote]
Yup, it’s GAE. The applet is built into a single jar and then copied into the web project, then uploaded to GAE as a static resource. I had hoped to just have the applet hosted on my regular web server (www.triangularpixels.com) and have the applet html reference it (from albion.triangularpixels.com). However it seems that the applet sandbox only allows you to communicate with the exact server you downloaded from, so the applet has to be served from the albion subdomain.
Obviously that could all be avoided if you signed your applet.
[quote]How does the 30 second limit per request work? does it counts the whole time of the request or only the time it takes to process, ignoring the network transfer time.
[/quote]
It only counts the processing time, not the transfer time.
[quote]What is your experience with the time to start of the application? Do you have enough traffic to keep at least one VM always on, or sometimes the first user to make a request receives an error if there are no VM on, and it takes more than 30 seconds to start?
[/quote]
Users are really, really low now so most people will end up starting a new VM (which is why the applet page usually takes a while to load). VM startup time seems to add somewhere between 1s and 4s.
GAE is… different. It’s very easy to get started and set things up but I’m still having difficulty mentally adjusting to the way it wants you to organise and store data. I suspect I’m writing my servlets in a very naive way right now, so my logs are full of ‘request took a long time’ warnings (anything over 1s it seems). I’m also not using any of the fancy stuff (like the memory cache) which would probably help matters. I’d certainly recommend giving it a try, as the barrier to entry is so low.