NeoHabitat: Difference between revisions

From Reno Project
(Created a page for NeoHabitat and wrote a brief blurb about the Hackathon in 2014. Included is a follow up email from Randy on the Habitat mailing list discussing what had happened.)
 
(Wrote up an intro blurb to the NeoHabitat article. This is now the most complete article on the wiki so far.)
 
(2 intermediate revisions by the same user not shown)
Line 7: Line 7:
}}
}}


This is a work in progress, come back soon! Check out the rest of the wiki too.
NeoHabitat is an open source modern revival of the classic [[Habitat]] virtual world, using the original client and a modern server backend. The public server is currently available at [http://www.neohabitat.org neohabitat.org]. You can also download the [https://github.com/frandallfarmer/neohabitat/ source code] yourself and spin up your own NeoHabitat server instance.
 
=Open Sourcing=
Fujitsu purchased the Habitat intellectual property in 1993, with Chip Morningstar and Randy Farmer helping to broker the deal between themselves and what was then LucasArts. In 2013, Alex Handy from the Museum of Art and Digital Entertainment made plans to setup an exhibit about LucasArts at the 2014 Game Developers Conference in San Francisco, CA. Whilst doing research for this, Handy contacted Chip Morningstar to see if he had any Habitat assets he could share that would be used in the exhibit. Chip replied back to Alex by sending him the entire Habitat client and server source code. According to Alex, Chip sent him the source as a joke because he didn't think he could do anything with then 26 year old code <ref>Habitat for humanity: how a classic MMO got a second life, https://www.theverge.com/23025168/habitat-for-humanity-mmo-game</ref>. It was at this point that Alex asked Chip what it would take to get the code building again.
 
Around this time, Alex contacted Fujitsu and got in touch with the right department who would be able to sign off on open sourcing Habitat. Once the approval came through, a hackathon was planned to get things working again.


=Development=
=Development=


==Hackathon==
==Hackathon==
[[File:HackathonFirstImage.png|thumb|An image of the first region brought back online after a successful hack day]]
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.
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.


Line 17: Line 24:


  <nowiki>
  <nowiki>
Randy Farmer <randy.farmer@pobox.com>
Randy Farmer <randy.farmer@xxx.com>
Sep 30, 2014, 6:05 PM
Sep 30, 2014, 6:05 PM
to habitat
to habitat
Line 40: Line 47:
Thanks again for everything! It was awesome.
Thanks again for everything! It was awesome.
Randy
Randy
</nowiki>
After the Hackathon, The MADE was in contact with AOL to see if the original Quantum Link source code could be provided so the original server could be brought back online. Discussions took place for a couple of years, to the point where an employee who had been there a long time was able to find the files needed on old backups. Unfortunately, AOL was sold during this time and discussions closed down and the project had reached a dead end.
==Habitat/Elko Server==
On October 26th, 2016, Randy Farmer sent this message to the Habitat mailing list that was setup to co-ordinate the Hackathon efforts.
<nowiki>
Randy Farmer <randy.farmer@xxx.com>
Oct 20, 2016, 12:25:00 PM
to habitat
Gang,
I've been working on an alternate server for Habitat based on the MADE
open source PL1 code. I've been implementing it on top of Elko
https://github.com/FUDCo/Elko - which is fitting, as it is the 9th
generation descendant of those ideas, but the same creator(s). :-)
The Habitat/Elko server project will be open source also. I hope to
announce first week of November - it won't be fully functional yet, but
I want to have end-to-end login with the client working. When I announce
it, I want to do so to encourage more people to work on it with me to
get it to completion by year's end. It will then be 30 years since the
Habitat Promotional Video.
It doesn't have a repository yet, as it's not ready for anyone. I'm
pre-announcing it to this list because I need your help.
I now have the server working well enough that I can attempt an
end-to-end connection (exactly the one we tested at the Habitat Hack
Day) but find I can't duplicate the conditions.
Though I have the same C64 code and emulator, what I don't have is the
QLink Reloaded server (and configuraion) someone there was running on
hack day. How can I get that same configuration/software?
This is one of the last steps before I package this for GitHub and
announce it to the world. I want to get it working end-to-end well
enough that at least one person can log in and do basic operations
within a region.


I'm thinking of setting up a Slack for this project - Does MADE have a
Slack?


var hatchery = Buffer([0x55, 0xFA, 0x00, 0x01, // Header "U" + Small Forced Reply: #message_DESCRIBE to Region Object
Randy</nowiki>
            // (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)</nowiki>

Latest revision as of 21:11, 10 April 2023

NeoHabitat
NeoHabitat.png
Developer(s): Randy Farmer
Platform(s): Commodore 64, Windows, Mac, Linux
Released: 2018

NeoHabitat is an open source modern revival of the classic Habitat virtual world, using the original client and a modern server backend. The public server is currently available at neohabitat.org. You can also download the source code yourself and spin up your own NeoHabitat server instance.

Open Sourcing

Fujitsu purchased the Habitat intellectual property in 1993, with Chip Morningstar and Randy Farmer helping to broker the deal between themselves and what was then LucasArts. In 2013, Alex Handy from the Museum of Art and Digital Entertainment made plans to setup an exhibit about LucasArts at the 2014 Game Developers Conference in San Francisco, CA. Whilst doing research for this, Handy contacted Chip Morningstar to see if he had any Habitat assets he could share that would be used in the exhibit. Chip replied back to Alex by sending him the entire Habitat client and server source code. According to Alex, Chip sent him the source as a joke because he didn't think he could do anything with then 26 year old code [1]. It was at this point that Alex asked Chip what it would take to get the code building again.

Around this time, Alex contacted Fujitsu and got in touch with the right department who would be able to sign off on open sourcing Habitat. Once the approval came through, a hackathon was planned to get things working again.

Development

Hackathon

An image of the first region brought back online after a successful hack day

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@xxx.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

After the Hackathon, The MADE was in contact with AOL to see if the original Quantum Link source code could be provided so the original server could be brought back online. Discussions took place for a couple of years, to the point where an employee who had been there a long time was able to find the files needed on old backups. Unfortunately, AOL was sold during this time and discussions closed down and the project had reached a dead end.

Habitat/Elko Server

On October 26th, 2016, Randy Farmer sent this message to the Habitat mailing list that was setup to co-ordinate the Hackathon efforts.

Randy Farmer <randy.farmer@xxx.com>
Oct 20, 2016, 12:25:00 PM
to habitat
Gang,

I've been working on an alternate server for Habitat based on the MADE
open source PL1 code. I've been implementing it on top of Elko
https://github.com/FUDCo/Elko - which is fitting, as it is the 9th
generation descendant of those ideas, but the same creator(s). :-)

The Habitat/Elko server project will be open source also. I hope to
announce first week of November - it won't be fully functional yet, but
I want to have end-to-end login with the client working. When I announce
it, I want to do so to encourage more people to work on it with me to
get it to completion by year's end. It will then be 30 years since the
Habitat Promotional Video.

It doesn't have a repository yet, as it's not ready for anyone. I'm
pre-announcing it to this list because I need your help.

I now have the server working well enough that I can attempt an
end-to-end connection (exactly the one we tested at the Habitat Hack
Day) but find I can't duplicate the conditions.

Though I have the same C64 code and emulator, what I don't have is the
QLink Reloaded server (and configuraion) someone there was running on
hack day. How can I get that same configuration/software?

This is one of the last steps before I package this for GitHub and
announce it to the world. I want to get it working end-to-end well
enough that at least one person can log in and do basic operations
within a region.

I'm thinking of setting up a Slack for this project - Does MADE have a
Slack?

Randy
  1. ^ Habitat for humanity: how a classic MMO got a second life, https://www.theverge.com/23025168/habitat-for-humanity-mmo-game