~/talk

Bringing a Legend to Life: Reimagining Rogue in Flutter

Talkat Fluttercon USA 2025 · 2025-06-25..06-26· [flutter, creative-coding]
links:none on file
slides:none on file

Porting a 40-year-old Rogue means rewriting a 40,000-line C codebase that embeds game state inside curses held game state and blocks on a synchronous getch. The solution unpacks state, replaces blocking input with a callback stack for input (not naive awaits), adds a custom RenderObject for scaled text rendering, uses tests and AI to automate repetitive refactors, and plans integration with modern toolchain like Flame + Rive + Firebase to add animations, audio, and persistent high scores.

AI-written summary · about

  1. 0:00Commodore Vic 20 to Flutter Rogue
  2. 1:05Rogue still matters
  3. 4:13Porting old games to modern frameworks
  4. 5:39Magic items for porting success
  5. 7:46Dungeon archaeology
  6. 11:36Porting UI with Flutter
  7. 13:43Refactoring without losing flavor
  8. 15:29Displaying text in Flutter
  9. 17:32Breaking synchronous code
  10. 19:17AI for faster porting
  11. 21:42Polymorphing into modern app
  12. 23:09Lessons learned and next steps
~/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.