Author Topic: Pike: what's the deal?  (Read 5256 times)

Offline chaos

  • BFF
  • ***
  • Posts: 290
  • Job, school, social life, sleep. Pick 2.5.
    • View Profile
    • Lost Souls
Pike: what's the deal?
« on: December 30, 2008, 04:25:43 PM »
So we have this next-generation LPC-derivative scripting language, Pike, that's chock-full of LPC-ey goodness, doesn't have LPC's tragic anti-commercial licensing, and appears to have benefited from a good deal of business-use-driven development.

Has anyone written a MUD in it?  Has anyone tried to write a MUD in it?  Has anyone evaluated it for suitability for MUD usage?

You'd think that given the advantages, LPmud people would have flocked to it, but that doesn't appear to be the case, so I'm wondering if there's some big gotcha or set of small gotchas that make it a pain to use for MUDs.

Offline Raudhrskal

  • BFF
  • ***
  • Posts: 214
  • The MUD community needs YOUR help!
    • View Profile
Re: Pike: what's the deal?
« Reply #1 on: December 30, 2008, 04:37:41 PM »
Well, with Pike you start with a generic language interpreter. You need to create ALL mud-related functionality that LPC driver provides you 'for free'. It's hard to start from scratch using DGD. With Pike, it's even more work.

Said that, i agree that it's a very nice languache with LPCish feel. It was used and extended mostly for web-related work, tho...
I think, therefore i may be wrong.
Please note that if you met a Raudhrskal in a place that's not related to muds, it wasn't me. *sigh*... back when I started there was zero hits on google for that name...

Offline quixadhal

  • BFF
  • ***
  • Posts: 562
    • View Profile
    • Shadowlord.org
Re: Pike: what's the deal?
« Reply #2 on: December 31, 2008, 10:14:27 AM »
What would probably be needed for Pike to rejoin the LpMUD world, IMHO, would be some kind of kernel mudlib, much like Dworkin had created and maintains for DGD.  It would need to be even more low level, since you'd actually be coding the socket handlers and everything else, not just the parser and logic.

Offline dmgambone

  • Acquaintance
  • *
  • Posts: 4
    • View Profile
    • AJAX Mud Development Website
Re: Pike: what's the deal?
« Reply #3 on: September 09, 2009, 04:26:11 PM »
I have been working on a Pike based MUD.  It is possible, but there are several things that you need to do.

You need to create a sandbox to run your MUD in.  If you try to run a Pike MUD without the sandbox, then people in the MUD can access resources outside of the MUD (i.e. files and directories/socket connections/processes/etc).  Pike makes this possible because you can control how the LPC compiler handles different references to classes, where to get files, etc.

Once you get your sandbox put together (which includes a compiler and a filesystem wrapper), then you need to implement connection management as well as 'efuns' for the MUD to have access to.  Again, Pike makes a lot of this easy, but you have to actually code it all together.

This all together makes your MUD kernel that you can then start the development of a whole MUD library in.  That's a whole different set of theoretical issues.  How do you design your library?  How are objects stored?  What is your security sub-system going to be like? 

Ideally, the Pike implementation would be structured like this
MUD Kernel (full feature Pike) <--> MUD Lib (limited Pike) <--> Game Lib (limited Pike)

The MUD Kernel is the low level stuff described above.  The MUD Lib is the core components of the MUD (i.e. what DS generally is) and the Game Lib is all the game specific stuff.

Pike is very cool to work in, but as someone said before, it's a lot of work to get started.  The mud engine I'm developing is targeted to be an AJAX mud and I have most of the sandbox implemented as well as the connection management using AJAX. 
Also known as Krem on Nightmare/Rise of Praxis MUDs and on the AJAXMud Forums

Offline detah

  • BFF
  • ***
  • Posts: 189
  • Ruler of 2D
    • View Profile
Re: Pike: what's the deal?
« Reply #4 on: September 10, 2009, 09:43:51 AM »
Sometime in early 2006, Brodbane was working on a Pike mud. I do not know how far along in the development is is/got. I have not heard from him in over 2 years. He may have discontinued development for all I know.

Offline Tacitus

  • Acquaintance
  • *
  • Posts: 21
    • View Profile
    • LPUniversity Group
Re: Pike: what's the deal?
« Reply #5 on: October 05, 2009, 11:27:29 PM »
I played with a PIKE mud called GIME which I found at http://sourceforge.net/projects/gime/ - The creators have long abandoned the project it seems.

If you're interested in playing with, you'll need to patch it to get it to run with a modern version of Pike.
Cody A.W. Somerville
Sapidlib Developer

Offline dmgambone

  • Acquaintance
  • *
  • Posts: 4
    • View Profile
    • AJAX Mud Development Website
Re: Pike: what's the deal?
« Reply #6 on: October 06, 2009, 01:22:47 PM »
I've looked at GIME and found it very lacking.  What I find the most important feature of any MUD Engine (sandboxing), is completely lacking.  In order for an LPC-style MUD Engine to be viable, you need to completely close off access to the server itself.  Pike-based MUD Engines are no exception.  In fact, it is even more important given the powerful nature of Pike and the ability to do just about anything with it.

GIME was very early in it's development stages when it seems to have been abandoned.  Be aware of the level work that needs to still be done to it in order to develop a viable Pike-based MUD with GIME.


Also known as Krem on Nightmare/Rise of Praxis MUDs and on the AJAXMud Forums

Offline dingleberry

  • Acquaintance
  • *
  • Posts: 3
    • View Profile
Re: Pike: what's the deal?
« Reply #7 on: October 04, 2010, 01:54:55 AM »
Great thread, thanks to all!

I and a few friends are very interested in doing a modern MUD-style text et al virtual reality server in Pike (or another modern interpreted language) supporting AJAX, telnet, and a browser-based OpenGL rendering layer (probably in Java, JRuby, or Flash, etc).

We are old LDMud & MudOS guns with a bit of experience in C and Java looking to enter a new interpreted Multi User Dimension through a Web 2.0 wormhole.

As has been wisely said modern Pike Muddery would be well-served by coretight library running in a sandbox with MUD-style network handling, filesystem emulation, user security system, world environment and object management, various user communication and object-environment interactivity.

We are looking to create such a library for a modern MUD-core implementation in an industry-grade framework. Pike is certainly one of our considerations.

I would love to know the status of any such Pike or related framework projects anyone might know of or be working on. We are looking to collaborate, learn, or just discuss. Many thanks!

Offline Dworkin

  • Acquaintance
  • *
  • Posts: 26
    • View Profile
Re: Pike: what's the deal?
« Reply #8 on: October 05, 2010, 06:05:39 AM »
I would love to know the status of any such Pike or related framework projects anyone might know of or be working on. We are looking to collaborate, learn, or just discuss. Many thanks!

You might also want to take a look at DGD, which was released under an open source license earlier this year.

Offline Kaylus

  • Acquaintance
  • *
  • Posts: 8
    • View Profile
Re: Pike: what's the deal?
« Reply #9 on: August 18, 2011, 09:45:22 PM »
Again, this will have to go to searching my archives but I wrote an entire Pike based mud that, in its brief life of a few months, reached 25+ players online. The unfortunate thing was that I ran out of motivation and then lost most of the code due to not paying my hosting account. (No I didn't backup)

I still believe I have a base system with a "generic lib" (more like Lil') in my archives. I basically wrote it in a manner that mimicked LPC type engines. The code was segregated and the Mudlib code was passed through it's own limited (sandbox) compiler since Pike allows you to do that. The biggest issue I had was that somewhere they deprecated the whole "this_player()/this_object()" concept and I had to mimic that via the backtrace.

Even at the height of things the backtrace method was a pain and required working with it, not letting it work for you. I eventually rewrote it to a point that I could work with, but I'm not sure if that code is in my archived version. I'll look around and see if I can't find it, I hope it's not on one of the CD's I tossed over the years.

Offline Kaylus

  • Acquaintance
  • *
  • Posts: 8
    • View Profile
Re: Pike: what's the deal?
« Reply #10 on: August 18, 2011, 09:48:51 PM »
Actually I found a previous message by myself on these boards: http://lpmuds.net/smf/index.php?topic=736.msg3732#msg3732

Concerning this. :)