WCNH codebase: Pre-made sci-fi PennMUSH, Ruby bridge, and fully-coded systems



  • So, I figured I might as well flog this here too.

    If you want to make a sci-fi game and don't know much about code, you should probably check this out.
    http://www.github.com/tkrajcar/wcnh

    It's a complete source code and starter database from a functional sci-fi game. It uses PennMUSH with a mix of softcoded systems, and a custom PennMUSH-to-Ruby bridge that allows for writing of significantly complex systems in Ruby. It has:

    • Multi-racial chargen (softcoded) - loosely based on the FUDGE system
    • MongoDB-backed bulletin boards, following the familiar Myrddin command scheme
    • Event calendars
    • Hand-to-hand combat, with weapons, detailed damage modeling based on race, etc
    • IC communications via 'subspace' (instant channels) and 'tightbeam' (message-based/IC mail)
    • Contracts system for creating TPs in an IC way
    • Economy, with banks and personal accounts
    • Ship cargo mission system, with generated missions based on a basic commodity supply & demand model
    • Full "semi/virtual" item system for creating items with MongoDB attributes attached
    • Full RP (pose, say, etc) logging system, for player 'scrollback', automated XP awards, and admin * review
    • Basic space system (softcoded) with ship movement, classes, etc. Ship combat is not supported.
    • Faction/organization system (softcoded)
    • Basic globals (+finger, who, etc)
    • Room parents, exit parents, etc.

    It was not at all designed to be split out and partially used, but you're welcome to try. It's all open source and I will help support it as best as I can in my free time.

    It's also a bit more complex to set up than your standard MUSH due to the external dependencies. I'm happy to help with that part too.


  • Coder

    @Rince This looks promising and I'm setting it up now. I've been pondering what system to use for an Eclipse Phase game. This might be the one.



  • @Hexagon Sweet. Get in touch with me on MUS*H or the game "demo" port, wcmush.com 2199. It's, unfortunately, fairly unlikely that you'll be able to get it bootstrapped without a bit of help, but I'd love to see our many hours of hard work live on.


  • Coder

    @Rince, do you have the soft code available in a text file format, or only on the live server?

    If the latter, please send me a chat to a sample site where I can see how you approach the logging. Thanks.



  • @Thenomain Yeah, all the systems and softcode is in https://github.com/tkrajcar/wcnh_systems. Navigating it can be a bit tricky if you don't know your way around, though. The RP log system uses @hook/after - see https://github.com/tkrajcar/wcnh_systems/blob/master/softcode/util/hooks.mush for the contents of what the @hooks point to. The underlying code to actually create the log entries in the database is Ruby and is at https://github.com/tkrajcar/wcnh_systems/blob/master/lib/lib-logs.rb .


  • Coder

    We'll see if I can't get this altered to TinyMUX. Thanks for the links.



  • Quick note on this, today I spent some time and did some consolidating that I should've done long ago. https://github.com/tkrajcar/wcnh now is the one-stop-shop for the MUSH code, the Ruby code, and the softcode, and has an updated README with lots of useful information. I also updated and tested the Vagrantfile that's included for bootstrapping a simple VM with all the dependencies installed and confirmed the game compiles and runs fine on it.



  • @Rince
    Can you install any of this without the ruby/etc.? Like, will it even install as just a DB? I admit to a deep curiosity to some of the stuff but have little knowledge of all of the rest of that.



  • Sure, you can grab the DB at https://github.com/tkrajcar/wcnh/blob/master/database.gz.dist and play with it if you want. Just expect lots of #-1s due to not having rpc().

    If you just want to kick tires, come to wcmush.com 2199, create and run through chargen and you can see everything. I'm stepping out for a bit but might be around later to show you around more.