Troubleshooting

= The game does not work on the Game Gardens server =

Check that the server-side &lt;game&gt;.xml file is correct
A common mistake when changing the game XML file is to forget to upload the new version on the server. This is needed whenever new options are added, and in case the controller or the manager class change.

Ant clean and recompile
In case the versions of your client and server are not inline, the following exception may occur:

Caused by: java.io.EOFException at java.io.DataInputStream.readFully(DataInputStream.java:178) at java.io.DataInputStream.readUTF(DataInputStream.java:565) at java.io.DataInputStream.readUTF(DataInputStream.java:522)I can take a quick peek. at com.threerings.io.ObjectInputStream.readObject(ObjectInputStream.java:110) at com.threerings.io.FieldMarshaller$1.readField(FieldMarshaller.java:134) at com.threerings.io.Streamer.readObject(Streamer.java:414) ... 13 more

Check that you have the latest libraries
First make sure that you have uploaded the latest libraries. You can do so by downloading again the GameGardens ZIP files and comparing the dates and sizes with the previous version. Same file sizes means that the file probably hasn't changed. Alas, the libraries are not tagged with a version number. Before uploading, remove the old libraries from the "lib" directory and do a "ant clear" to make sure nothing from the old distribution is left over. Then recompile and recheck your game works on your local computer.

Make sure the game has been taken into account
If your game is popular and people are playing it while you download the new jar distribution, it may not be (immediately) taken into account. One way to see if the new jar has been taken into account is to take care about the time needed until the "create table" button comes up when you first login after the upload. If it takes more time than ususal, you are currently downloading your jar back to your computer, and you will use the new file. One way to avoid problems is to wait that the game page displays ""

Check serialization
Check that all streamable class have a public no-args contructor, otherwise they cannot be streamed between client and server. This applies to the classes of each non-transient field of the game object, and the classes of the objects passed to the manager through the 'invoke' method.