"FrankenDrift": Play ADRIFT games on Mac and Linux

Back in May I started work on a project to make ADRIFT games playable on macOS and Linux. The project was quickly put on the back burner when COVID cases in Germany plummeted and I suddenly had a life outside of the internet again, so it’s still a bit basic – graphics and sound are conspicuously absent – but since we have an ADRIFT entry in ParserComp I figured I’d push this development version out right now.


As you can see, text effects (bold, italic, underline, color, and size) are all working.

How I Accomplished This and Origins of the Name

ADRIFT 5 is a .NET application, written in Visual Basic. Since .NET is cross-platform now, porting was mostly a matter of tearing out the Windows-only UI code (WinForms/Infragistics) and redoing the UI using a cross-platform library (Eto.Forms). That’s how I came up with the name: the application is a sort of “Frankenstein’s Monster” consisting of the original Runner logic code with a new UI layer stapled on top, using a healthy helping of ‘glue code’ to make an API that is compatible with how the original Runner interacts with its frontend.

Downloads and Instructions

FrankenDrift currently lives in a temporary home on my site. I intend to put up a GitHub repo eventually.

macOS

The link above has a .dmg download containing a self-contained .app. (“Self-contained” meaning that the .NET runtime and all libraries are included.) Simply download, place the .app in your Applications directory, and run (you’ll probably need to right-click and select “Open” from the context menu to appease Gatekeeper – I don’t have a way to sign these at the moment.)

Linux

Due to the plethora of distros out there, I don’t have similarly convenient bundles available for Linux. But it’s easy enough to build from source.

  1. Install the .NET 5.0 SDK. Instructions for most popular distros are available in Microsoft’s documentation.
  2. Download the source ZIP from the above link and extract it somewhere.
  3. Open a terminal and navigate to the frontend’s source directory:
$ cd path/to/frankendrift/FrankenDrift.Runner
  1. Download dependencies:
$ dotnet restore
  1. Build and run:
$ dotnet run

Windows

While it’s certainly possible to use FrankenDrift on Windows, you should really just download the official ADRIFT 5 Runner instead. If you really must, you can build FD on Windows using much the same procedure that I laid out for Linux.

Known Limitations

The following features are known not to work:

  • graphics
  • sound
  • map
  • separate windows
  • font changing
  • setting the default text font/size/color
  • save/restore menu entries (typing save or restore on the prompt works, though).

That means: If you’re using FrankenDrift you may not be getting the full experience in the games you’re playing! Please don’t judge a game’s presentation based on how it appears in this crutch of an interpreter!

Feedback

If you run into issues that aren’t related to missing features, please drop me a note and I’ll see what I can do (no promises though).

20 Likes

That’s great! Do you think this will ultimately become a pull request on the ADRIFT GitHub? (I suppose you’d have to rebuild all of those remaining features first?)

Also, I see you’re demoing the ParserComp ADRIFT game, “Grandpa’s Ranch.” Does Grandpa’s Ranch include (or benefit from) any of those missing features? Graphics, sound, in-game map, etc.?

Maybe some day. No promises.

It does have those (it’s quite a nice example of ADRIFT’s multimedia capabilities, really), but as far as I can tell they’re not necessary to solve any of the puzzles. But I’ll say this again, just to make sure everyone gets the message:

If you’re using FrankenDrift you may not be getting the full experience in the games you’re playing! Please don’t judge a game’s presentation based on how it appears in this crutch of an interpreter!

1 Like

I’ve heard tales of such a place. Tell us more!

1 Like

Linux
Due to the plethora of distros out there, I don’t have similarly convenient bundles available for Linux.

Building from source is a valid option. I present you some universal package formats you could take a look if you’re interested in format that would work on most systems:

Snap

Flapak
https://docs.flatpak.org/en/latest/first-build.html

AppImage
https://docs.appimage.org/

1 Like

“Where’s the lamb dependency sauce?!” – me shouting at Visual Studio while it is having an existential crisis trying to decide whether or not my dependencies exist.

Anyways, there now is a GitHub repository, and Alpha 3 is up with support for graphics and secondary text windows. A Windows build is included for the sake of completeness, but it kinda sucks unfortunately. (WPF has a very, shall we say, limited idea of what a RichTextBox should do, and doesn’t actually support any text styling :face_with_raised_eyebrow: so I’m afraid the experience is not representative of what you would get on Mac or Linux.)

Note that, on Linux, you will need to install libgdiplus through your distribution’s package manager for graphics to work properly.


Update 2021-07-14: I’ve pushed out Alpha 4 which should address arbitrary hangs/crashes (Windows only) and duplicate text output. (See the issue report and discussion here.)

3 Likes