Font
[thread]8247[/thread]

MMORPG in Perl: Ein paar Fragen



<< >> 4 entries, 1 page
Sebastian
 2006-08-19 13:39
#68998 #68998
User since
2006-08-19
5 articles
BenutzerIn
[default_avatar]
Hi Leute,
ich programmiere nun schon seit ein paar Wochen in Perl und finde mich sehr gut zurecht (da ich bereits Delphi und PHP beherrsche). Ich habe jetzt vor mit Perl ein MMORPG (Massive Multiplayer Online RPG, sprich ein Online-Spiel) zu schreiben, habe dazu jedoch noch ein paar Fragen: (Zur Information: Das Spiel soll in 2D aufgebaut sein, sprich kein 3D.)

  • Man kann mit Perl ja SDL benutzen, sprich der Spieleprogrammierung steht nichts im Wege, aber wie siehts mit der Geschwindigkeit aus? Ich meine, Perl ist ja interpretiert, wirkt sich das auf die Performance aus?
  • Perl ist ja plattformübergreifend, sprich es läuft einwandfrei sowohl auf Linux, als auch auf Windows (und weiteren System). Wie kann ich jedoch die SDL-Modules (die benötigt werden um SDL zu benutzen) automatisch einbinden, sprich das nicht jeder sich die Modules einzeln runterladen und installieren muss?
  • Es gibt ja bereits Tools wie Perl2Exe etc. die eine Executable aus einem Perl-Script erstellen, kann man in diese Exen aber auch Modules einfügen (bezieht sich halbwegs auf zweite Frage.)?


Einer der Hauptgründe warum ich Perl nehmen will, ist wahrscheinlich die Plattformunabhängigkeit. Kennt ihr noch andere in Perl geschrieben Games?

Vielen Dank im Voraus,

Mit freundlichen Grüßen, Sebastian!\n\n

<!--EDIT|Sebastian|1155980454-->
Relais
 2006-08-19 15:34
#68999 #68999
User since
2003-08-06
2243 articles
ModeratorIn
[Homepage] [default_avatar]
Zur letzten Frage siehe CPAN:PAR.

Zur ersten, da mußt Du mal schaun. Wenn Du unter PHP nicht zu sehr gelitten hast, Perl sollte da schneller sein.

Zur zweiten Frage: schau die PAR genauer an ;-)
Erst denken, dann posten --
26. Deutscher Perl- u. Raku -Workshop 15. bis 17.04.2024 in Frankfurt/M.

Winter is Coming
sid burn
 2006-08-19 18:40
#69000 #69000
User since
2006-03-29
1520 articles
BenutzerIn

user image
[quote=Relais,19.Aug..2006, 13:34]Zur letzten Frage siehe CPAN:PAR.

Zur ersten, da mußt Du mal schaun. Wenn Du unter PHP nicht zu sehr gelitten hast, Perl sollte da schneller sein.

Zur zweiten Frage: schau die PAR genauer an ;-)[/quote]
Naja Perl wird nicht wirklich richtig Interpretiert.

Wenn du ein Perl Programm ausführst, dann wird der komplette Perl Source Code in einem Zwischencode Kompiliert, sprich Bytecode, und dieser Bytecode wird dann von einer Virtuellen Maschiene ausgeführt. Obwohl eine Virtuelle Maschiene auch nur eine besondere Form eines Interpreters ist. Nämlich letztendlich ein Bytecode-Interpreter.

Das dies so ist siehst du ja schon wenn du einen Syntaxfehler in einer Zeile, den dann bricht dein Skript noch vor der Ausführung ab. Bei reinen Interpretierten Sprachen siehst du einen Syntaxfehler in Zeile 100 erst, wenn er auch Zeile 100 ausführt, also schon etliche Zeilen darüber ausgeführt hat.


Zur Performance. SDL, OpenGL und andere Bibliotheken sind letztendlich C Bibliotheken. Auch der perl Interpreter ist letztendlich nichts anderes als ein C Programm. Dieses Programm führt dann bestimmte C Befehle aus, je nachdem was du in deinem Perl Sourcecode geschrieben hast. Wenn du SDL, OpenGL Befehle aufrufst dann werden diese Befehle letztendlich mit den C Bibliotheken angezeigt.

Etwas Performanceverlust kannst du sicherlich einrechnen, da die ganzen Befehle erstmal gelesen und dann die richtigen C Bibliotheken aufgerufen werden müssen. Wenn du aber nicht gerade ein Spiel in Half-Life2 Grafik Programmieren möchtest, dann sollte die PErformance okay sein.

Und solltest du wirklich sehr rechenintensive Sachen haben, dann kannst du ja auf C/C++ etc. zurück greifen. Und den Algorhitmus in dieser Sprache implementieren. Ein Modul das dir z.B. sehr einfach erlaubt C einzubetten (oder andere Programmiersprachen) wäre "Inline".


Das einzige Spiel das ich zur Zeit kenne, in Perl Programmiert wurde und ebenfalls die SDL benutzt ist "frozzen-bubble" für GNU/Linux. Unter Debian/Ubuntu sind das die Pakete "frozzen-bubble".

Allerdings nur 2D. 3D Spiele in Perl kenne ich jetzt nicht. Sollte aber auch Möglich sein. Bei Python kenne ich jedenfalls 3D Spiele wie "Slune", und die laufen auch gut. Von der Technik her ist ja Python und Perl an sich identisch.


Übrigens hast du genau das selbe Anliegen was ich auch irgendwann mal machen möchte. ;)\n\n

<!--EDIT|sid burn|1156000563-->
Nicht mehr aktiv. Bei Kontakt: ICQ: 404181669 E-Mail: perl@david-raab.de
Sebastian
 2006-08-19 20:58
#69001 #69001
User since
2006-08-19
5 articles
BenutzerIn
[default_avatar]
Danke euch beiden für die tollen Antworten! ;)
Jo, ich denke ich werde das (wenn ich es irgendwann anfange) in Perl verwirklichen, vor allem halt wegen der Plattformunabhängigkeit...\n\n

<!--EDIT|Sebastian|1156006984-->
<< >> 4 entries, 1 page



View all threads created 2006-08-19 13:39.