NeoHabitat
This is a work in progress, come back soon! Check out the rest of the wiki too.
Development
Hackathon
A Hackathon was held on September 28th, 2014 at The Museum of Art and Digital Entertainment in Oakland, CA to restore Habitat to a working state. Notable attendees included Chip Morningstar, Randy Farmer and others. A Stratus machine from the time period Habitat operated was donated by Stratus to help with the effort and was brought to the museum by Stratus employee Paul Green. The Stratus didn't end up being used due to Quantum Link source code being missing which the Habitat server code needed to compile. Instead, a "wafer thin" server was created which would send a handcrafted packet to the client containing a basic region and avatar. This goal was reached by the end of the night and after 20 years, Habitat was alive again in some form.
Here is a follow up from Randy Farmer to the Habitat mailing list after the event
Randy Farmer <randy.farmer@pobox.com> Sep 30, 2014, 6:05 PM to habitat I wanted to thank everyone who participated in the Habitat Hackithon on Sunday... Though we didn't meet all our goals, we did get several things set up so that we will be able to do this in the foreseeable future. We confirmed that VICE will run Habitat/Club Caribe all the way to rendering the region while serving IO traffic, unmodified! (Win!) We have a working Stratus of the correct vintage up and on the network. We discovered that we need more original QLink header (and ideally actual code) to get the full server up on the Stratus. We were right on the cusp of having an extension to Qlink Reloaded that would mutliplex game traffic between a Habitat server and the client. We have a "Waffer Theen" Fake Habitat Server that I whipped up for Node.JS, which provided the data used to confirm the client working... What we need to do in short order: 1) Finish the QLR gateway code - MacMartin and Steve were very close, but there's nothing on the wiki so that we can pick up where they left off. 2) We need Paul's and Chip's comprehensive list of what's missing for the QLink build, and a strategy to get it (I think Alex said he'd lead this effort.) There's a lot of little other tasks, but these two are the burning ones. BTW, I whipped up another, more interesting "hatchery" contents vector, below. It is hand-crafted isn't confirmed to be working. Perhaps someone using Michael's hack can test it out? There's one more change I want to make to it (put the head on the avatar's shoulders), but only after I know it works. Thanks again for everything! It was awesome. Randy var hatchery = Buffer([0x55, 0xFA, 0x00, 0x01, // Header "U" + Small Forced Reply: #message_DESCRIBE to Region Object // (4) Region/System Variables 0x5d, 0x55, // terrain_type 0x5d, 0x55, // light_level 0x20, // region_depth 0x5d, 0x55, // region_class 0x01, // Who_am_I (NOID) 0x5d, 0x55, 0x5d, 0x55, 0x5d, 0x55, 0x5d, 0x55, //bank_account_balance // (20) Contents List 0x01, 0x01, // Avatar 0x02, 0x24, // Ground 0x03, 0x50, // Wall 0x04, 0x7f, // Head 0x05, 23, // Door 0x06, 56, // Short Sign 0x5d, 0x55, // EOL // (34) Contents state vars, in list order, starting with the Avatar 0x5d, 0x55, // Style 0x54, // X 0x90, // Y 0x02, // Orientation 0x5d, 0x55, // Ani state 0x5d, 0x55, // Contained by (NOID) 0x92, // Avatar: Activity 0x92, // Avatar: Action 0x5d, 0x55, // Avatar: Health 0x5d, 0x55, // Avatar: Restrainer 0x02, 0x34, // Avatar: Customize // (51) Ground: 0x01, 0x5d, 0x55, 0x04, 0xe4, 0x5d, 0x55, 0x5d, 0x55, // (60) Wall: 0x04, 0x5d, 0x55, 0x5d, 0x55, 0xc4, 0x5d, 0x55, 0x5d, 0x55, // (70) Head 0x01, 0xc8, 0x24, 0x10, 0x01, 0x5d, 0x55, // (77) Door 0x5d, 0x55, 0x80, 0x21, 0x88, 0x5d, 0x55, 0x5d, 0x55, 0x5d, 0x55, 0x5d, 0x55, 0x5d, 0x55, // Door State and Key 0,0,0 // (91) Short Sign 0x04, 0x18, 0x88, 0x8c, 0x5d, 0x55, 0x5d, 0x55, 32, 84, 104, 101, 32, 77, 65, 68, 69, 32, // " The MADE " 0x5d, 0x55, // EOL 0 ]); // EOP (113)