Inspiration

Just as Windows Subsystem for Linux brought the power of Linux to those running Windows computers, Minecraft Subsystem for Linux brings the versitility of Linux programs to the ComputerCraft/CC:Tweaked platform!

What it does

Run Docker containers of your favourite operating systems and software, including, but not limited to...

  • Ubuntu
  • Arch Linux
  • Fedora
  • Python
  • NodeJS

All computers are assigned their own containers and are separate from one another. This meansn that each computer can run it's own version of Linux, great for Multiplayer servers.

How we built it

  • Port of node-ansiparser to TypeScript, then to Lua for VT100/ANSI escape sequence parsing
  • Docker, to create containers on the fly when requested
  • TypeScript to Lua, to convert TypeScript to Lua, to avoid coding in Lua

The server-side software runs on Microsoft Azure to ensure that the Minecraft server is not overloaded with Docker requests.

Challenges we ran into

VT100 compatibility is difficult. Unfortunately, most VT100 compatible JavaScript/TypeScript terminal interpreters are destined to write to a website/Electron based application, and not to be written to a ComputerCraft screen.

Accomplishments that we're proud of

Top/bottom margin based scroll buffers, to scroll the middle part of a screen without adjusting the loading bar at the bottom.

What we learned

Never... EVER write a VT100 interpreter.

What's next for Minecraft Subsystem for Linux

Pitch to Microsoft. Sell for a million pounds.

Built With

  • archlinux
  • cc:retweaked
  • cc:tweaked
  • computercraft
  • docker
Share this project:

Updates