You can also use a GUI LXD container for this.<p>1. First, setup your host according to the instructions at <a href="https://blog.simos.info/how-to-easily-run-graphics-accelerated-gui-apps-in-lxd-containers-on-your-ubuntu-desktop/" rel="nofollow">https://blog.simos.info/how-to-easily-run-graphics-accelerat...</a> You will be creating a LXD profile called `gui` on top of the default LXD installation.<p>2. Launch a container with Ubuntu 12.04, an adequately old Ubuntu version, which is still support. Command:
lxc launch ubuntu:12.04 mycontainer --profile default --profile gui<p>3. Copy the deb package of Machinarium into the container. Command:
lxc file push machinarium_20121106-ubuntu_i386.deb mycontainer/home/ubuntu/<p>3. Get a shell into the container. Command:
lxc exec mycontainer -- sudo --user ubuntu --login<p>4. Install the deb package. Commands:
sudo dpkg -i machinarium_20121106-ubuntu_i386.deb &&
sudo apt-get install -f<p>5. Run Machinarium. Command:
/opt/machinarium/Machinarium<p>You can reuse the container to install more software, or dedicate a container for each game.
Hi HN, blog post author here.<p>Rather than just posting the end result that worked, this is my trial-and-error "walthrough" of building a container from start to finish, in order to run several games from a while back.<p>Hopefully, this can get you started with playing these and other games again, or discovering them for the first time! Let me know what you think and if you'd like to see more of this in the future.
I'm bit befuddled why the author decided to use volumes for /source and /install instead of just installing the game into the container image. That way you wouldn't need to keep the game files floating around on the host system and overall would have more self-contained container. You could even get fancy and use multi-stage container so that the installer wouldn't need to be included in the final image.<p>The installer could be run under `expect` so that human interaction is not needed.
I'd really love to see a similar approach but applied to games much older, like the ones you have to pull out a DOSBOX to play, or a Win95 virtual machine. The Win95 games are going to be much more difficult to set up because the VM needs a bunch of stuffs to work properly (sound, video) while the DOSBOX does everything for you.
i managed to run diablo2 (release 2000) on wine in a docker container. with ffmepg streaming it as a video. Was a real eye opener moment to realize what can fit in these things.
If it runs on 16.04 you could put it in a snap package. I really like it for installing older software. I created a snap package for Scratch For Arduino (S4A), which is a pain to get working natively, but in the snap I can mess with multilib and weird dependencies without it affecting my main install.<p>I think the advantage of snaps is that you can get easy access to the host system using interfaces. S4A requires access to the USB Serial devices of the host. In snap the snap I just added the `serial` interface but I'm not sure if Docker has an elegant way to do that.
having put a few older applications into a Docker container, this article tells it like it is.<p>docker run: some error. fix this error.<p>docker run again: another error, rinse and repeat.
I've been trying to get Obsidian (<a href="https://en.wikipedia.org/wiki/Obsidian_(1997_video_game)" rel="nofollow">https://en.wikipedia.org/wiki/Obsidian_(1997_video_game)</a>) to run under emulation, but so far it's been too choppy to be playable.
Machinarium and Botanicula on Steam doesn't provide native Linux versions, but at least both games have "Platinum" support on Proton.
Found a native Linux copy of Machinarium from HumbleBundle. To get it running on Fedora 31 I had only to install single missing dependency:
`sudo yum install libXt.i686`<p>Well, now I'll probably have to beat the game, while I'm at it.