Skip to content
0:00 / 0:00

#serenityos#devilutionx#sdl

Let's port Diablo to SerenityOS!

Andreas Kling

52K subscribers • 8 videos on Hallway

YouTube

Intermediate. Assumes working knowledge.

82K views5 years ago2 recommendations

Systems programmingTools and practiceOperating systemsC++Game programming

Andreas Kling demonstrates how to port Diablo to SerenityOS by iteratively fixing missing C++ APIs, kernel features, and SDL library support.

devilutionX on GitHub: github.com/diasurgical/devilutionX SerenityOS is open source on GitHub: github.com/SerenityOS/serenity Merch: teespring.com/stores/serenityos Follow me on Twitter: twitter.com/awesomekling Sponsor me on GitHub: github.com/sponsors/awesomekling Support me on Patreon: patreon.com/serenityos Donate via Paypal: paypal.me/awesomekling SerenityOS is a Unix-like operating system that I'm implementing from scratch. serenityos.org

Why it's here

2 people recommend this

What people say. Recommended as a great demonstration of the hackability and rapid development iteration speed of SerenityOS.

mythzon Hacker News • Recommends

On “I quit my job to focus on SerenityOS full time”

…never seen this done for an OS before, the turn around time allows for some impressive dev iteration speed. A good preview of this hackability is in his Diablo port, whether it's missing C++ APIs, unsupported lang features, missing SDL port impl, toggling kernel features - it all gets done in 1 sit down session to produce a shiny new Diablo port: link to this video Andreas videos on developing LibWeb/LibJS is one of the best resources I've found explaining how to implement a multi-process web browser, e.g. in this video he goes through the HTML Specs which have enough info in them to develop a HTML spec parser whose behavior is the same across all browser engines: link It's been awesome to see LibWe…

arduinomanceron Hacker News • Recommends

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. link to this video

mythzon Hacker News • Recommends

On “SerenityOS: Year 3 in Review”

…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: link to 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-house. This does mean everything inc. the OS,…

mythzon Hacker News • Recommends

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. link to 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.

stolen_biscuiton Hacker News • Mentions

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 link to this video link

maybevainon Hacker News • Mentions

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 link to this video