

Technical details for a MMOG in perl - rubashov
http://www.madmongers.org/talks/the-lacuna-expanse

======
wazoox
OK, I'm half the presentation, and this is really astounding. Aren't you
afraid that Plack/PSGI and StarMan are a bit too much on the bleeding edge for
such a wide project? Will it scale? How many people did work on this?

Kudos!

~~~
thomas11
Amazing stuff. Modern Perl indeed.

Interesting that the whole server side is built on a JSON-RPC API. That
enables writing completely new clients later on.

~~~
viraptor
Sorry, but I don't get it... you're saying Modern Perl, they're saying Modern
Perl. What is it about?

They showed 2 classes in total, which look "normally" and the stack they're
using. Does using cool modules count as "Modern Perl"? Their stack looks well
understood / well designed, but that's it. They use a lot of new technologies,
but there is nothing that makes me go "wow".

It's also ironic how they praise pngout (p. 57) for reducing image sizes, but
publish 42MB presentation...

Not to criticise the project as a whole though - I love the idea of a client-
independent server side and multiple interfaces for real time multiplayer. I
was obsessed with that idea for a while and trying to do something similar one
day - I'm amazed how they actually pulled it of. Great work there! Good
organisation too with completing the web page in time for launch before
everything else was completed - good first impressions...

~~~
berntb
>>you're saying Modern Perl, they're saying Modern Perl. What is it about?

It is a bit debated. See e.g. [http://perlgeek.de/blog-en/perl-tips/what-is-
modern-perl.htm...](http://perlgeek.de/blog-en/perl-tips/what-is-modern-
perl.html)

Also, at the risk of sounding ironic I must ask -- you are really not aware of
a web service called "Google" and its (many) competitors? Try e.g. this when
you see unknown terms:

[http://www.google.com/search?&q=modern+perl](http://www.google.com/search?&q=modern+perl)

>>ironic how they praise pngout [...] publish 42MB presentation...

Ah, yes. Publishing a big pdf from a presentation do take away all points in
the pdf about image sizes sent from a web server. [Edit: For the
sleep/caffeine deprived: This was irony.]

Edit: OK viraptor, sorry for being sensitive.

Edit: After reading, what I miss is more discussion about how the game logic
was implemented; for fun I've done 2/3 of a couple of board games' logic which
literally was hundreds of pages each (which I should finish, sigh).

~~~
viraptor
I know what it is, but they simply didn't show anything about it. It was
thrown there like a buzz word and the parent post repeated / confirmed the
phrase. So I'm puzzled about where does that Modern Perl exist in the
presentation / why does it matter.

Re. size. I didn't say it takes away all the points. Simply, it's a funny
thing. Just like telephony engineers getting dropped calls, abstract
mathematicians making trivial addition mistakes, etc. They lower the size to
make the experience better during the game, but at the same time make a huge
presentation. That's all.

~~~
revoltingx
In my opinion, Modern Perl is anything that uses Moose or frameworks like
CGI::Application or Catalyst AND has a clean OO/MVC structure. Meaning no more
ugly things like bless() and ref()

What this means, is Perl becomes a proper MVC styled language like 'Ruby' or
with its frameworks like 'Ruby on Rails.'

It matters because for years people complain about the scalability of perl
when it comes to large projects due to it's 'hack syntax' nature.

With modern Perl, code is usually clean free of crazy syntax with a OO
architecture where the base classes do most of the work (such as auto
authentication, auto encoding/decoding, auto DB joins, etc.) and you do
business/game logic in the upper modules.

------
wazoox
Oh by the way I've "told the friends", I've announced it on perlmonks :)

------
ritonlajoie
Astonishing presentation, keep up the good work :)

------
wazoox
At least the home page and login look really impressive, that's promising :)
I'm eagerly reading your presentation now....

------
swivelmaster
My god it's a 45 meg PDF! Still, looking forward to reading...

------
revoltingx
Wow, I've been working on my own MMORPG (though I use Perl for all Admin stuff
and SOME player stuff such as message retrieval.) I certainly haven't achieved
the level of completeness this guy has. (or is it a team?)

I'd imagine that it's somewhat slow though. I assume it keeps the connection
open, but if it doesn't the JSON encoding/decoding can also be a penalty.

Same with using MySQL, you have to use a network socket, and possibly disk
bound depending on how MySQL is set up.

In any case, using the JSON-RPC style is very clean and fast to develop, and I
use it for my MVC web projects. PERL rocks!

