Ich verstehe nicht ,warum multithreading+fehleranfällig in einem Satz so häufig hier genannt werden. Mehrere Threads bringen mehr Komplexität, sprich jemand der denkt es gäbe nur synchronized und wait und notify, der sollte in der tat die Finger von Multithreading lassen und lieber eine sicherere Variante mit einem Thread schreiben. Java ist eine der wenigen Sprachen mit solch umfangreichen Multithreading Optionen und diese zu ignorieren oder nur für seltene Fälle zu gebrauchen, halte ich für falsch. Wenn man dann noch viel Ahnung von so exotischen Saachen wie "Lock-Free-Programming" hat, kann man wirklich parallel verarbeiten lassen.
Außerdem stimme ich dir zu, dass es bei simplen Spielen nicht nötig ist, aber dennoch machen mehrere Threads durchaus Sinn. Die JME z.B. trennt Physik und Grafik, zwar gibt es auch Singlethread-Mode, dieser wird auch laut Seite glaub ich empfohlen, aber das heißt ja nichts.
Nun zu deinem Minecraft-Beispiel: Ich nehme an, du hast dir das Spiel genaustens unter die Lupe genommen, um das zu behaupten (Vermutlcih, weil du grad auch sowas ähnlcihes versuchst, oder ? Ich meine mich da an einen Thread zu errinnern). Jedoch weiß ich nicht inwiefern das als Beweiß gesehen werden kann, dass ein Thread ausreicht. Ich persönlich habe nur Spielererfahrung und empfinde das Spiel an vielen Stellen rucklig und unprofessionell. Woran das liegt, traue ich mich jetzt hier nicht zu mutmaßen. Es gibt aber ebenfalls eine JME-Version (Ganz frühe Alpha^^), genannt Mythruna, welche dieses Spielprinzip sehr viel schöner und ruckelfreier umsetzt. Ich vermute mal, das lieght auch daran, dass Minecraft eine komplette Do-It-Yourself-Produktion ist und dadruch natürlich nichtmal ansatzweise derart viel Erfahrung drinsteckt, wie bei JME.
Zum Schluss noch eine SAche: Threads allein würde ich auch garnicht mehr verwenden. Die Handhabung erfordert viel Boilerplate-Code. Mit einem ExecutorService werden die Thread sauber gemanaged und bei kleinen kurzlebigen Tasks bringt das viel Gewinn.
Gruß,
Chris