~/talk

From Hell to Heaven: Porting Doom to MAUI

Talkat CPH DevFest 2024 · 2024-08-26..08-30· [dotnet, game-development]
slides:none on file

A .NET WPF Doom port is adapted to .NET MAUI by reusing the core engine, packaging the WAD into the app container and swapping WritableBitmap for SKBitmap via SkiaSharp and SkiaSharp.Views.Maui.Controls. Index‑8 palette frames get converted to RGBA in managed code then rewritten with unsafe pointers for a large speedup; Android required a per‑platform red/blue channel swap. Touch input uses handler mappers for virtual buttons and a visual‑tree keyboard hook delivers hardware keys; result is a fully playable cross‑platform build.

AI-written summary · about

  1. 0:00Introduction
  2. 3:56.NET MAUI overview
  3. 7:05Migrating Doom WPF project
  4. 11:23MAUI project setup
  5. 13:57Migrating view models
  6. 15:44SkiaSharp graphics
  7. 22:51Mobile file system access
  8. 27:08Doom engine initialization
  9. 31:58Graphics rendering fix
  10. 34:06Performance optimization
  11. 38:28Color differences handling
  12. 39:55Touch controls
  13. 48:40Keyboard support
  14. 53:39Key takeaways and closing thoughts
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.