Tools https://community.pennmush.org/taxonomy/term/13 en WCNH MUSH code open-sourced https://community.pennmush.org/node/9704 <span class="field field--name-title field--type-string field--label-hidden">WCNH MUSH code open-sourced</span> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><span>Eratl</span></span> <span class="field field--name-created field--type-created field--label-hidden">Tue, 2013-07-23 16:55</span> <div class="field field--name-topic field--type-entity-reference field--label-hidden field__items"> <div class="field__item"><a href="/taxonomy/term/13" hreflang="en">Tools</a></div> </div> <div class="node__links"> <ul class="links inline"><li class="comment-forbidden"></li></ul> </div> <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><p>Some of you may know, or have even played on, my most recent MUSH, Wing Commander: New Horizon. I shut the game down a few months ago due to inactivity, but as of today you can now download all of the source code and a 'sanitized' version of the game database (missing player information, log contents, etc, but all code, rooms, ships, etc are there).</p> <p>It's rather an unusual example of a MUSH codebase - there's a complete implementation of a JSON-protocol client/server model that allows external processes to exchange information with PennMUSH. Included is a complete implementation of that protocol in Ruby along with many thousands of lines of Ruby and softcode systems that could be used to build any sci-fi game, or adapted to fit just about any theme.</p> <p>For more information/downloads, I've set up a <a href="http://tkrajcar.github.io/wcnh/">page on GitHub</a>.</p> <p>I'll be around on M*U*S*H for questions/support!</p> </div> <section class="field field--name-field-blog-comments field--type-comment field--label-above comment-wrapper"> </section> Tue, 23 Jul 2013 21:55:50 +0000 Eratl 9704 at https://community.pennmush.org Quickbuild v2 released! https://community.pennmush.org/node/1094 <span class="field field--name-title field--type-string field--label-hidden">Quickbuild v2 released!</span> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><span>Sketch</span></span> <span class="field field--name-created field--type-created field--label-hidden">Tue, 2012-06-26 22:27</span> <div class="field field--name-topic field--type-entity-reference field--label-hidden field__items"> <div class="field__item"><a href="/taxonomy/term/13" hreflang="en">Tools</a></div> </div> <div class="node__links"> <ul class="links inline"><li class="comment-forbidden"></li></ul> </div> <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><p>Quickbuild is an offline MUSH building tool.<br /> Full list of features and download here: <a href="https://github.com/Sketch/quickbuild">https://github.com/Sketch/quickbuild</a><br /> (Direct .zip download: <a href="https://github.com/Sketch/quickbuild/zipball/master">https://github.com/Sketch/quickbuild/zipball/master</a>)</p> <p>Quickbuild is a Ruby script that lets you quickly lay out a MUSH area (a set of rooms connected by exits, optionally zoned and/or parented) in an easy-to-use format in a text file. It's smart about cardinal directions (aliases and reverse exits), &lt;b&gt;racket style exit-naming, and a few other things.</p> <hr /> I'm as skeptical as you are! "What does this thing do for me," you ask. Here is an example: <p>Quickbuild takes this input, describing the connections between seven (7) rooms:<br /> <code></code></p> <pre> "sw" : "Grasslands" &lt;-&gt; "The Charcoal Grasslands" &lt;-&gt; "Fire Kingdom" "s" : "Ice Kingdom" &lt;-&gt; "The Frosted Grasslands" &lt;-&gt; "Grasslands" </pre><p></p> <p>...And produces this MUSHcode to build them all, and all their exits:<br /> <code></code></p> <pre> think Digging Rooms @dig/teleport Grasslands @set me=ROOM.Grasslands:%l @dig/teleport The Charcoal Grasslands @set me=ROOM.The_Charcoal_Grasslands:%l @dig/teleport Fire Kingdom @set me=ROOM.Fire_Kingdom:%l @dig/teleport Ice Kingdom @set me=ROOM.Ice_Kingdom:%l @dig/teleport The Frosted Grasslands @set me=ROOM.The_Frosted_Grasslands:%l think Linking Rooms @teleport [v(ROOM.Grasslands)] @open Southwest &lt;SW&gt;;southwest;sw=[v(ROOM.The_Charcoal_Grasslands)] @open North &lt;N&gt;;north;nort;nor;no;n=[v(ROOM.The_Frosted_Grasslands)] @teleport [v(ROOM.The_Charcoal_Grasslands)] @open Northeast &lt;NE&gt;;northeast;ne=[v(ROOM.Grasslands)] @open Southwest &lt;SW&gt;;southwest;sw=[v(ROOM.Fire_Kingdom)] @teleport [v(ROOM.Fire_Kingdom)] @open Northeast &lt;NE&gt;;northeast;ne=[v(ROOM.The_Charcoal_Grasslands)] @teleport [v(ROOM.Ice_Kingdom)] @open South &lt;S&gt;;south;sout;sou;so;s=[v(ROOM.The_Frosted_Grasslands)] @teleport [v(ROOM.The_Frosted_Grasslands)] @open North &lt;N&gt;;north;nort;nor;no;n=[v(ROOM.Ice_Kingdom)] @open South &lt;S&gt;;south;sout;sou;so;s=[v(ROOM.Grasslands)] </pre><p></p> <p>Saved you a bit of typing, didn't it? As a more extreme example, I used a 35-line file to build a whole walk-through Scrabble board for the 2012 M*U*S*H April Fools. The complete area has 250 Rooms and 840 Exits!<br /> Not sold yet? Read on!</p> <hr /> Quickbuild v2 is recoded from scratch, and features a handful of improvements: <ul> <li>The DESCRIBE command - A shorthand for @descibe-ing rooms as they're built. Just DESCRIBE "Your Room Name" = The description you want, in the Quickbuild file itself, and the room will have its @describe set when it's built.</li> <li>Name tagging - If you're building a puzzle or maze (and don't mind rooms having different DBref#s), you can tag rooms with the same name and Quickbuild will treat them as different rooms: "n" : "Puzzle"1 &lt;-&gt; "Puzzle"2 gives you north/south exits from two rooms named "Puzzle". Name tagging is even good for grabbing sections of a MUSH--Just tag each room name with its own DBRef#. I tested this by writing a script that grabbed the main grid off of M*U*S*H, and rebuilding the grid in another MUSH!</li> <li>Easier setup - Quickbuild requires no gems or other downloads. Just install Ruby, and it will run.</li> <li>Better error handling - Quickbuild v2 catches a bunch of new errors, and produces plenty of warnings about odd input or potential badness like rooms with no exits. All errors and warnings also have filenames and line numbers!</li> <li>Better hackability - The code itself is completely new, and separated into discrete sections that do specific things: Parse input files into opcodes, opcodes into graphs, and graphs into MUSHcode. This makes the code much more readable, comprehensible, and most importantly hackable.</li> </ul> <hr /> History of Quickbuild:<br /> The original Quickbuild was a perl script coded up by Javelin@M*U*S*H in 1999. I started hacking on it in 2011, and asked about becoming and then quickly became the maintainer in September 2011.<br /> I recoded Quickbuild from scratch for a number of reasons. First of all, I had trouble using the original; the code was a little messy, but what really caught me off-guard was having to install Perl modules. I wanted Quickbuild v2 to be easy to set up, easy to use, and easy to read and alter. I also wanted to add a few features, the most prominent of which are listed above. Lastly, it's a nice piece of self-written code to offer as a Ruby code sample, for my own purposes. :) </div> <section class="field field--name-field-blog-comments field--type-comment field--label-above comment-wrapper"> </section> Wed, 27 Jun 2012 03:27:25 +0000 Sketch 1094 at https://community.pennmush.org Notify your MUSH automatically of new Github pushes https://community.pennmush.org/node/995 <span class="field field--name-title field--type-string field--label-hidden">Notify your MUSH automatically of new Github pushes</span> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><span>Eratl</span></span> <span class="field field--name-created field--type-created field--label-hidden">Wed, 2011-10-26 16:12</span> <div class="field field--name-topic field--type-entity-reference field--label-hidden field__items"> <div class="field__item"><a href="/taxonomy/term/13" hreflang="en">Tools</a></div> </div> <div class="node__links"> <ul class="links inline"><li class="comment-forbidden"></li></ul> </div> <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><p>Just wanted to share that I've open-sourced my latest little creation, a <a href="http://www.sinatrarb.com/">Sinatra</a> web application designed to receive post-push POSTs from <a href="http://www.github.com">Github</a>. On my latest MUSH project, we're using git and Github heavily, with multiple repositories for the game's code, softcode, etc, and this provides a handy way to not only keep the coders up to date on new pushes, but also keep everyone the game up to date on what's happening, even if they're not Git-savvy. </p> <p><a href="http://i.imgur.com/wHEXG.jpg">Here's an example</a> of what it looks like, game-side...</p> <p>And here's the link (hosted on Github, naturally!) with instructions on setting it up for your game: <a href="https://github.com/tkrajcar/github-notify-mush">https://github.com/tkrajcar/github-notify-mush</a></p> </div> <section class="field field--name-field-blog-comments field--type-comment field--label-above comment-wrapper"> </section> Wed, 26 Oct 2011 21:12:54 +0000 Eratl 995 at https://community.pennmush.org Potato version 2.0.0b7 released https://community.pennmush.org/node/903 <span class="field field--name-title field--type-string field--label-hidden">Potato version 2.0.0b7 released</span> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><span>talvo</span></span> <span class="field field--name-created field--type-created field--label-hidden">Thu, 2010-09-23 18:08</span> <div class="field field--name-topic field--type-entity-reference field--label-hidden field__items"> <div class="field__item"><a href="/taxonomy/term/13" hreflang="en">Tools</a></div> </div> <div class="node__links"> <ul class="links inline"><li class="comment-forbidden"></li></ul> </div> <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><p>Version 2.0.0b7 of <i>Potato</i>, the <b>graphical MU* Client for Windows and Linux</b>, has just been released. You can obtain it from the <a href="http://code.google.com/p/potatomushclient/">Google Code site</a>. Fun new shiny things include:</p> <ul> <li>Spellchecking (using <a href="http://www.aspell.net">ASpell</a>)</li> <li>Basic SSL support</li> <li>Looooads of bug fixes, including a couple of big ones (particularly important if you play on any MUXes)</li> <li>A few other, less notable but equally shiny, things</li> </ul> <p>Any questions, problems, suggestions, etc, please drop me a page/@mail/email, or open a ticket on the Google Code site.</p> <p>Mike</p> </div> <section class="field field--name-field-blog-comments field--type-comment field--label-above comment-wrapper"> </section> Thu, 23 Sep 2010 23:08:18 +0000 talvo 903 at https://community.pennmush.org MUSHing from your Jabber/XMPP/GoogleTalk client https://community.pennmush.org/node/774 <span class="field field--name-title field--type-string field--label-hidden">MUSHing from your Jabber/XMPP/GoogleTalk client</span> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><span>Steve</span></span> <span class="field field--name-created field--type-created field--label-hidden">Fri, 2009-02-06 12:03</span> <div class="field field--name-topic field--type-entity-reference field--label-hidden field__items"> <div class="field__item"><a href="/taxonomy/term/13" hreflang="en">Tools</a></div> </div> <div class="node__links"> <ul class="links inline"><li class="comment-forbidden"></li></ul> </div> <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><p>FYI, I've created (and recently released) something I call "XMPP Bridge". It is basically an XMPP bot, written in Ruby using XMPP4R, that allows users to connect to local and network accessible text-based apps and servers. This includes MUSHes. When you issue the bot a command to connect to a MUSH, it opens a TCP/IP session on your behalf and then "bridges" all traffic between your XMPP client and the remote server. Currently it can only support simple text, so you aren't going to get any of the fancy graphics or colors, but it is yet another way to allow users to access a MUSH. And there are a HUGE number of users on GoogleTalk, stuck behind firewalls...</p> <p>For more info you can see my write-ups on it (with screenshots) at http://www.stevegibson.com. Or if you just want to check it out from your XMPP or GoogleTalk client, I always have an instance running at bridge@xmpplink.com. Just add that Jabber ID as a contact and send it a chat message containing "!help".</p> <p>And before anyone asks, no, I'm not THAT "Steve Gibson". ;)</p> <p>-Steve</p> </div> <section class="field field--name-field-blog-comments field--type-comment field--label-above comment-wrapper"> </section> Fri, 06 Feb 2009 18:03:10 +0000 Steve 774 at https://community.pennmush.org Using a blogging client with this site? https://community.pennmush.org/node/752 <span class="field field--name-title field--type-string field--label-hidden">Using a blogging client with this site?</span> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><span>Amberyl</span></span> <span class="field field--name-created field--type-created field--label-hidden">Tue, 2009-01-13 15:51</span> <div class="field field--name-topic field--type-entity-reference field--label-hidden field__items"> <div class="field__item"><a href="/taxonomy/term/13" hreflang="en">Tools</a></div> </div> <div class="node__links"> <ul class="links inline"><li class="comment-forbidden"></li></ul> </div> <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><p>I know that in theory, Drupal can be configured to allow the use of normal blogging clients (that support the MetaWebLog API, for instance) to post to the site.</p> <p>I'm trying to figure out how to post via client, and I can't tell if it's my client support, my personal account config here, or the site-wide Drupal config that's causing it not to work.</p> <p>Anyone know?</p> </div> <section class="field field--name-field-blog-comments field--type-comment field--label-above comment-wrapper"> </section> Tue, 13 Jan 2009 21:51:03 +0000 Amberyl 752 at https://community.pennmush.org New MUSH Client for Windows and Linux https://community.pennmush.org/node/735 <span class="field field--name-title field--type-string field--label-hidden">New MUSH Client for Windows and Linux</span> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><span>talvo</span></span> <span class="field field--name-created field--type-created field--label-hidden">Mon, 2008-10-27 19:36</span> <div class="field field--name-topic field--type-entity-reference field--label-hidden field__items"> <div class="field__item"><a href="/taxonomy/term/13" hreflang="en">Tools</a></div> </div> <div class="node__links"> <ul class="links inline"><li class="comment-forbidden"></li></ul> </div> <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><p>It's been a while coming, but I've finally gotten a public beta release of my MU* client out for testing. It's called Potato (don't ask me why;) and you can find it at <a href="http://potato.talvo.com">http://potato.talvo.com</a>. It's a graphical client, and runs on Windows and Linux.</p> <p>It's completely usable, though being a beta release it is missing a couple of things here and there (mostly in terms of documentation and missing menu entries for accessing the features that are present) -- the main features are documented on the website. A couple of minor bugs and missing features have already popped up since I released it, though (many thanks to the people who've already tried it and left feedback!), but I'm working on getting those fixed ASAP. Any comments, suggestions or criticisms are very much appreciated, either on here, by email, or via the ticket code on the website. Hopefully you'll find it useful. :)</p> </div> <section class="field field--name-field-blog-comments field--type-comment field--label-above comment-wrapper"> </section> Tue, 28 Oct 2008 00:36:06 +0000 talvo 735 at https://community.pennmush.org graphviz https://community.pennmush.org/node/590 <span class="field field--name-title field--type-string field--label-hidden">graphviz</span> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><span>raevnos</span></span> <span class="field field--name-created field--type-created field--label-hidden">Mon, 2008-01-21 07:44</span> <div class="field field--name-topic field--type-entity-reference field--label-hidden field__items"> <div class="field__item"><a href="/taxonomy/term/13" hreflang="en">Tools</a></div> </div> <div class="node__links"> <ul class="links inline"><li class="comment-forbidden"></li></ul> </div> <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><p>Tonight I was working on a new tree data structure. It's been a long time since I'd written such a beast -- I've been in the habit of re-using existing ones -- but I didn't see any implementations of the particular <a href="http://en.wikipedia.org/wiki/Radix_tree">structure</a> I wanted to use that met my requirements, and, well... it has been a long time. Need the practice. </p> <p>At one point in debugging, I was thinking that it would be nice to be able to see the entire tree laid out graphically, and see how that changes as things get inserted and deleted. </p> <p>After some poking around, I found <a href="http://graphviz.org">Graphviz</a>, a set of graph-rendering tools put out by AT&amp;T that was easy to use. <a href="http://raevnos.pennmush.org/images/queue.png">Example png</a>. (If you're familiar with patricia/radix trees, you'll notice something odd about that. I'm playing around.)</p> <p>What did I need this for? A way to map integers to arbitrary data. I could have used the existing hash table code pretty easily... but that wouldn't have been fun.</p> <p>Why use integer keys? A couple of things: The main one that I'm also working on is queue process ids (queue pids, cupids... hah! I kill me!). Inspired by Rhost, @halt/pid will let you cancel a single @wait or semaphore. Rhost has some other cupid-related commands I'll be adding too.<br /> Integer maps will be handy for a few other places, too -- commands like @pemit/port that act on socket descriptors, and possibly in command switch testing, and in the linux inotify-based() help file auto-reindexing I recently committed. Maybe some other places.</p> </div> <section class="field field--name-field-blog-comments field--type-comment field--label-above comment-wrapper"> </section> Mon, 21 Jan 2008 13:44:28 +0000 raevnos 590 at https://community.pennmush.org New PennMUSH services! https://community.pennmush.org/node/546 <span class="field field--name-title field--type-string field--label-hidden">New PennMUSH services!</span> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><span>Noltar</span></span> <span class="field field--name-created field--type-created field--label-hidden">Sat, 2007-12-01 16:13</span> <div class="field field--name-topic field--type-entity-reference field--label-hidden field__items"> <div class="field__item"><a href="/taxonomy/term/13" hreflang="en">Tools</a></div> </div> <div class="node__links"> <ul class="links inline"><li class="comment-forbidden"></li></ul> </div> <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><p>After far too long of a wait, I am happy to announce that we have added two new services that will be of use to game owners running PennMUSH.</p> <p>The first is anonymous read-only access to the PennMUSH svn repository. It can now be accessed with any svn client via the following url:</p> <p>svn://svn.pennmush.org/</p> <p>The second is web-based management of your pennmush.org subdomains, written by Walker. This allows those with subdomains to alter the basic dns information for their subdomain without waiting on either myself or Walker to update it. Anyone with an active subdomain should already have received an email with your account information. For those interested in getting a subdomain for use with their game, feel free to contact myself and/or Walker and we will set up the subdomain and an account for you.</p> <p>Suggestions for additional services can be sent to me, as well as ideas for improvement of existing services.</p> </div> <section class="field field--name-field-blog-comments field--type-comment field--label-above comment-wrapper"> </section> Sat, 01 Dec 2007 22:13:35 +0000 Noltar 546 at https://community.pennmush.org Griping about diff and patch https://community.pennmush.org/node/543 <span class="field field--name-title field--type-string field--label-hidden">Griping about diff and patch</span> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><span>raevnos</span></span> <span class="field field--name-created field--type-created field--label-hidden">Wed, 2007-11-14 16:06</span> <div class="field field--name-topic field--type-entity-reference field--label-hidden field__items"> <div class="field__item"><a href="/taxonomy/term/13" hreflang="en">Tools</a></div> </div> <div class="node__links"> <ul class="links inline"><li class="comment-forbidden"></li></ul> </div> <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><p>The diff and patch programs really need:</p> <ul> <li>A way to mark a file as deleted (Instead of turning it into an empty file by deleting every single line in the diff.)</li> <li>A way to rename a file (Instead of zeroing out the old name and creating a file with the new name and all the contents in the diff.)</li> <li>A way to specify the permission bits to use when creating a file such as a script that should be executable.</li> <li>A way to create and delete empty directories.</li> </ul> <p>I should see about making such a beast.</p> <p>Or we could just actually get around to making the subversion repository public (Or I could upload my git copy of the current devel branch).</p> </div> <section class="field field--name-field-blog-comments field--type-comment field--label-above comment-wrapper"> </section> Wed, 14 Nov 2007 22:06:49 +0000 raevnos 543 at https://community.pennmush.org