MMORPG servers.

I'd say Perl is your perfect choice. I can't attest to the merits of Python but lets look at your requirements list shall we?

3d coordinate system

Math::Big
Games::3D - looks like an interesting starting point
Use big floats to define your object base 3D. Use nested relative rather than global absolute system if you want the universe to grow without bounds.

physics

Physics::Particles
Physics::Springs


collision detection

Math::Matrix
Math::Vector

network connections

Perls net capabilities are vast, start by looking at these.
Net::Server
IO::Socket
Net::Socket

authentication

Authen::* - all kinds of authentication

NPC AI

Games::AIBot
AI:Fuzzy
AI:Categoriser

battles

Games::Object
Games::Maze

simple-but-applicable benchmarks?

I've written a couple of games using UScript (Tim Sweenys Unreal scripting language) which is fairly clunky interpreted Java. I would put it alongside Perl in terms of practical all round speed, so I don't see any reasons Perls performance should bother you. The only hardcore code needed is where you have collision detection for hundreds of objects going on at once, and/or too many traces. If you want real time action physics you shouldn't be using a fat server model anyhow, you need replicated object physics and you will need C for speed here. As I understand it MMORPGs span many servers, so you should build 'load balacing' right into the framework of your universe, that is each server handles parts of the universe that are not only local and relevant to it, but are within its capabilities to compute. For a complex and diverse problem like this, I really can't think of a better language than Perl.


In reply to Re: Perl for MMORPG Server by andyf
in thread Perl for MMORPG Server by saberworks

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.