PixiJS map pin pulse: 3 beats and stop with NixieFX
Learn how to build a game map pin pulse in PixiJS 8 using NixieFX, featuring a 3-beat attention budget and off-screen skipping.

Stock photo for illustration only, not from the actual event
- Game map objective pin in PixiJS 8 with limited pulse cycles to reduce visual clutter
- Powered by NixieFX 0.1.20 and Pixi.js 8.22.0 running on a fixed 1/60s clock
- Effect features a soft glow and 14 outward sparks lasting 0.7 to 0.8 seconds
- Stop conditions are fully managed in game code rather than effect settings
An objective marker on a game map has one primary job: helping players find their destination. However, if every single pin on the map pulses continuously, it turns into visual noise where nothing stands out. This post explores building a tracked objective pin in PixiJS 8 using particle effects from NixieFX with a strict attention budget, pulsing three times upon opening the map, skipping beats while off-screen, and then stopping completely.
This demonstration runs on pixi.js 8.22.0 and nixie-fx 0.1.20, stepped on a fixed 1/60 second clock. The effect is a single one-shot pulse featuring two emitters: a soft glow that grows and fades over 0.7 seconds, and a ring of 14 sparks moving outward over roughly 0.8 seconds. It does not loop on its own, allowing game code to dictate when to fire it again so all stop conditions stay in one centralized place.

Stock photo for illustration only, not from the actual event
The demo map features 30 pins across an 1100 by 720 map viewed through a 640 by 400 canvas, meaning 9 pins are on screen at a time. Each run lasts 8 seconds, with real WebGL draw calls counted by wrapping drawArrays and drawElements. Every scenario executed three times, yielding identical draw counts consistently across all runs.
Implementing an attention budget for in-game visual effects is a crucial practice in modern game development to prevent cognitive overload and visual fatigue for players. Restricting pulse animations to a limited count and pausing them when off-screen helps conserve GPU processing resources while maintaining a clean and intuitive user interface.
The effect utilizes strictly color over life, size over life, velocity, and drag, marking the export as fully supported for pixi2d. Builders looking to create more complex pulses should verify support via support.backends.pixi2d in manifest.json first, as enabling features like trails, noise, collisions, lights, or sub-emitters downgrades export compatibility to partial status for Pixi.
The effect was authored as JSON and exported via npx nixie-fx export . Alternatively, developers preferring visual tuning can use NixieFX, a visual particle editor for PixiJS that saves in the exact same format. The official PixiJS particle effects guide provides further details on bundle loading and ticker setup used in this demo.
Source: Dev.to
Found something wrong in this article? Report an issue with this article
Comments
Leave a Comment