きれいで見やすいソースだと思います。
Runnableをインプリメントって昔の手法のようなきがしますが、
ゲームでは普通なんですかね。

ゲーム作ってないJava使いの戯言なので、気にしないでください。

あと、マップデータの保存方法が面白かったです。
これなら、エンコーダ、デコーダが必要ないですね。
こんな発想は私にはありません。

さらにがんばってください。