For reasons I don't fully comprehend, I've always been mega-obsessed with EarthBound, a quirky RPG for the Super NES, released in 1995. I also greatly enjoy text adventure games in the vein of Zork.
In 2012, I decided it would be fun to write a port of EarthBound as a text adventure game. I worked on it for a little bit and then promptly got bored and moved onto something else.
In 2016, I stumbled upon the code I had written and decided to play around with it a little more. In the course of refactoring the (admittedly terrible) Ruby code I had hacked up several years prior, I came upon the realization that, in lieu of writing my own interactive text adventure environment from scratch, I could hijack Ruby's interactive shell, irb and re-purpose it as a text adventure engine. Thanks to the open-ness and extensibility of irb and the Ruby language itself, this actually turned out to be pretty doable. Commands like look
, attack
, and inventory
could be implemented as functions in the context of the shell environment. Thus, IRBTHBOUND was born.
(I actually ended up using Pry for the extra flexibility it provides over irb
, like being able to redefine the prompt dynamically, etc. Perhaps it's a bit of a stretch to still call this irbthbound, but hey -- close enough, right!?)
I've tried to remain as true to the spirit of EarthBound as possible with this port. In the interest of making the game mechanics as similar to the SNES game as possible, I have researched and translated known formulas for things like the probability of events happening during battle, damage calculation, level-up curves for each character, etc.
Prerequisites: Ruby, Bundler
Run gem install irbthbound
to grab the latest release.
Running irbthbound
with no arguments will start a new game.
As you're playing, you'll be able to save the game, which will write some slightly encrypted game data to a file on your hard drive. To pick back up where you left off, run irbthbound /path/to/the/file.sav
.
Clone this repo and run bundle install
to install dependencies.
bundle exec bin/console
will get you into a development REPL.
You can run irbthbound
without installing it to your system (and including any changes you've made locally) by running bundle exec exe/irbthbound
.
rake build && rake install
builds what you've got and installs it locally, including the irbthbound
executable, which you can then run.
rake release
to deploy to http://rubygems.org.
- Fork this repo
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create a new Pull Request
Earthbound: The War Against Giygas! is copyright 1994-1995 Shigesato Itoi / APE
This is a totally unofficial port, in no way endorsed by Itoi, APE, or Nintendo. Consider it a work of interactive fan-fiction.
Programmed by Dave Yarwood, 2012-2016