~/talk

From Hell to Heaven: Porting Doom to MAUI

Talkat NDC Oslo 2024 · 2024-06-10..06-14· [dotnet, game-development]
slides:none on file

A WPF Doom engine is ported to .NET MAUI and results in a fully playable build on Windows and Android using shared C# core code, but requires concrete fixes: file access moves into MAUI with an IStreamProvider for WAD files, graphics replace WPF WriteableBitmap with SkiaSharp and a performance-critical unsafe pixel copy to remove stutter, virtual touch and hardware key input use custom handlers/behaviors, and audio uses Fmod; the game runs and colors are corrected on Android.

AI-written summary · about

  1. 0:00Introduction
  2. 3:24.NET MAUI architecture
  3. 7:26MAUI project setup
  4. 11:28File system access in MAUI vs WPF
  5. 15:48Replacing WPF’s WriteableBitmap with SkiaSharp
  6. 21:32UI thread dispatching
  7. 24:12Custom touch controls
  8. 30:49Loading WAD files
  9. 33:10Performance with unsafe code
  10. 37:26Android color inversion fix
  11. 41:31Keyboard controls
  12. 48:30Keyboard input via behaviors
  13. 52:41Key takeaways
  14. 54:26Q&A
~/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.