Skip to content

Ferrum development journal · Part 6 of 19

Game Progress and Measuring the Right Thing

Controlled gameplay in King's Pass was useful progress. Understanding the route, memory growth, and test conditions was just as important as reaching another screen.

Seeing a character move through an actual game is one of the more satisfying parts of this project. The Hollow Knight work reached controlled gameplay in King's Pass, with tests that followed the scene and checked what the game was doing. That was a useful application result, even though a complete human play session, audio, saves, and the rest of the game still needed broader acceptance.

The route itself needed more care than simply holding a direction. A camera movement can make the player look stationary, and a character near the edge of a frame can be difficult to locate. The development work used the scene and the captured images to distinguish a real stall from a change in how the game was being observed.

Performance work also needed better controls. If two guests or a build are competing for the same machine, an apparent slowdown may have very little to do with the code being compared. The project accumulated rules about one guest at a time, recording load, and comparing the same backend and workload. Those conditions are part of the result, not details to leave out of the report.

Memory growth was another example. A long game run can show a problem without identifying which component owns it. Reproducing growth outside the game gives us a smaller case to examine, and it avoids blaming the title for behavior introduced by the translation stack or the harness.

The same period included CPU and translation research, along with packaging and test-isolation work. I'm interested in optimizations that survive a real comparison, but I don't want a faster number produced by changing the workload, lowering the quality, or losing part of the measurement.

So the takeaway from this part of the journal is specific: there was real, bounded gameplay progress, and the measurement process became more demanding. It wasn't a declaration that the game was fully supported or that Ferrum had reached a general performance target. Those are larger claims that need their own evidence.

Ferrum development journal

View the journal

Live19 entries so farUpdated New (19 entries updated in the last 14 days)

  1. Part 1Bringing FEX to macOS: The First Windows ProgramDevelopment work: Aug 5 – 7, 2026Updated , new
  2. Part 2From Return Values to Pixels and SoundDevelopment work: Aug 8 – 11, 2026Updated , new
  3. Part 3Building More of the Windows RuntimeDevelopment work: Aug 12 – 18, 2026Updated , new
  4. Part 4Following a Game Through Its Opening VideoDevelopment work: Aug 19 – 20, 2026Updated , new
  5. Part 5Installers, Saves, Fonts, and the Parts Around the GameDevelopment work: Aug 21 – 22, 2026Updated , new
  6. Part 6Game Progress and Measuring the Right ThingDevelopment work: Aug 23 – 27, 2026Updated , new
  7. Part 7Building the 32-Bit Graphics PathDevelopment work: Aug 28 – Sep 1, 2026Updated , new
  8. Part 8Making Memory, Files, and Graphics State AgreeDevelopment work: Sep 2 – 3, 2026Updated , new
  9. Part 9DirectX 12, Shader Caches, and the Steam Startup WorkDevelopment work: Sep 4 – 6, 2026Updated , new
  10. Part 10Working on Presentation and Controller InputDevelopment work: Sep 7 – 12, 2026Updated , new
  11. Part 11A Launcher and a Freeze That Wasn't the PresenterDevelopment work: Sep 15 – 17, 2026Updated , new
  12. Part 12Portal Reaches a Command Stream, With the Frame Still AheadDevelopment work: Sep 23 – 26, 2026Updated , new
  13. Part 13Correcting the Ferrum Progress ReportDevelopment work: Oct 2, 2026Updated , new
  14. Part 14Recovering the Project and Resuming Real TestsDevelopment work: Oct 5, 2026Updated , new
  15. Part 15Making Memory Protection and Lifetime Tests More UsefulDevelopment work: Oct 6 – 9, 2026Updated , new
  16. Part 16Getting Wine's Real 32-Bit Startup to RunDevelopment work: Oct 9 – 11, 2026Updated , new
  17. Part 17Making the Launcher Own Its Storage and ProcessesDevelopment work: Oct 11, 2026Updated , new
  18. Part 18A Real Archive Roundtrip and Better File BehaviorDevelopment work: Oct 11, 2026Updated , new
  19. Part 19Asynchronous I/O and the Bytes a Cancelled Write KeepsDevelopment work: Oct 11, 2026Updated , new

Arrow keys move through the results, Enter opens one, Command or Control with Enter opens it in a new tab. Tab and Shift+Tab change which kind of results are shown.