Screenshot Saturday

Good week!  Lots of nerdy stuff fixed and resolved.  Here’s the picture and more details in extremely nerdy speak below.

The biggest things that got done this week are :

  • applet -> javascript -> applet communications are now working.  Which is pretty awesome.  The biggest challenge was that sending outbound communications need to be triggered from a seperate thread to prevent the JVM from stopping and waiting for a response and that Inbound connections needed a custom version of appletGameContainer that exposes the StaeBasedGame object (more details on all of that can be found here).
  • More per puzzle gameboard abstraction, so now the gameboard knows what things are where on the board, this made implementing a board rendering based on the Y coordinates a snap, so things now appear in front of the things they need to.
  • The beginnings of a more robust image/particle manager system.
  • A passable Level Manifest.  A game Level can now be passed between the different Game States and (eventually) populated from the database via JSON jquery calls.

The biggest problem that popped up has definatly been the particle systems.  The slick ParticleIO.load(xmlfile) works great locally however on a deployed Jar it really grinds things to a halt.  This lead me down the path of trying .duplicate() on a set of master particles.. to no avail.. I also tried just loading them all at startup into a great big MagicBoltBucket… that worked but the applet startup went to ~2min  …

What I’m winding up doing (still in the process of) is a) have an image manager that loads all the images needed ONE time at init and passes them out as needed.   b) a great big bucket of pre-made Magic bolts that I can take and put from.   c) Create all the particle emitters programatically.

Not entirely done with that, but the intial tests have the Initial filling of the BoltBucket down to about 2 seconds for 120 bolts.  Eventually There’ll be about 400 bolts in the bucket at level init.