{
  "id": 16339913,
  "title": "How to run a city builder on 16 MHz",
  "url": "https://urgent.news/2026/10/24/how-to-run-a-city-builder-on-16-mhz",
  "topic": "tech",
  "section": "Tech",
  "published": "2026-10-24T14:18:48.000Z",
  "source": {
    "name": "Lobsters",
    "slug": "lobsters",
    "url": "https://larstofus.com/2025/11/16/how-to-run-a-city-builder-on-12-5-mhz/"
  },
  "original_language": "en",
  "account": "In the early days of computing, city building games like SimCity ran perfectly on CPUs with a meager 16 MHz clock speed. This may seem impossible to modern gamers who expect high performance from their hardware, but the secret lies in clever optimizations. The core of SimCity's simulation is the Simulate() function found in the s_sim.c source file. This function handles all the simulation tasks like traffic, fire, power, and crime. Rather than running every update every frame, the game intelligently skips most of the simulation, calling certain update functions only at specific intervals. This is achieved by using a mod16 parameter that loops through values 0 to 15, determining which parts of the simulation run in each frame. This optimization drastically increases the speed of the simulation without sacrificing much in terms of gameplay. The same principle of distributing work across multiple frames extends to other areas of game development, such as rendering. Assetto Corsa, for example, updates only a few cubemap faces per frame depending on the reflection quality setting. By recognizing which parts of a program's work can be spread out over time, developers can achieve impressive performance on even the most limited hardware.",
  "summary": null,
  "key_points": [],
  "editors_take": null,
  "illustration": null,
  "coverage": {
    "outlets": 1,
    "also_reported_by": []
  },
  "ai_generated": true,
  "disclaimer": "Summaries, key points and the editor’s take are written by software from other outlets’ reporting and may contain errors — always check the linked original."
}