Also, wie erstellt man ein eigenes MMORPG?
Die kurze Antwort: GARNICHT
Nun die lange Variante:
Ein MMORPG ist wie der Name schon sagt, ein Spiel bei welchem sehr viele Onlinespieler gleichzeitig spielen können. Also alle, wo nicht mindestens 750 bis 1500 Spieler gleichzeitig mitmachen können, ist kein MMORPG, nein, im besten Fall ein MORPG oder ORPG, wenn überhaupt.
Aber schon ohne den Zusatz "Massive", bzw. das erste M, ist es trotzdem noch ein sehr schwieriges Projekt, in welches man viel Arbeit, Zeit und Mühe sowie eine große Menge Geld investieren muss.
Falls ihr also (nun) nicht wirklich interessiert daran seit, ein Spiel mit mehreren tausend, oder mehr, Spielern gleichzeitig auf die Beine zu stellen, sondern euch nur von der Abkürzung MMORPG verwirren lassen habt, so fahrt fort, den folgenden Ausführungen zu folgen, welche sich einzig und allein mit den gröbsten Schwierigkeiten bei der Kreation von MORPGs und ORPGs beschäftigen ...
Simple 10 Schritte zum eigenen MORPG
Man braucht ein paar unersetzliche Dinge ...
1) Eine mehr oder weniger gute Idee
Über die Ideengrundlage des MORPGs sag ich hier mal nix, da ihr sicherlich schon eine Idee habt, wenn nicht, dann überlegt euch selber eine.
2) Ein Team
Für die Entwicklung so umfassender und zeitaufwendiger Projekte ist ein Team in der Regel unerlässlich, da die Arbeit dermaßen überwältigend viel ist, dass einen die Arbeit erschlägt. Große Firmen haben hunderte von Entwicklern und brauchen trotzdem meist 2 bis 5 Jahre, bis ihr Spiel erscheint. Zudem haben sie immer die neuste Technik, arbeiten die Entwickler 8 bis 16 Stunden täglich daran und werden auch noch bezahlt. Und dieser Aufwand hat seinen Grund, dieser ist massenhaft Arbeit. Für euer Team braucht ihr, je nach Umfang des Projektes 1 bis 5 Programmierer und dazu kommen dann noch Grafiker, Leveldesigner, Musiker etc ... Dabei müssen diese Personen genau so viel Ahnung haben, wie man selber, am besten mehr. Scriptkiddies nützen gar nichts. Nicht notwendigerweise zwingend, dafür aber sehr nützlich, ist ein Team aus Personen, die man auch im RL kennt, und mit denen man sich in regelmäßigen Abständen (mind. 4x im Monat) trifft, um den Fortschritt zu besprechen und die Motivation zu erhalten.
3) Eine brauchbare Programmiersprache.
Hierbei sollte es sich bestenfalls um C/C++ handeln:HTML, XML, sowie Scriptsprachen wie PHP, Ruby oder Java zählen hierbei nicht, denn sie sind weder für solche große Projekte gebaut, noch die entsprechende Geschwindigkeit bzw. Möglichkeiten besitzen.
4) Kenntnisse in der Programmiersprache
Die Meisten schauen sich eine Programmiersprache eine Woche, im seltensten Fall zwei Wochen lang an und denken, sie beherrschen die Programmiersprache komplett. Natürlich ist dem nicht so. Um eine Programmiersprache zu beherrschen bedarf es mindestens monatelanger intensiver (also mehere Stunden täglich) Beschäftigung mit der Sprache sowie das Lösen eigener Problemstellungen und entwickeln eigener Konzepte in dieser Sprache. Mal schnell die Grundbefehle auswendig lernen, wird euch bei so einem Projekt nichts nützen. Es nützt auch nichts, die Sprache zu können oder gar zu verstehen. Man muss wenn schon die Sprache LEBEN. Wenn man sich pro Tag etwa 6 bis 8 Stunden nur mit Programmieren beschäftigt und einem die Arbeit ohne nachschlagen flüssig von der Hand geht, dann hat man in etwa das Niveau, das man braucht, um ernsthaft an ein MORPG zu denken.
6) Erfahrung mit Netzwerkprogrammierung
Man sollte sich vor dem Beginn eines solchen Projektes auch umfassend mit dem Thema der Netzwerkprogrammierung befassen. So stellt sich unter anderem die Frage, welches Protokoll man für die Datenübertragung verwenden will, wie die Daten alle verbundenen Computer erreichen. Ein Tutorial zum Thema Netzwerkprogrammierung unter MS Windows mit C(++) ist unter diesem
zu finden. Erst wenn ihr in der Lage seid, umfassende (große) Datenmengen schnell und vor allem sicher zu transportieren, erst dann braucht ihr euch mit Vorstellungen über ein MORPG zu quälen.6) Erfahrung mit 3D
Hierbei ist natürlich nicht gemeint, dass man die gängigen 3D Ballerspiele von Valve oder anderen Firmen wie im Schlaf beherrscht, sondern vielmehr, dass man sich mit dem mathematischen Hintergrund auseinandersetzt. Man mag sich fragen, wozu man das braucht, wenn man nur ein 2D MORPG machen will, doch auch hier wird man kaum um Grundlagen herum kommen, denn die Grafikkarten mit Beschleuniger (DirectX, OpenGL) sind alle für 3D Graphik entwickelt, und 2D Software verwendet nur eine Dimension nicht.
7) Eine Engine
Eine Engine ist eine Bibliothek (Sammlung) von Funktionen, die (bei MORPGs) die grafische Ausgabe und Eingabe zur Verfügung stellen. Nun darf man sich das aber nicht vorstellen, dass eine Engine schon fast ein fertiges Spiel sei, bei dem man nur noch mit einem Mapeditor neue Levels machen muss, oder in der Art:
Code:
Engine.Zeichne("Welt mit allem drum und dran in 3D mit ganz viel Extras und Schnickschnack!!");
Eine Engine stellt einem meist nur Funktionen wie "SetzeKameraWinkel" oder "ZeichneViereck mit Koordinaten a,b,c,d und Textur XY" zur Verfügung. Einige Ausgefeiltere Engines haben hierbei schon ein höheres Abstraktionsniveau erreicht, sodass man nicht jedes Viereck per Hand zeichnen muss, sondern bieten einem die Möglichkeit, ganze 3D Modelle zu laden, die man mit 3D-Programmen erstellt hat. Dafür würde ich als kostenloses Porgramm Blender empfehlen. Dennoch ist dies immernoch sehr (ich betone sehr) aufwendig ... Im Internet gibt es einige gute Engines, die einem viel Arbeit abnehmen können, allerdings ist es bei deren Benutzung unter Umständen nötig, dass euer gesammter Quellcode veröffentlicht wird. Zu benennen sind hierbei unter anderem Irrlicht, TrueVision3D und Ogre
8) Viel Zeit
Ein MORPG zu erschaffen dauert sehr lange. Bei einem Team von 3 bis 5 Programmierern und täglicher mehrstündiger Arbeit, sollten allerdings unter Umständen bereits nach einem bis zwei Jahren erste sehenswerte Ergebnisse zu verzeichnen sein. Wer nicht bereit ist, sich derart zu strapazieren, der sollte besser von dem ganzen Thema die Finger lassen.
9) Ein Server und sehr viel Geld
Um den geschrieben Code überprüfen zu können, ist in der Regel ein eigener Server unentberlich. Hierbei kommt es natürlich auf den Umfang und die komplexität des Programmes an, wie leistungsstark dieser sein muss. Im Anfangsstadium, in dem hauptsächlich der Netzwerkcode getestet wird, muss die Leistungsfähigkeit wahrscheinlich nicht so stark sein, wie im Endstadium. Allerdings sei berücksichtigt, dass ein Server idR Geld kostet, und das nicht zu wenig. Zwischen 30 und 80 Euro pro Monat liegen in etwa die Preise für mittelmäßige Server. Dabei ist zu beachten, dass diese meist mit einer Linux Distribution ausgestattet werden, was unter Umständen eine Cross-Plattform Entwicklung der Serversoftware nötig macht und dies treibt den Programmieraufwand natürlich nicht unerheblich in die Höhe. Zudem ist zu beachten, dass die laufenden Kosten nicht zu unterschätzen sind. Bei einer Entwicklungszeit von (nur) ca. einem Jahr würde der Server in der (günstigen) 30 Euro Variante bereits 360 Euro kosten. Wahrscheinlicher ist allerdings, dass ein 30 Euro Server kaum ausreichen wird, wodurch (auch ohne große Ausstattung) man schnell bei 80 Euro pro Monat und damit 960 Euro angelangt ist. Auch nachdem die Entwicklung abgeschlossen ist, fallen weiterhin Serverkosten an, wenn ihr Spieler haben wollt, die euer Spiel spielen. Nun müsst ihr natürlich rechnen, dass a) euer Spiel absolut unbekannt sein wird, und b) sowieso nicht viele Spieler bereit sind, mehr als ein paar Euro im Monat dafür zu zahlen. (Dass eine kommerzielle Nutzung der verwendeten Engine ausgeschlossen sein kann, erwähne ich nur mal nebenbei). Bei einer monatlichen Gebühr von nur 2 Euro pro Monat und Spieler (was sich schon viele nicht leisten möchten ...) bräuchtet ihr allerdings schon 80 permanente Spieler (da ihr auch die Kosten vom Entwicklungsjahr irgendwie reinbekommen müsst), die auch wirklich über lange Zeit bei euch bleiben, nur um wirklich plus/minus 0 zu bleiben, also ohne auch nur einen Cent zu verdienen. Wie ihr seht, ist mit einem (selberentwickeltem) MORPG nicht wirklich viel Geld zu einzunehmen, ganz zu Schweigen von den Problemen, wie Support Service, Serverwartung, regelmäßige Backups, Werbungskosten, Werbungshosting, Vertragliche Bindung, Rechtliche Eigenverantwortung ...
10) Feinschliff, Optimierung und fortgeschrittene Techniken
"Schnell" mal ein Spiel hinzupflastern ist allerdings nicht das Ende der Fahnenstange. Wen das Spiel einmal läuft, läuft es meist nur mit einer erbärmlich langsamen Geschwindigkeit. Hier heißt es nun optimieren, wo es nur geht. Von effizienteren Netzwerkroutinen bis hin zur angemessen Verwendung von vorberechneten Tabellen, Arrays, Listen und Bäumen muss meist alles überarbeitet werden. nicht selten muss ein Programm 3 bis 4 mal komplett neu geschrieben werden. Kollisionsabfragen mit Quad- bzw Octrees und unterschiedlicher Detailschärfe sind hier nur ein kleiner Gedankenanstoß, mit was man sich herumschlagen muss. Spätestens hier an dieser Stelle wird man ohne (meist sehr teure) Fachliteratur nicht herum kommen. Exzellente Englischkenntnisse sind hier genau so wichtig, wie mathematische Begabung. Schließlich gibt es nicht für jedes der eigenen Probleme eine vorgefertigte Lösung und oftmals ist der eigene Kopf das einzige Hindernis zwischen Projekt und der Müllhalde unüberwindbarer Probleme. An der Optimierungsstelle kann es passieren, dass man ganze Programmteile in C (nicht C++) oder Assembler umschreiben muss, nur um noch ein paar Rechenoperationen einsparen zu können und so das letzte aus der Maschine herauspressen zu können.
FAZIT
Ihr denkt sicher "manniL ist doch verrückt", dann muss ich euch leider sagen, dass es gerade mal die gröbsten Sachen waren, die auf euch zukommen und das ich das ganze wohl eher verharmlose. Ein Forum, wo man mal nachfragen kann, oder ein Bekannter, der schon mal programmiert hat, sind bei einem Projekt derartiger Größe nicht wirklich hilfreich. Die große schwere Arbeit wird euch sicherlich keiner abnehmen. Wenn ihr wirklich mit einem MORPG anfangen wollt, müsst ihr euch im klaren sein, dass es nicht nur ein mühsamer und steiniger Weg ist, sondern, dass ihr praktisch von Anfang an zum Scheitern verurteilt seid. Und auch dann, wenn ihr es schaffen solltet, ein Release heraus zu bringen, werdet ihr mit Sicherheit nicht viel Bewunderung erhalten, oder gar Geld . Dazu sind die meisten Spieler sowieso viel zu verwöhnt von millionenschweren Produktionen der Spieleschmieden, die es nach einiger Zeit sogar recht preiswert im Laden gibt oder welche sogar kostenlos sind. Macht euch darauf gefasst, dass außer einem großen Verlust an Zeit, Geld und Selbstbewusstsein nichts außer Erfahrung für euch herausspringt.
Ich hoffe, nun sind alle Fragen und Unklarheiten beseitigt und ich habe euch geholfen.






