Online MMORPG

Du hast eine Idee für ein Projekt?
Antworten
Arachnophobius
User
Beiträge: 23
Registriert: Mittwoch 7. April 2010, 11:51

Konichiwá ...

ich bin noch nicht lange im Forum und lese mich hauptsächlich
eigentlich nur hier durch weil ich eine Idee / Vorstellung habe, und
diese gerne im Python Skript umsetzen möchte.

Nun wäre die Frage ob es möglich ist, mit der Python Sprache
ein vollständiges Online MMO zu erstellen und per eigener
Game Engine (oder nach Vorschlag) laufen zu lassen.

Die Grundidee für das gesamte MMO steht bereits, aber ich wüsste
gern, was ich beachten soll, und vorrangig ob es möglich ist. Ich habe mich
bereits ein wenig informiert, habe aber hauptsächlich lokal laufende Spiele
gefunden wie z.B.http://en.wikipedia.org/wiki/Severance: ... f_Darkness.

Des weiteren war ich bereits auf der Seite von PyGame, aber
die dort gefundenen Projekte waren nun nicht so, dass sie mich aus
den Schuhen holen würden.

Als letzte Frage käme da noch:
Wie umfassend könnte man das machen? Denn das MMO wie es bis
jetzt geplant ist, ist recht groß ausgefallen.


MFG das Freak :twisted:
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Ja natuerlich ist das moeglich auch in jeglichem Umfang.
Deine Probleme duerften die Bandbreite und die Datenmengen sein, nicht die Geschwindigkeit von Python.
Benutzeravatar
Sr4l
User
Beiträge: 1091
Registriert: Donnerstag 28. Dezember 2006, 20:02
Wohnort: Kassel
Kontaktdaten:

EVE Online setzt zum Beispiel auf Python.

Für 3d Gameengines könntest du dir mal Panda3d anschauen oder die Python Bindings für Ogre.
Mit denen habe ich auch schonmal rum gespielt.

Ansonsten kannste dir auch mal die Links auf python.org anschauen zu Game Development. ( http://www.python.org/about/apps/ ; ganz unten)
Benutzeravatar
veers
User
Beiträge: 1219
Registriert: Mittwoch 28. Februar 2007, 20:01
Wohnort: Zürich (CH)
Kontaktdaten:

Theoretisch ist das möglich. Du wirst vermutlich einige C Routinen oder Libraries zur Beschleunigung brauchen.

Praktisch, brauchst so etwas extrem viel Zeit und Wissen. Wenn du fragst ob es möglich ist, wirst du es alleine nicht schaffen und wenn du nicht Unmengen an Geld hast wohl auch keine Mitstreiter finden. Nimm dir etwas einfacheres vor. Wird befriedigender werden.

Gruss,
Jonas
[url=http://29a.ch/]My Website - 29a.ch[/url]
"If privacy is outlawed, only outlaws will have privacy." - Phil Zimmermann
sma
User
Beiträge: 3018
Registriert: Montag 19. November 2007, 19:57
Wohnort: Kiel

Als Beispiel dafür, dass ein MMORPG in Python prinzipiell möglich ist, kann Eve Online dienen, dessen Serverseite in Stackless Python implementiert ist (oder zumindest es lange war, wenn das nicht mehr der Fall sein sollte).

Stefan
Arachnophobius
User
Beiträge: 23
Registriert: Mittwoch 7. April 2010, 11:51

veers hat geschrieben:Praktisch, brauchst so etwas extrem viel Zeit und Wissen. Wenn du fragst ob es möglich ist, wirst du es alleine nicht schaffen und wenn du nicht Unmengen an Geld hast wohl auch keine Mitstreiter finden.
Das mit dem Geld und der Menge an Helfern ist weniger das Problem, denn
das ist bereits soweit gelöst. Ich habe bereits einige Leute gefunden
die mir da unter die Arme greifen weil sie gespannt sind, wie weit wir das
Projekt kriegen würden.

Das mit der Zeit und dem Wissen ... Zeit wird so eine Sache, denn man selbst beginnt möglicherweise demnächst mit der Ausbildung ... Das Wissen ist ja kein Problem, es gibt die Möglichkeit sich Wissen an zu eignen. Wie z.B. auch hier ;)

Außerdem testet meine Freundin die ganze Idee vom Spiel, indem sie das als erstes als Browsergame rausbringt, denn so etwas ist nicht so zeitintensiv und das Wissen hat sie bereits. Während der Entwicklung
sehen wir also ob die Idee (wenn auch etwas abgespeckt) genug
Anklang bei den Konsumenten findet.


Ich danke jedenfalls für die Vorschläge :3

Hab mir das mit dem Python Ogre angeschaut und werd das mal probieren ^^

MfG das Freak :twisted:
Benutzeravatar
veers
User
Beiträge: 1219
Registriert: Mittwoch 28. Februar 2007, 20:01
Wohnort: Zürich (CH)
Kontaktdaten:

Irgend wie habe ich einfach das Gefühl das du das böse Unterschätzt. Auch ein Browser Spiel ist normalerweise nicht etwas was man 'einfach so auf die schnelle' mal schreibt. Das kann Monate bis Jahre dauern. Bei deinem MMO definitiv Jahre. Sieh dir mal http://www.planeshift.it an. Die sind jetzt bereits seit fast 10 Jahren dran (zumindest habe ich es so in Erinnerung). Und das ganze ist immer noch weit von 'fertig'.
[url=http://29a.ch/]My Website - 29a.ch[/url]
"If privacy is outlawed, only outlaws will have privacy." - Phil Zimmermann
Arachnophobius
User
Beiträge: 23
Registriert: Mittwoch 7. April 2010, 11:51

@ veers//

Du hast recht, das Projekt begann sogar schon 1992 mit etwas ähnlichem wie ein Browsergame (MUD - Multi User Dungeon : Textbasiertes MMO).

Ich habe mir gedacht das es länger dauert, ist ja nicht so das ich mir das eben aus dem Ärmel schüttele. Sonst würde ich mich ja für besser halten als ein ganzes Entwicklerteam von namhaften Firmen. So einen Gottkomplex habe ich nun auch wieder nicht (o_o)

Aber mit der Zeitspanne bin ich nun doch etwas erschlagen worden :D

Das mit dem Browsergame habe ich mir wohl tatsächlich etwas zu leicht vorgestellt. Allerdings habe ich das halt an etwas anderem gemessen.
Besonders wenn ich mir manchmal ansehe mit was für Schund die Leute heutzutage Geld machen. Als Beispiel das hier: http://rtl.king.de/

Jedenfalls kann ich mir kaum vorstellen, dass man für so einen Müll tatsächlich so lange braucht.


Mal als Frage ... hast du schon mal selbst ein Spiel programmiert?

MfG das Freak :twisted:
Benutzeravatar
veers
User
Beiträge: 1219
Registriert: Mittwoch 28. Februar 2007, 20:01
Wohnort: Zürich (CH)
Kontaktdaten:

Arachnophobius hat geschrieben: Mal als Frage ... hast du schon mal selbst ein Spiel programmiert?

MfG das Freak :twisted:
Ja: http://29a.ch/jswars/

Angefangen und teilweise auch (fast) fertiggestellt habe ich noch um einiges mehr. Das da zum Beispiel http://www.python-forum.de/topic-20012,15.html habe ich relativ weit entwickelt (eigentlich komplett lauffähig und ich arbeite nun an etwas ähnlichem in Javascript). Ich hab auch schon Browsergames gebaut und mich sogar an einem MMORPG (naja viel mehr als ein 2D Chat wurde nicht daraus) in Java versucht (war soweit auch Funktionsfähig).

So grob weiss ich schon wovon ich Spreche. ;)

Gruss,
Jonas
[url=http://29a.ch/]My Website - 29a.ch[/url]
"If privacy is outlawed, only outlaws will have privacy." - Phil Zimmermann
nemomuk
User
Beiträge: 862
Registriert: Dienstag 6. November 2007, 21:49

Meistens fehlt es an so Eigenentwicklungen auch an guten Designs, da sich dafür anscheinend keine Leute finden.

@veers: jswars sieht echt Klasse aus!
Arachnophobius
User
Beiträge: 23
Registriert: Mittwoch 7. April 2010, 11:51

@ahojnnes
Was die Designs angeht, ich denke das ist bei mir kein Problem :D
Ich und meine Freundin zeichnen gerne und Sie auch sehr gut. Das ganze dann in die entsprechende Form für den PC zu bringen wird zwar eine knifflige Herausforderung aber mal sehen ... Wobei ich das Gefühl habe, dass das den meisten auch zu anstrengend ist, aber es kann sein das ich mich irre. Habe das schonmal von einigen gehört und hauptsächlich eher das Gemecker was die Grafiken anging und so weiter und so fort.

@veers:
Ach ja, dass mit jswars hatte ich mir schonmal angeguckt weil du deinen
Link ja in der Signatur hast. Sieht wirklich nett aus muss ich sagen :D

Ein MMO in Java zu schreiben hatte ich mir ebenfalls überlegt, weil das halt relativ Plattformunabhängig ist. Allerdings weiß ich nicht so ganz wie ich das umsetzen sollte. In Python habe ich da schon eher Vorstellungen.

Aber gut, ich merke schon da habe ich mir eine harte Nuss zum knacken ausgesucht ... (-_-)

Ich danke auf jeden fall für die vielen Antworten :D Falls sich was tut, melde ich mich nochmal ... aber ich glaub in einem anderen Thread oder? oO


MfG das Freak :twisted:
Benutzeravatar
veers
User
Beiträge: 1219
Registriert: Mittwoch 28. Februar 2007, 20:01
Wohnort: Zürich (CH)
Kontaktdaten:

Arachnophobius hat geschrieben:@ahojnnes
Was die Designs angeht, ich denke das ist bei mir kein Problem :D
Ich und meine Freundin zeichnen gerne und Sie auch sehr gut. Das ganze dann in die entsprechende Form für den PC zu bringen wird zwar eine knifflige Herausforderung aber mal sehen ... Wobei ich das Gefühl habe, dass das den meisten auch zu anstrengend ist, aber es kann sein das ich mich irre. Habe das schonmal von einigen gehört und hauptsächlich eher das Gemecker was die Grafiken anging und so weiter und so fort.
Kauft euch ein Tablet und Zeichnet es direkt am Computer. Macht Spass, wobei ich es bevorzuge in 3D zu arbeiten. Animationen und nachträgliches bearbeiten Fallen mir da viel leichter.

Betreffend Java, ich würde es auch nicht mehr in Java machen. Aber die Konzepte sind eigentlich die selben. Java ist nur etwas mühsamer.

Gruss,
Jonas
[url=http://29a.ch/]My Website - 29a.ch[/url]
"If privacy is outlawed, only outlaws will have privacy." - Phil Zimmermann
Arachnophobius
User
Beiträge: 23
Registriert: Mittwoch 7. April 2010, 11:51

veers hat geschrieben:Kauft euch ein Tablet und Zeichnet es direkt am Computer. Macht Spass, wobei ich es bevorzuge in 3D zu arbeiten.
Das mit dem 3D hatte ich auch eher in Betracht gezogen, dass mit dem zeichnen war eher darauf bezogen, dass ich für mich eine Art Vorlage brauche nach der ich es umsetzen kann. Allerdings muss ich auch im 3D Bereich noch viel lernen bevor es da noch weiter geht ...

Kann ja mal das erste Bild hier reinstellen das ich bis jetzt mit rumprobieren erstellt hab :D

Bild

Java ist mühsamer? Ok, gut zu wissen, weil ich hatte sonst vor, mich nach Python in Java zu vertiefen ... Dachte vllt das könnte sich doch lohnen da mal das Wissen ein wenig zu erweitern ... ^^


MfG vom Freak :twisted: [/quote]
sma
User
Beiträge: 3018
Registriert: Montag 19. November 2007, 19:57
Wohnort: Kiel

Na dann muss ich ja mal eine Lanze für Java bzw. die JVM brechen. Ein MMO mit Serverprozessen, die parallel und effizient laufen sollen und das von der Codebasis so groß ist, dass man die Unterstützung einer "echten" IDE haben will und wo auch Installation und Betrieb standardisiert sein sollen, wird man in Java IMHO besser als in Python schreiben können.

Natürlich kommt das zu einem Preis - Python ist definitiv einfacher. Vielleicht sollte man gleich Scala wegen der eleganteren Syntax wählen, doch das ist noch mal zwei Nummern komplexer als Java.

Vor Jahren habe ich mal regelmäßig auf www.javagaming.org/ mitgelesen, doch ich weiß nicht, wie groß diese Gemeinschaft noch oder inzwischen ist. Jedenfalls gibt es auch für Java 3D-Engines und Rahmenwerke, diesen ganzen "Open-GL-Kram" zu bauen.

Bei einem OOM würde ich jedoch vermuten, dass die Server-Seite, die das Spiel steuert, der komplexeste Teil ist. Um hier die beste Parallelität zu erreichen, böte sich das Actor-Framework von Scala (oder Akka, welches noch besser sein soll) an oder der konsequent funktionale Weg von Clojure an. Selbst wenn man Lisp als Sprache nicht mag, kann man die gleichen Datenstrukturen auch in Java oder Scala benutzen. Mangels Erfahrung in der Entwicklung eines OOMs kann ich da aber nicht mehr sagen. Ich vermute jedoch, dass ist auch nicht so viel anders als die Server, die ich beruflich gebaut habe.

Bei Python hätte ich glaube ich Angst, durch GIL (und das fehlende echte Multitasking) und die doch vergleichsweise langsame Geschwindigkeit des Interpreters Probleme zu bekommen, die durch eine andere Programmiersprache vermeidbar wären. Teile, die ich skripten will, kann ich ja auch (und gerade) in Java skripten. Allerdings habe ich den Vorteil, Python und Java (und ein Dutzend weitere Programmiersprachen) zu beherrschen und so nicht das Problem, mich erst einzuarbeiten.

Denn letztlich gilt glaube ich, man ist immer in der Sprache am besten, die man auch kennt.

Stefan
Benutzeravatar
veers
User
Beiträge: 1219
Registriert: Mittwoch 28. Februar 2007, 20:01
Wohnort: Zürich (CH)
Kontaktdaten:

sma hat geschrieben:Na dann muss ich ja mal eine Lanze für Java bzw. die JVM brechen. Ein MMO mit Serverprozessen, die parallel und effizient laufen sollen und das von der Codebasis so groß ist, dass man die Unterstützung einer "echten" IDE haben will und wo auch Installation und Betrieb standardisiert sein sollen, wird man in Java IMHO besser als in Python schreiben können.
Für mein kleines 'Chat' MMO wäre Python mMn klar besser geeignet gewesen. Die Performance ist da höchstens für die Kollisionserkennung relevant. Und selbst die wäre, zumindest in meinem Fall, noch Problemlos in purem Python zu bewältigen gewesen. Wenn du auf Zehntausende von Spielern abzielst sieht das natürlich wieder anders aus.
sma hat geschrieben:Natürlich kommt das zu einem Preis - Python ist definitiv einfacher. Vielleicht sollte man gleich Scala wegen der eleganteren Syntax wählen, doch das ist noch mal zwei Nummern komplexer als Java.
Lieber Komplex als mühsam. Scala wäre da für mich definitiv eine Interessante alternative. Wobei für Scala eine gute IDE von nöten wäre. Das Eclipse Plugin hat mich jedoch beim letzten Test alles andere als begeistert. C# wäre für mich eine Option. Wobei da Mono eher langsam ist. Die freien .NET IDE's sind Visual Studio leider auch stark unterlegen.
sma hat geschrieben:Bei Python hätte ich glaube ich Angst, durch GIL (und das fehlende echte Multitasking) und die doch vergleichsweise langsame Geschwindigkeit des Interpreters Probleme zu bekommen, die durch eine andere Programmiersprache vermeidbar wären. Teile, die ich skripten will, kann ich ja auch (und gerade) in Java skripten.
Bei grösseren Installationen sehe ich die Performance von Python als mögliches Problem. Über den GIL würde ich mir jedoch weniger sorgen machen. Das Spiel muss sowieso verteilt laufen, also sollte es mit mehreren Prozessen keine Probleme geben. Übersehe ich da etwas?
sma hat geschrieben:Denn letztlich gilt glaube ich, man ist immer in der Sprache am besten, die man auch kennt.
Ich denke durchaus das es sich Lohnen kann sich für ein so grosses Projekt in eine neue Sprache einzuarbeiten.

Arachnophobius, Java zumindest einmal anzusehen lege ich dir definitiv nahe. Java sollte man meiner Meinung nach zumindest kennen. Ob man es dann mag ist eine andere frage. ;)
[url=http://29a.ch/]My Website - 29a.ch[/url]
"If privacy is outlawed, only outlaws will have privacy." - Phil Zimmermann
Arachnophobius
User
Beiträge: 23
Registriert: Mittwoch 7. April 2010, 11:51

veers hat geschrieben:Arachnophobius, Java zumindest einmal anzusehen lege ich dir definitiv nahe. Java sollte man meiner Meinung nach zumindest kennen. Ob man es dann mag ist eine andere frage. ;)
Alles klar, dann werd ich das als erstes nebenbei zu Python machen. Ich denke doch nicht das mir etwas zusätzlicher Stoff nicht schaden kann ^^

Ich hätte noch eine letzte Frage (vorerst :D):

Sobald man eine Python Anwendung startet, startet ja auch nur ein wirklicher Prozess auf dem Rechner.
Nun wüsste ich gerne, ob es die Möglichkeit gibt, wenn man eine Anwendung von Python startet, diese noch 2 "Unteranwendungen" startet die mit der ersten Hauptanwendung kommunizieren und gegebenfalls
einfluss auf das Graphical User Interface haben?


Mfg vom Freak :twisted:
und nochmals Danke für die vielen Infos ;D
sma
User
Beiträge: 3018
Registriert: Montag 19. November 2007, 19:57
Wohnort: Kiel

Möglichkeiten gibt es viele, das Stichwort wäre hier RPC (Remote Procedure Calls). Möglicherweise meinst du mit Unteranwendungen auch weitere Threads. Davon würde ich aus zwei Gründen abraten: Erstens verzeihen es die meisten UIs nicht, wenn man es aus einem anderen Thread als dem UI-Thread manipuliert und zweitens kann bei Python immer nur ein Thread durch den Interpreter laufen, alle anderen werden gestoppt (Stichwort GIL). Hatten wir schon Java erwähnt? ;) Eine JVM unterstützt Parallelität ihrer Threads (aber Swing und SWT (und wahrscheinlich auch JavaFX) mögen es so gar nicht, wenn du das UI aus dem Nicht-UI-Thread manipulierst).

Stefan
Antworten