Consolidate Zork Source Repos
I recently submitted three separate pull requests to add the same change to Zork I, II, and III.
The three codebases share a significant amount of common code, and that version-specific code appears to live in files prefixed with 1, 2, and 3 respectively.
Because of this structure, it seems like all three versions could live within a single repository without losing their individual identites.
Consolidating them would reduce duplication, make cross-version changes easier, and improve maintainability. If preserving "pure" historical sources is a priority, this could be done in a new "consolidated" repo while keeping these separate repos as they are.
Consolidation has already been done on The Infocom Files. I would look there for active development work.
I have also started a new organisation, The Infocom Dungeon, which will aim to respect Microsoft's assertion of copyright by not making repositories public without explicit permission. Permission has recently been given for Zork 1, Zork 2 and Zork 3 to be treated as open source under MIT License.
I would look there for active development work.
Although Microsoft's announcement points to these repos on @historicalsource and says
We will use the existing historical repositories as the canonical home for Zork’s source. Once the initial pull requests land under the MIT License, contributions are welcome.
Is that not true?
The repositories are open-source. How Microsoft uses them has no bearing on how anyone else uses their contents except for the legal requirement to include the LICENSE files.
In any case, I was merely pointing out where development work I know of is taking place. If this is unhelpful, please ignore.
Thanks for pointing out the other active development repos. I agree they're interesting, and you're absolutely right that development can happen elsewhere under the MIT license.
I'd like to clarify why I submitted the patch to the existing “historicalsource” repo. According to Microsoft's announcement, they chose to use the existing historical repositories as the "canonical home" for the source and explicitly stated that once the pull requests to add the license are added, contributions are welcome.
So from that wording I understood that the historicalsource repository is the correct place for upstream contributions rather than a fork or alternate repo. That's why I submitted the change here and am suggesting source code consolidation under historicalsource instead of somewhere else.
If @historicalsource doesn't want contributions after all, despite they announcement saying they're welcome, I'm happy to move elsewhere - but my starting point was based on the announcement establishing @historicalsource as the canonical home.
I can’t see your pull requests for the same changes on zork1, zork2 and zork3. Where are they?
Where are they?
https://github.com/historicalsource/zork1/pulls https://github.com/historicalsource/zork2/pulls https://github.com/historicalsource/zork3/pulls
It appears that The Infocom Dungeon has the same setup where they're split across different repos and Issues appear to be disabled there so I can't bring up this topic.
I just looked and I can’t see them. Can you link to the actual pull requests?
I just looked and I can’t see them. Can you link to the actual pull requests?
It's not clear why. To my knowledge this is all public. https://github.com/historicalsource/zork1/pull/4 https://github.com/historicalsource/zork2/pull/4 https://github.com/historicalsource/zork3/pull/2
Sorry, my mistake. You want a verb synonym added to all 3 games and it would be simpler if the verbs and synonyms were in a common library. I agree.
It seems evident that @historicalsource is not responding to pull requests though. The notable exceptions being the MIT licences on zork1, zork2 and zork3.
I would suggest splitting development between 1. Historical accuracy, where contributions aim to document the code or implement historical version differences and 2. Improvements to the experience that people might actually want to play. I would suggest that the "official" repos be restricted to pull requests with the first goal and that the community create their own fork with the second goal. Ideally, pull requests to the official repo should aim towards making it possible to build various files in a way that's as close as possible to historical Zork binary releases or else to document how the code works and that's all IMO.
This means that adding any new synonymns to verbs in the game should be absolutely not allowed in the official repo. Start a fork for that. Future generations need to maintain access to a set of source code for the game as close as possible to what existed at the time for research purposes, as part of understanding the history of the medium, not to make the game more fun to play.
This project here provides a good example of how to put together a historical source code archiving and documenting project.
The approach I’m taking is to fork zork1, zork2 and zork3 for building and bug fixing the historical code and to create a new project in Inform 7 for an “improved player experience”. See the Inform Dungeon if interested. The suggested change is automatically provided by Inform 7.