← Retour au blog
tech 31 July 2026

Setting Timers in Simple Games (Feat. the Frame Rule)

Learn how simple timers can transform your game's dynamics and how the frame rule revolutionized classics like Super Mario Bros.

Article inspired by the original source
Setting timers in simple games (feat. the frame rule) ↗ lynn.github.io

Introduction

In the realm of game development, time management is crucial for creating engaging and dynamic experiences. One of the most underrated yet essential aspects is setting up timers. Whether it's to trigger an event after a certain time or manage repetitive actions, timers are ubiquitous. Today, we'll dive into simple timers used in games, highlighting the famous "frame rule" that changed the game for legendary titles like Super Mario Bros.

Simplicity of Timers in PICO-8

To grasp the essentials, let's take Lua, often used in environments like PICO-8, a virtual console popular for game jams. The idea is to set up a table to store our timers. Here's how it works:

``lua local T = setmetatable({}, {__index = function() return 0 end}) ``

This line of code initializes a table where each new key has a default value of zero, thus avoiding null value errors.

In the _update function, which runs every frame, simply decrement each timer:

``lua for k,v in pairs(T) do T[k]=max(0,v-1) end ``

It's as simple as that! This approach offers incredible flexibility for managing timed events.

Use Case: Making the Player Glow

Suppose you want the player to glow for one second. With a frequency of 60 frames per second, you simply set T.glow=60. To stop this effect, just reset T.glow=0.

Scheduling Future Events

Timers aren't just for managing immediate events. For instance, to trigger a "blip" sound two seconds later, you can set T.blip=120. In your update function:

``lua if (T.blip==1) then sfx(2) end ``

This method also allows you to easily cancel or reset timers.

Non-Global Timers

For more complexity, each object, like an enemy, can have its own timer table, enabling localized and specific management.

The Frame Rule in Super Mario Bros.

The hardware limitations of the 1980s forced developers to be ingenious. In Super Mario Bros., timers were stored contiguously in RAM, each capable of holding a single-byte value, or a maximum duration of 4.25 seconds.

To work around this limitation, a "frame rule" was introduced where certain timers decrement only at predefined intervals. This allows for longer timers without compromising performance.

Conclusion

Simple timers are a powerful tool in game development. They allow for creating immersive and dynamic experiences with minimal code complexity. Whether you're aiming to craft a game for a hackathon or develop the next big hit, understanding and mastering these concepts can make all the difference.

Let's discuss your project in 15 minutes.

timers game development frame rule PICO-8 Super Mario Bros.
Deepthix newsletter · 100% AI · every Monday 8am

An AI agent reads tech for you.

Our AI agent scans ~200 sources per week and ships the best articles to your inbox Monday 8am. Free. One click to unsubscribe.

Visit the newsletter page →

Want to automate your operations?

Let's talk about your project in 15 minutes.

Book a call