Hacker News new | past | comments | ask | show | jobs | submit login

this is why languages such as LPC were developed. LPMuds allowed developers to code rooms and objects while the game is running and simply reload them whenever they wanted without admin intervention. if loading failed then the old version was kept and you'd just fix your code and try again. it was incredibly robust and powerful. for a player to get access to new versions of objects or rooms they had to drop the objects and pick them up again or reenter the room so that the object references could be updated to the new versions.

even better, LPC has been rewritten into pike, a general purpose programming language that retains the same capability. in the roxen webserver i can write and reload modules at runtime. this works efficiently because the lifetime of any object instance is limited to each http request. when a module is reloaded http requests already in progress are not affected, only new ones.

in the object storage server open-sTeam also written in pike a more advanced method was developed using proxy objects that can update object references and thus allow the updating of code without breaking the references. i am still using that to host my own websites.

to this day i have yet to find any other language with this power. smalltalk can do it and i believe lisp too, but that's it.






I ran and maintained a CircleMUD for some years but always felt that we should have run LPMud (or MudOS). Those were clearly the superior technology. And playing them was so cool because they _changed_ much more often because it was painless.

The last maintained LPMud fork that I know of is LDMud https://github.com/ldmud/ldmud . Would be cool if there are others.

The BEAM vm has a lot of the functionality you mention from LPC and Pike. Erlang being from the 80s—predating LPC—and also from Sweden, I imagine that Lars Pensjö and later Fredrik Hübinette et al may have taken some inspiration there.


I still maintain the CD LPMud driver for Genesis MUD at https://github.com/cotillion/cd-gamedriver. There is not very much activity though since most critical issues have been fixed over the years and the game is very stable.

Awesome!

we should have run LPMud (or MudOS). Those were clearly the superior technology.

which is quite ironic given that CircleMUD is based on DikuMUD which was created to be more stable than LPMUD.

Erlang is one of the languages i am still very curious about. hopefully some day i'll get an opportunity to work with it


Thanks for bringing this up. I actually had a section on LPMuds in an earlier draft, but took it out because I didn't think I could do it justice. I also wanted to focus more on the Unix stuff. My friends and I tended to play DIKU derivatives, so I was never intimately familiar with LPMuds' capabilities.

I hear that class/skill variety was often greater on LPMuds because it was so much easier to code up custom behaviour. Do you know of any especially good articles on LPMuds class (in the OO sense)/object hierarchies and the software architecture of mudlibs?


I believe when regular users were able to create the world around them in a MUD they were called "wizards", this is like as if in a MMORPG some players gain the privilege to add mods to the official game world for all players to experience.

that is correct. players who essentially completed the game were promoted to wizards with editing privileges. in the muds where i was active though eventually not all players were interested in that and new challenges were created where the players could continue, while the bar to become a wizard was not raised so that at one point players could choose whether they became wizards or remained players.



Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: