Frage

Projekt Darkstar war das Thema des Monats JavaSIG Treffen gestern Abend in den Google-Büros in NYC.Für diejenigen, die nicht wissen (wahrscheinlich alle), ist Project Darkstar ein Rahmen für massiv Multiplayer -Online -Spiele, die versucht, sich um all das "harte Zeug" zu kümmern. Die Grundidee ist, dass Sie Ihre Spielserverlogik so schreiben, dass alle Vorgänge in winzige Aufgaben unterteilt werden.Sie übergeben diese Aufgaben an das Project Darkstar-Framework, das sich um die Verteilung an einen bestimmten Knoten im Cluster, etwaige Parallelitätsprobleme und schließlich um die Beibehaltung der Daten kümmert.

Anscheinend stellt dies bei Videospielen ein ganz anderes Problem dar als bei Unternehmensanwendungen.Jim Waldo, der den Vortrag hielt, behauptet, dass MMO-Spiele ein DB-Lese-/Schreibverhältnis von 50/50 haben, wohingegen Unternehmensanwendungen eher 90 % lesen und 10 % schreiben.Er behauptet auch, dass die meisten existierenden MMOs alles ausschließlich im Speicher behalten und nur alle sechs Stunden davon in eine Datenbank ablegen.Das heißt, wenn ein Server ausfällt, verlieren Sie die gesamte Arbeit seit dem letzten DB-Dump.

Nun, das Projekt selbst klingt wirklich cool, aber ich glaube nicht, dass die Industrie es akzeptieren wird.Zuerst müssen Sie Ihren Servercode in Java schreiben.Der Client-Code kann in beliebiger Sprache geschrieben werden (Jim behauptet, ActionScript 3 sei am beliebtesten, gefolgt von C++), aber der Server-Code muss Java sein.Hört sich für mich gut an, aber ich habe wirklich den Eindruck, dass jeder in der Spielebranche Java hasst.

Zweitens scheinen die Leute in der Spielebranche im Gegensatz zu anderen Branchen, in denen Entwickler lieber vorhandene Frameworks und Bibliotheken verwenden, gerne alles selbst zu schreiben.Darüber hinaus schreiben sie gerne alles für jedes neue Spiel, das sie produzieren, neu.Die Dinge beginnen sich zu ändern, wenn Entwickler Havok für die Physik, Unreal Engine 3 als Plattform usw. verwenden, aber größtenteils sieht es so aus, als ob alles immer noch proprietär ist.

Verschwenden die Jungs von Project Darkstar also nur ihre Zeit?Kann ein solches allgemeines Framework wirklich für komplexe Spiele mit der erforderlichen Leistung funktionieren?Selbst wenn es funktioniert, sind Spielefirmen bereit, es zu nutzen?

War es hilfreich?

Lösung

Bearbeiten:Dies wurde geschrieben, bevor Oracle Sun kaufte und einen Amoklauf startete, um alles zu töten, was ihnen nicht eine Milliarde Dollar pro Tag einbringt.Siehe die Kommentare für eine OSS-Gabel. Ich bleibe immer noch bei meiner Meinung, dass solche Dinge (MMO Middleware) realistisch sind, man braucht nur ein Unternehmen, das nicht dahintersteckt.

Der Markt wird zwar von wenigen großen Spielen dominiert, aber das bedeutet nicht, dass es nicht viel Platz für weitere Nischenspiele gibt.Seien wir ehrlich:Wenn Sie mehr als 100.000 Spieler erreichen möchten, müssen Sie zumindest für den kritischen Kern Ihren eigenen Technologie-Stack aufbauen.Das hat CCP für EVE Online getan (StacklessIO), das hat Blizzard für World of Warcraft getan (obwohl sie viele Bibliotheken von Drittanbietern verwenden), das ist, was Mythic für Warhammer Online getan hat (obwohl sie auf Gamebryo basieren).

Wenn Sie jedoch darauf abzielen, ein kleines Nischen-MMO zu sein (wie die Dutzenden Free-to-Play-/Itemshop-MMOs), dann ist es wahnsinnig schwer, die Netzwerk-Sachen richtig hinzubekommen, die Datenkonsistenz ist noch schwieriger und die Skalierbarkeit ist das größte Problem. tch.

Aber die Spieletechnologie ist nicht Ihr einziges Problem – Sie müssen sich auch mit der Abrechnung befassen.Nur Kreditkarte?Dann viel Spaß beim Verkaufen in Deutschland, die Leute dort wollen ELV.Hier benötigen Sie einen zuverlässigen Abrechnungsanbieter, müssen aber dennoch die Abrechnungsanwendung mit Ihren Konten verknüpfen, um sicherzustellen, dass Konten gesperrt/reaktiviert werden, wenn die Abrechnung fehlschlägt.

Es gibt einige Unternehmen, die bereits „MMO Infratructure Services“ anbieten (d. h. Das EEIS von Arvato), aber das Fazit lautet:Sachen wie „Project Darkstar“ sind realistisch, aber die Annahme, dass man ein Multi-Milliarden-MMO vollständig auf einem Drittanbieter-Stack aufbauen kann, ist optimistisch, möglicherweise idealistisch.

Aber andererseits ist es noch dümmer, die gesamte Technologie komplett zu erfinden – verwenden Sie das Zeug von Drittanbietern, das Sie benötigen (z. B.Abrechnung, Schriftwiedergabe, Audioausgabe...), aber Schreiben Sie die Dinge, die Ihr Geschäft wirklich ausmachen oder zerstören (d. h.Netzwerkstack, Benutzeroberfläche usw.) selbst erstellen.(Notiz:Jeffs Beitrag könnte sein ein bisschen fehlerhaft, aber die Gesamtrichtung ist meiner Meinung nach korrekt.)

Nachtrag:Darüber hinaus werden in der Spielebranche häufig Engines lizenziert und wiederverwendet.Die bekanntesten Spiel-Engines sind die Unwirkliche Engine, Quell-Engine Und id Tech, die Dutzende, wenn nicht Hunderte von Spielen befeuern.Es gibt jedoch einige (außerhalb der Branche) weniger bekannte Motoren.Es gibt Gamebryo, die Middleware hinter Spielen wie Civilization 4 und Fallout 3, gab es RenderWare Das ist mittlerweile nur noch EA-in-House, wird aber in Spielen wie Battlefield 2 oder Die Sims 3 verwendet.Es gibt die Open Source Ogre3d, das in verwendet wurde manche kommerziell Titel.Wenn Sie nur nach Sound suchen, gibt es Dinge wie FMOD oder wenn Sie Schriftarten rendern möchten, warum nicht geben? FreeType eine Drehung?

Was ich sage ist:Es gibt Engines/Middleware von Drittanbietern, und sie werden seit mehr als einem Jahrzehnt erfolgreich eingesetzt (ich weiß mit Sicherheit, dass die Wolfenstein Engine von id an andere Unternehmen lizenziert wurde, und das war 1992), sogar von großen Unternehmen in Millionenhöhe. Dollar-Titel.Das Wichtigste ist der Support, denn eine gute Engine ohne Hilfe im Falle eines Problems ist so gut wie wertlos oder zumindest sehr teuer, wenn der Entwickler seine Spielentwicklungszeit mit unnötigem Debuggen der Engine verbringen muss.

Wenn es den Darkstar-Leuten gelingt, den Support richtig hinzubekommen und zwei oder drei Titel mit höherem Bekanntheitsgrad herauszubringen, könnte es meiner Meinung nach gelingen, den MMO-Markt für viel mehr kleinere Entwickler und Indies zu öffnen.

Andere Tipps

Klingt für mich nach nutzloser Technik.Die MMO-Welt wird von einigen großen Spielefirmen kontrolliert, die bereits über ihre eigene Technologie verfügen.Entwickler von Indie-Spielen lieben es, MMOs zu entwickeln, und manchmal tun sie das auch, aber solche Spiele finden selten Anklang.Größere Unternehmen, die in die MMO-Welt einsteigen, würden wahrscheinlich „bewährte“ Technologien lizenzieren oder ihre eigene erweitern.

Spielefirmen verwenden von Spiel zu Spiel große Mengen an Code wieder.Die meisten/viele Spielefirmen haben ihre eigene Technologie intern entwickelt und nutzen sie für jedes Spiel, das sie produzieren.Gelegentlich ersetzen sie beispielsweise ihren Physikcode durch eine Physik-Engine eines Drittanbieters.Wenn ihre interne Codebasis (Spiel-Engine, Design-Tools, interne Pipeline) zu sehr altert oder unhandlich wird, wechseln sie möglicherweise zu einer der großen Spiele-Engines wie Unreal.Selbst dann werden weiterhin große Teile des Codes von Spiel zu Spiel wiederverwendet.

Soweit ich das beurteilen kann, verwenden Videospielunternehmen den Großteil ihres Codes nicht wieder, denn wenn sie es tun, bedeutet das, dass ihr neues Spiel nur eine Wiederholung eines alten ist.

Äh...Wenn Sie sich vielleicht auf den langen Schwanz der Videospielunternehmen beziehen.In einem Unternehmen, das eine Reihe erfolgreicher Spiele herausgebracht hat, gibt es normalerweise eine gewisse Wiederverwendung.Größere Hardwareänderungen können dazu führen, dass viel Arbeit verloren geht, aber das hängt wirklich vom Unternehmen ab.

Es klingt nach Spaß beim Entwerfen und Codieren, aber ich denke, dass es letztlich darauf ankommt nutzlose Abstraktionen (um Joel zu stehlen).

Es kommt sehr häufig vor, dass Spiele „Game-Engines“ wiederverwenden, auch solche von Drittanbietern.Das klingt nach einem weiteren Schritt in diese Richtung.

Ich denke, es ist eine großartige Sache.Entwickler müssen sich nicht um all diese Dinge kümmern, um die sich Project Darkstar kümmert, und es ist sehr einfach zu bedienen.Aber es geht nicht nur darum, es zum Laufen zu bringen und nicht alles über Internetkommunikation lernen zu müssen, sondern auch um die Leistung.Das Projekt Darkstar befindet sich seit über zwei Jahren in der Entwicklung und wird immer besser, schneller und robuster.

Ich denke, es wird schwierig und wahrscheinlich auch nicht die Zeit wert sein, diese Dinge zu schreiben, wenn man auf ein bestimmtes Spiel abzielt, wenn stattdessen Technologien wie diese verwendet werden können.Außerdem erhalten Sie während der Laufzeit nützliche Informationen darüber, wo in einer Anwendung eine Ursache für Verlangsamung oder Deadlocks vorliegt, sodass Sie das Problem beheben können.

Ich arbeite nicht in der Spielebranche, aber für mich hört es sich so an, als würde dies bei Videospielen das Gleiche bewirken wie die Quake- und Half-Life-Engines.Das heißt, sie werden das Interesse junger Entwickler für die Branche wecken und die Entwicklung von Indie-Spielen vorantreiben.

Soweit ich das beurteilen kann, verwenden Videospielunternehmen den Großteil ihres Codes nicht wieder, denn wenn sie es tun, bedeutet das, dass ihr neues Spiel nur eine Wiederholung eines alten ist.Jeder möchte eine coole neue Physik-Engine, bessere Grafiken und neue Spielmöglichkeiten.Die meisten Videospiel-Engines und Frameworks sind für ein bestimmtes Szenario konzipiert und daher nicht sehr flexibel auf andere Situationen anpassbar.

Vielleicht macht Darkstar es aber richtig, aber ich bezweifle es ein wenig, da eine Verallgemeinerung nur für bestimmte Dinge funktioniert.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top