Ergebnis 1 bis 2 von 2

Thema: Wie macht man ein MMORPG - Anleitung

  1. #1

    Wie macht man ein MMORPG - Anleitung

    Um es kurz zu fassen ....

    GAR NICHT

    Aber lasst mich erklaehren ...

    Ein Massive Multiplayer Online Role Playing Game ist, wie der Name schon sagt, ein Spiel, bei dem sehr sehr viele Onlinespieler gleichzeitig spielen koennen. Das bedeutet im Klartext, alles, wo nicht mindestens 500 bis 1000 Spieler gleichzeitig mitmachen koennen, ist kein MMORPG, sondern bestenfalls ein MORPG oder ORPG.

    Aber selbst ohne den Zusatz "Massive" ist das ganze noch ein aeusserst schwieriges Unterfangen, bei dem man viel Arbeit, Zeit und Muehe sowie eine ganze Stange Geld investieren muss.

    Falls ihr also nicht wirklich geplant habt, ein Spiel mit meheren tausend Spielern gleichzeitig auf die Beine zu stellen, sondern euch nur von der Abkuerzug habt verwirren lassen, so seid herzlich eingeladen, den folgenden Ausfuehrungen zu folgen, die sich lediglich mit den groben Schwierigkeiten bei der Erstellung von MORPGs und ORPGs beschaeftigen ...

    10 "einfache" Schritte zum eigenen MORPG

    Man braucht ein paar unersetzliche Dinge ...

    1) Eine Idee
    Ueber die Ideengrundlage des MORPGs spreche ich hier mal nicht, da ihr sicherlich schon eine habt, denn sonst waert ihr kaum hier in diesem Thread

    2) Eine Programmiersprache.
    Hierbei sollte es sich am besten um eine der grossen (drei) Programmiersprachen handeln: C++, Java oder die Pascal Familie (z.B. Delphi, Gnu FreePascal).
    Markupsprachen wie HTML oder XML sowie Scriptsprachen wie PHP, Ruby oder JS zaehlen hierbei nicht, da sie weder fuer solche grosse Projekte konzipiert sind, noch die entsprechende Geschwindigkeit besitzen. Selbst Java ist nicht unbedingt fuer MORPGs geeignet, da sie immer noch im Vergleich zu C/C++ oder Pascal wesentlich langsamer ist.

    3) Fundierte Kenntnisse in der Sprache
    Viele schauen sich eine Programmiersprache eine Woche lang an, lesen zwei Buecher darueber, tippen 3 vorgefertigte Beispielprogramme ein, und denken, sie beherrschen die Programmiersprache. Dem ist leider nicht so. Um eine Programmiersprache zu beherrschen bedarf es mindestens monatelanger intensiver (das heisst mehere Stunden taeglich) Beschaeftigung mit der Sprache sowie das Loesen eigener Problemstellungen und Entwickeln eigener Konzepte und Algorithmen in dieser Sprache. Mal schnell die Syntax und Grundbefehle auswendig lernen, wird euch bei so einem Projekt leider gar nichts nuetzen. Es nuetzt auch nichts, die Sprache zu koenen oder gar zu verstehen. Man musst wenn schon die Sprache LEBEN. Wenn man sich pro Tag etwa 6 bis 8 Stunden nur mit Programmieren beschaeftigt, und einem die Arbeit ohne nachschlagen fluessig von der Hand geht, dann hat man in etwa das Niveau, das man braucht, um ernsthaft an ein MORPG zu denken.

    4) Erfahrung mit Netzwerkprogrammierung
    Man sollte sich vor dem Beginn eines solchen Projektes auch umfassend mit dem Thema der Netzwerkprogrammierung befassen. So stellt sich z.B. die Frage, welches Protokoll man fuer die Datenuebertragung verwenden will, wie die Daten alle verbundenen Computer erreichen. Ein grundlegendes Tutorial zum Thema Netzwerkprogrammierung unter MS Windows mit C(++) ist unter folgendem Link zu finden. Erst wenn ihr in der Lage seid, umfassende Datenmengen schnell und sicher zu transportieren, braucht ihr euch mit Vorstellungen ueber ein MORPG zu quaelen.

    5) Eine Engine
    Eine Engine ist eine Sammlung (Bibliothek) von Funktionen, die (in unserem Fall) die graphische Ausgabe und die Eingabe zur Verfuegung 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 bekannten Art
    Zitat Zitat
    Engine.Zeichne("Haus mit allem drum und dran in 3D mit ganz viel Extras!!!111eins");
    Eine Engine stellt einem meist nur Funktionen wie "SetzeCameraPosition" oder "ZeichneDreieck mit Koordinaten a,b,c und Textur •••" zur Verfuegung. Einige Ausgefeiltere Engines haben hierbei schon ein hoeheres Abstraktionsniveau erreicht, so dass man nicht wirklich jedes Dreieck per Hand zeichnen muss, sondern bietem einem auch die Moeglichkeit, ganze 3D Modelle zu laden, die man mit speziellen Programmen erstellt hat. Dennoch ist dies immernoch sehr aufwendig ... Im Internet gibt es einige gute Engines, die einem viel Arbeit abnehmen koennen. Unter Sourceforge sind einige kostenlose zu finden, allerdings ist es bei deren Benutzung unter Umstaenden noetig, dass euer gesammter Quellcode veroeffentlicht wird - OpenSource eben. Zu erwaehnen seinen hierbei untrer anderem Irrlicht, Ogre und TrueVision3D

    6) Erfahrung mit 3D
    Hierbei ist natuerlich nicht gemeint, dass man die gaengigen 3D Ballerspiele der Firma ID Software wie im Schlaf beherrscht, sondern vielmehr, dass man sich mit dem mathematischen Hintergrund auseinandersetzt. Was ist ein Vektor, und wozu brauche ich den ? Was ist eine Matrix, bzw eine Rotoations- bzw Projektionsmatrix, und wofuer sind die gut ? Was sind Koordinatensysteme und Koordinatentransformationen ? Was sind Linearkombinationen und was ist Lineare Algebra ? Was ist der Unterschied zwischen Pixel, Vertex und Texel ? Wie macht man Multithreading und warum braucht man das ?
    Man mag sich fragen, wozu man das braucht, wenn man vielleicht nur ein 2D MORPG machen will, doch auch hier wird man kaum um diese Grundlagen herum kommen, denn die Graphikkarten mit Beschleuniger (DirectX, OpenGL) sind alle fuer 3D Graphik entwickelt, und 2D Software verwendet nur eine Dimension nicht.

    7) Ein Team
    Fuer die Entwicklung so umfassender Projekte ist ein Team in der Regel unerlaesslich, da die Arbeit dermassen ueberwaeltigend viel ist, dass einen die Arbeit erschlaegt. Grosse Firmen haben hunderte von Programmierern, Graphikern, Musikern, kurz Entwicklern, und brauchen trotzdem meist 2 bis 5 Jahre, bis ihr Spiel erscheint. Zudem haben sie immer die neusste Technik, arbeiten 8 bis 16 Stunden taeglich daran und werden auch noch bezahlt. Und dieser Aufwand hat seinen Grund, massenhaft Arbeit. Fuer euer Team braucht ihr, je nach Umfang des Projektes 1 bis 5 Programmierer und dazu kommen dann noch Graphiker, Leveldesigner, Musiker etc ... Dabei muessen diese Personen mindestens genau so viel Ahnung haben, wie man selber. Scriptkiddies nuetzen gar nichts. Nicht notwendigerweise zwingend, dafuer aber sehr nuetzlich, ist ein Team aus Personen, die man auch real kennt, und mit denen man sich in regelmaessigen Abstaenden (mind. 1x woechentlich) trifft, um das Fortschreiten zu besprechen und die Motivation zu erhalten.

    8) Viel Zeit
    Ein MORPG zu erschaffen dauert sehr lange. Bei einem Team von 3 bis 5 Programmierern und taeglicher mehrstuendiger Arbeit, sollten allerdings unter Umstaenden bereits nach einem bis zwei Jahren erste sehenswerte Ergebnisse zu verzeichnen sein. Wer nicht bereit ist, sich derart zu strapazieren, der sollte besser von der ganzen Thematik die Finger lassen.

    9) Ein Server und sehr viel Geld
    Um den geschrieben Code ueberpruefen zu koennen, ist in der Regel ein eigener Server unerlaesslich. Hierbei kommt es natuerlich auf den Umfang und die komplexitaet des Programmes an, wie leistungsstark dieser sein muss. Im Anfangsstadium, in dem hauptsaechlich der Netzwerkcode getestet wird, muss die Leistungsfaehigkeit wahrscheinlich nicht so stark sein, wie im Endstadium. Allerdings sei beruecksichtigt, dass ein Server idR Geld kostet, und das nicht zu knapp. Zwischen 30 und 80 Euro pro Monat liegen in etwa die Preise fuer brauchbare Server. Dabei ist zu beachten, dass diese meist mit einer Linux Distribution ausgestattet werden, was unter Umstaenden eine Cross-Plattform Entwicklung der Serversoftware noetig macht, was den Programmieraufwand natuerlich nicht unerheblich in die Hoehe treibt. Zudem ist zu beachten, dass die laufenden Kosten nicht zu unterschaetzen sind. Bei einer Entwicklungszeit von (nur) einem Jahr wuerde der Server in der (guenstigen) 30 Euro Variante bereits 360 Euro kosten. Wahrscheinlicher ist allerdings, dass ein 30 Euro Server kaum ausreichen wird, wodurch (auch ohne grosse 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 muesst ihr natuerlich rechnen, dass a) euer Spiel absolut unbekannt sein wird, und b) sowieso nicht viele Spieler bereit sind, mehr als ein paar Euro im Monat dafuer zu zahlen. (Dass eine kommerzielle Nutzung der verwendeten Engine ausgeschlossen sein kann, erwaehne ich nur mal am Rande). Bei einer monatlichen Gebuehr von nur 2 Euro pro Monat und Spieler (was sich schon viele nicht leisten werden ...) braeuchtet ihr allerdings schon 80 permanente Spieler (da ihr auch die Kosten vom Entwicklungsjahr irgendwie reinbekommen muesst), die auch wirklich ueber lange Zeit bei euch bleiben, nur um wirklich +/- Null zu bleiben, also ohne auch nur einen Cent zu verdienen. Wie ihr seht, ist mit einem (privaten) MORPG nicht wirklich viel Geld zu einzunehmen, ganz zu Schweigen von den Problemen, wie Support Service, Serverwartung, regelmaessige Backups, Werbungskosten, Werbungshosting, Vertragliche Brindung, Rechtliche Eigenverantwortung ... usw usw usw

    10) Feinschliff, Optimierung und fortgeschrittene Techniken
    "Schnell" mal ein Spiel hinzupflaster ist allerdings nicht das Ende der Fahnenstange. Wen das Spiel einmal laeuft, laeuft es meist nur mit einer erbaermlich langsamen Geschwindigkeit. Hier heisst es nun optimieren, wo es nur geht. Von effizienteren Netzwerkroutinen bis hin zur angemessen Verwendung von vorberechneten Tabellen, Arrays, Listen und Baeumen muss meist alles ueberarbeitet werden. nicht seiten muss ein Programm 3 bis 4 mal komplett neu geschrieben werden. Kollisionsabfragen mit Quad- bzw Octrees und unterschiedlicher Detailschaerfe sind hier nur ein kleiner Gedankenanstoss, mit was man sich herumschlagen muss. Spaetestens hier an dieser Stelle wird man ohne (meist sehr teuere) Fachliteratur nicht herum kommen. Excellente Englischkenntnisse sind hier genau so wichtig, wie mathematische Begabung und Abstraktionsvermoegen. Schliesslich gibt es nicht fuer jedes der eigenen Probleme eine vorgefertigte Loesung und oftmals ist der eigene Kopf das einzige Hindernis zwischen Projekt und der Muellhalde unueberwindbarer 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 koennen und so das letzte aus der Maschine herauspressen zu koennen.

    FAZIT

    Falls ihr jetzt denken solltet "der spinnt doch" oder "so schlimm kann das ja nicht werden", dan muss ich euch leider sagen, dass ich noch nicht einmal an der Oberflaeche der Probleme gekratzt habe, und das ganze Unterfangen ehr verharmlose, als zu uebertreiben. Ein Forum, wo man mal nachfragen kann, oder ein Bekannter, der schon mal programmiert hat, sind bei einem Projekt derartiger Groesse nicht wirklich hilfreich. Die grosse schwere Arbeit wird euch sicherlich keiner abnehmen. Wenn ihr wirklich mit einem MORPG anfangen wollt, muesst ihr euch im klaren sein, dass es nicht nur ein muehsamer und steiniger Weg ist, sondern es ehr einer Free Climbing Tour an der Eiger Nordwand in T-Shirt und kurzer Hose gleicht, mit anderen Worten, ihr praktisch von Anfang an zum Scheitern verurteilt seid. Und auch dann, wenn ihr es wider Erwarten schaffen solltet, ein spielbares Release heraus zu bringen, werdet ihr mit Sicherheit nicht viel Beifall erhalten, oder gar im Geld schwimmen. Dazu sind die meisten Spieler sowieso viel zu verwoehnt von millionenschweren Produktionen der grossen Spieleschmieden, die es nach einiger Zeit sogar recht preiswert im Laden gibt (oder auf unlauteren Wegen auch anders) und die ein ganz anderes Mass an Professionalitaet und Umfang bieten. Macht euch darauf gefasst, dass ausser einem grossen Verlust an Zeit und Geld nichts ausser Erfahrung fuer euch heraus springt.

    In diesem Sinne, wir warten auf euere Vollversionen ...

    PS: Eine sehr gute weiterfuehrende Betrachtung findet sich unter diesem Link.

    Geändert von Ineluki (10.07.2005 um 23:23 Uhr)

  2. #2
    Erstmal verdammt großen Respekt für die ganzen Erklärungen. Die waren mehr als ausführlich. Schon mal versucht ein MMORPG zu machen oder woher die Kenntnisse? So zufälligerweise gibt es Möglichkeiten wie man sich so Sachen wie 3D Grafiken erleichtern kann. Beispiel man nimmt einen Meshmodeler like MilkShape oder einfach irgendein Plugin für zum beispiel Blender und exportiert das ganze als DirectX Model. Das gleiche kann man mit Landschaften machen. Dazu braucht man dann halt nur noch die Kenntnisse vom jeweiligem Grafikprogramm. Die Spieler kann man durch Nachrichten und Testberichte anlocken. Wir haben uns was ausgedacht, womit wir mindestens eine Million Spieler bekommen. Was das ist bleibt geheim, es ist aber eine Menge arbeit so etwas zu organisieren, jedoch gibt es sowas nicht ein einziges mal bisher in irgendeinem Spiel. Das einzige was dafür ein bisschen Geld kostet sind die Lizenzen. Das lässt sich jedoch sobald man bekannt ist wieder durch Werbung auf der Internetseite ausgleichen. Server gibt es ganz günstig unter verschiedenen Adressen.
    Die Idee haben wir. Geschrieben wird es in C++. Programmieren lernt man immer egal nwas man tut. Ich habe ein Team aus mom 10 Leuten. Engine haben wir auch, zwar keine eigene aber trotzdem OK. 3D Grafiker haben wir 2, ich und jemand anders. Von den Musikern spreche ich jetzt bewusst nur erstmal eine BAND an. Ich weiß nicht ob jemandem In Extremo hier was sagt. Optimieren und Patchen ist sowieso klar.

    Für mich ist es ein Fulltime Job. Ich arbeite täglich mindestens ca. 10 Stunden an den Grafiken wenn das nicht reicht zieh ich auch noch den rest des tages hinzu. Sehr Viel Geld braucht man gar nicht so. Wenn das Team Spaß daran hat und die es Kostenlos machen da keiner anfangs Geld bekommt so braucht man schon mal weniger Geld. Einen Server kann man von einem großen Publisher like EA bekommen wenn man was überzeugendes zeigen kann. Auch gibt es direkt komplett bezahlbare Serversysteme, da liegen die Preise nur etwas höher und die Server brauchen eine eigene Internetanbindung. Desweiteren bekommen wir noch professionelle Hilfe von anderen bereits erschienen MMORPG "FABRIKEN" hilfe. Wir tippen so auf 3-4 Jahre auf Fertigstellung.

    Falls noch jemand helfen will kann er mir ja eine Mail schreiben. Daniel.Klingmann@gmx.de

    Trotzdem noch mal großen Respekt an die Erklärung!

    mfg BSD

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •