Genau Project Darkstar hies es vorher!
Zu RedDwarf:
Es hat schon einige Besondernheiten, Supporter-Klassen welche es einfacher machen Gameserver zu entwickeln aber außer für Browsergames finde ich JEE generell eine ungünstige Ausgangsbasis für einen Gameserver.
Ansonsten gibt es einige alternative Möglichkeiten welche man nutzen kann:
Als Erstes könnte man ein bestehendes Gamesever Emulation Projekt aufgreifen (z.B. l2j oder Sphere / RunUO oder ähnliches) und an seine Bedürfnisse anpassen. Der Vorteil: Ein Großteil des Basiszeugs wie NPC- oder Playerhandling ist schon fertig. Nachteil: Oft ist das Verhalten sehr spezifisch programmiert.
Dann hatte ich selber mal ein Projekt angefangen. Ein Framework speziell zur Entwicklung von MMO-Gameservern mit entsprechenden Performance-technischen Aspekten. Die Entwicklung ist aber derzeit aus Zeitmangel und der Aufteilung des großen Projektes in viele kleine Unter- und Seitenprojekte etwas ins Stocken gekommen.
Dann gibt es noch Frameworks in verschiedensten Programmiersprachen, alle mehr oder weniger für MMO vorbereitet bzw mehr oder weniger aktiv gepflegt und vollständig:
-
GNE -- Game Networking Engine
-
callisto-framework - online game server engine - Google Project Hosting
-
Home - UL2 - MMO server framework
-
oregoncore - Oregon Core Open Source MMO Framework - Google Project Hosting
-
TrinityCore MMoRPG Framework
Dann gibt es auch noch kommerzielle Projekte:
-
SmartFoxServer: massive multiplayer game server for Flash, Unity 3D, Silverlight, iPhone games, MMO, virtual worlds and communities (hier gibt es auch eine Community Edition)
-
Cloud Network Engine, Socket-Server, MMO Server for Games using Unity 3D, iPhone + iPad, Android, Flash, HTML 5 | Exit Games (auch hier gibt es eine kostenlose Version bis 100 Spieler oder so kostenlos)
uvm
Als letzte Möglichkeit bleibt natürlich noch das Selberbauen. Hier sind allerdings einige Dinge zu beachten. Man sollte von Anfang an auf Clustering achten um saubere Skalierbarkeit zu bekommen. Man sollte weiterhin auf sauberes Design achten, auf sauberes Threadhandling (bei letzten beiden Sachen ist l2j nicht gerade ein Glazlicht). Aber auch Dinge wie Knownlists, Geodaten, Zonehandling und Ähnliches müssen mit sauberen (teils auch kompromissbelasteten) Algorithmen implementiert werden. Hier sind fertige Frameworks meist schon vorbereitet - interessanterweise waren gerade solche Dinge in Darkstar nur gaaaaanz rudimentär unterstützt und man hätte 90% selber erarbeiten müssen.
Für mich war Project Darkstar nur ein Application Server mit alternativem Einsprungspunkt und der Behauptung tolles zu vollbringen. Unterstützung in Richtung Gameserver gab es nur sehr mager. Ob sich dies mittlerweile geändert hat (ist bestimmt schon 3 Jahre her der letzte tiefe Blick ins Core) kann ich dir allerdings nicht sagen.
Vom SmartFox Server hört man allerdings recht viel Gutes, angeschaut hab ich mir den bisher aber nur oberflächlich, da ich beruflich in einem anderen Bereich angekommen bin
Ich hoffe das reicht ein wenig als Ansatzpunkt. Bei tieferen Fragen kannst du gerne auf mich zurückkommen.