Let's port Diablo to SerenityOS!

Andreas Kling · 82K views · 2021 · 1:19:39

Open on YouTube

Operating systems & kernelsSoftware practice, open source & careersC, C++, Rust, Go & systems languagesdemo

Why Hacker News recommends it

HN commenters recommend it as a demonstration of SerenityOS's hackability and fast iteration across all layers of the system.

What it is

Andreas Kling ports the game Diablo to SerenityOS, his from-scratch Unix-like operating system, using the devilutionX project. The roughly 80-minute session shows what porting third-party software to the OS involves.

Recommended by 2 HN commenters across 3 different months, 2021 to 2022.

What Hacker News said

Recommends mythz · 2021-05 · on “I quit my job to focus on SerenityOS full time”

Thrilled Andreas has managed to receive enough community support to be able to take this big step and is able to focus on Serenity OS fulltime. SerenityOS is an inspiring from scratch grassroots OS effort which plans to build the entire POSIX OS, Kernel and core Apps from scratch, one of the Apps their is their LibWeb browser engine complete with their own LibJS JS VM which already passes the ECMAScript test suite. One of its USPs is that the entire OS is contained within its single source tree where anyone can make changes to its code-base and instantly reboot the OS in seconds with the changes, never seen this done for an OS before, the turn around time allows for some impressive dev itera

Recommends arduinomancer · 2021-05 · on “I quit my job to focus on SerenityOS full time”

Haven't heard of this project till seeing this post. Checked out his youtube channel and the video on porting Diablo to SerenityOS in an hour is pretty interesting to watch if you've ever wondered what its like to port software. [this video]

Recommends mythz · 2021-10 · on “SerenityOS: Year 3 in Review”

One of SerenityOS goals I find as its most compelling USP is that it aims to be a "pure" OS free of any 3rd Party libs/binaries so that everything is in the project source tree and nothing needs to rely on or sync with any other upstream project, resulting in anyone can always fix & test any issue or add any feature immediately. A good highlight of this is in the Diablo port to SerenityOS: [this video] Whether it's missing C++ APIs, unsupported lang features, missing SDL port impl, toggling kernel features - it all gets done in a 1hr sit down session to produce a shiny new Diablo port. It was a characteristic Andreas experienced at Apple where all code and expertise for macOS was maintained in-ho

Recommends mythz · 2022-02 · on “Serenity OS: Interview”

Maybe, but I've not seen anyone iteratively make changes to all layers of the OS and get instant feedback as Andreas frequently does. The Diablo port is a good example of this, whether it's missing C++ APIs, unsupported lang features, missing SDL port impl, toggling kernel features - it all gets done in a 1hr sit down session to produce a shiny new Diablo port. [this video] Another nice quality of SerenityOS is that the entire OS is written in modern C++ with everything being written from scratch to use the standard AK libraries which the entire OS and components use, i.e. there isn't any existing App that brings in their own string types or other utils.

Cites stolen_biscuit · 2022-03 · on “SerenityOS Browser now passes the Acid3 test”

Yeah there are app porting guidelines: [LINK] Andreas also uploaded 2 videos on his youtube channel of him porting Diablo and Duke Nukem to SerenityOS [this video] [LINK]

Cites maybevain · 2022-11 · on “Early stages of Google Docs support in the Ladybird browser”

Not sure what your source for ”doesn’t support 3rd party software” is, so it’s unclear what that actually means, but there are numerous examples on Andreas’ YouTube channel about porting software to Serenity, e.g. Diablo [1]. Maybe the text you read refers to the OS itself and all first party software being written without external dependencies? [1] [this video]