Neon Cascade Development Log

The journey of building a physics-driven incremental idle game - from first bounce to neon-soaked launch

Neon Cascade
← Back to Neon Cascade Game Page
March 2026

Another One. March 4 - Launch Day


So... Neon Cascade is live. On itch.io. Right now. Go play it. I'm sitting here at my desk and that sentence still doesn't fully compute.

If you were around for Tessara, you know the drill. I finish a game, I swear I'm going to take a break, and then two weeks later I'm elbow-deep in a brand new project wondering why I do this to myself. Tessara was a hex-grid strategy roguelite. This is... a neon Peggle idle game. With procedural audio. And a prestige tech tree. And a tension meter that can blow up your entire board. I don't know what that says about me as a developer but, here we are.

Today was all about the final push. Two rounds of formal code review, thirteen items in the first pass, eight more in the second. The kind of stuff that would've bitten me on itch.io if I hadn't caught it, absolute paths on the BGM files that would've 404'd in the iframe, a save/load bug that was silently resetting nine fields every time you continued a game (including your FLUX capacity, which meant instant board explosions on reload... oops), canvas null checks, credits going negative. Real ship-blocker stuff. Fixed it all, built the zip, uploaded it, tested it in the iframe, found another issue, fixed it, rebuilt, re-uploaded. I lost count of how many builds. But it's working now.

I also squeezed in some last-minute polish that I'm weirdly proud of. A rainbow particle burst that fires when you upgrade a peg. Wall ripple effects when balls bounce off the board edges. The Go Nova prestige cutscene, neon arc-rings spiraling inward, imploding to a bright point, then exploding outward in concentric rings while the board resets underneath. It's about four seconds long and it makes the prestige button feel like an event instead of a menu click. Little things, but they matter.

The part I keep coming back to is... I built a physics engine. A real one. No library, no framework, just TypeScript and math. Balls that bounce with weight, scatter with randomness, get nudged when they stall, and feel satisfying on every single hit. Three weeks ago that was a blank canvas. Now it's a game with twelve peg types, seven ball types, eight kinds of collection bins, a prestige system with a twenty-node tech tree, cascade chain combos, ten background music tracks, and a photosensitivity warning on launch because there's that much going on visually. That's... a lot. I built a lot.

I'm not going to pretend I'm not nervous. Shipping never gets less scary. But I promised myself after Tessara that I'd keep going, keep making things, keep putting them out there. So here's the second one. It might have bugs I haven't found. Someone might hate the balance. The FLUX system might be confusing. But it's done, it's out there, and that counts for something.

If you play it, I'd genuinely love to hear from you. Tell me what's broken, tell me what's fun, tell me what you wish existed. I'm just a guy making games in his spare time between work and family and life, and every bit of feedback means the world.

Thanks for being here. We'll see what comes next.

The Final Sprint March 1–3


Three days that felt like three weeks. This was the "finish the damn game" stretch, everything that still needed to exist before I could call this thing shippable.

March 1st was a content blitz. Five new peg types landed in a single day, Gravity, Ricochet, Echo, Surge, and Decay. Each one does something genuinely different. Gravity emits a well that bends nearby balls toward it. Ricochet gives perfect mirror-angle reflection instead of scatter. Echo spawns a ghost copy of the ball. Surge activates a board-wide score bonus for five seconds. And Decay is this weird one that never deactivates but loses a tier every time it's hit and slowly regenerates between drops. I also shipped three new ball types, Resonance, Cannonball, and Phantom, plus four new upgrades, a complete bin popover overhaul with a nice 2-column grid layout and shimmer particle effects, and a bunch of economy fixes. Oh, and I renamed Nova Core to Cataclysm and Nova Ball to Burst and "NOVA RESET" to "GO NOVA" because the word Nova was doing way too much heavy lifting.

March 2nd was the Go Nova cutscene. I'd been putting this off because I wasn't sure I could pull it off with just Canvas 2D. Turns out... you can? Eight neon arc-rings swirling inward in a color vortex, "GO NOVA" text pulsing at the center, the rings imploding to a bright point, then exploding outward as concentric expanding rings while the game resets mid-explosion. About 4.2 seconds from button press to fresh board. It's entirely cosmetic and entirely unnecessary and I love it. Also added the photosensitivity warning screen because, honestly, this game has a lot of flashing lights and I'd feel terrible if someone had a bad reaction.

March 3rd was UX polish day. Replaced the old two-step tutorial with a proper eight-step contextual system that guides new players through placing pegs, launching balls, scoring, FLUX pressure, bin config, peg upgrades, cascade combos, and Nova threshold. Every step has a highlight pulse and dismiss buttons and it all persists in the save file. I also went through the entire UI and replaced every generic browser tooltip with styled ones, added progressive disclosure so new players don't see the prestige dashboard or Prism Shards or advanced ball types until they've actually progressed far enough to need them. That alone made the first-time experience feel so much cleaner. And then I added six more BGM tracks, bringing the total to ten, with a shuffle playlist system and a persistent music player in the bottom corner with prev/play-pause/next buttons. The game has a soundtrack now. A real one.

Getting close. Really close.

February 2026

Systems on Systems Feb 26–28


This was the week where Neon Cascade stopped being a physics toy and started being an actual game with depth.

Feb 26th was massive. I built the main menu screen with New Game, Continue, and Settings. Got background music working, four procedurally generated tracks that loop through while you play, with separate BGM and SFX volume sliders in a settings modal. The whole audio architecture uses Web Audio API oscillators and noise buffers, no audio files at all. Every single peg hit, bin entry, chain reaction, and upgrade purchase has its own synthesized sound now. That silence problem from the game feel critique? Gone. Completely gone. And the difference is night and day... hits actually land now, combos build with rising pitch, the Nova Core, sorry, Cataclysm, detonation has this sick rising sweep followed by a reverb tail. I can't overstate how much audio changed the feel of this game.

Also on the 26th: the Chain peg got its full implementation with real lightning bolt VFX that arcs to multiple targets, the Splitter peg fans balls out in a spread that scales with tier, the Multiplier peg got reworked to activate a per-drop score chain instead of a flat bonus, and I added cascade-scaling particle explosions so peg hits get bigger and more colorful as your combo count climbs. Rich tooltips on everything in the shop. Bin overhaul with proper unlock gating. It was one of those days where you just... don't stop. Everything was flowing.

Feb 27th and 28th were about filling in the remaining systems. Bouncer peg with a satisfying vertical kick and "BOING!" text. Coin peg with tier-doubling credit rewards. Prism mode where child balls keep pegs alive instead of destroying them. And then the big one, the cross-reaction architecture overhaul. I replaced a janky boolean flag with a proper chain-depth integer system so abilities could trigger each other correctly. Chain can arc to a Bomb, Bomb can explode nearby pegs, those pegs fire their own abilities at reduced VFX. Cataclysm can sweep the entire board and every peg it touches fires at depth 1. It took a full day to get right but it fixed every weird cross-reaction bug in one shot. Also added the Catalyst peg, which marks a ball so the next ability-bearing peg it hits gets doubled, double Bomb radius, double Chain reach, double Bouncer kick. And the Storm ball, which fires secondary lightning arcs to nearby pegs on every hit. By the end of the 28th, the board was alive in a way it hadn't been before. Chain reactions cascading into explosions cascading into more chains... that's when I knew the name was right.

The Board Comes Alive Feb 22–25


Four days. Four genuinely transformative days.

Feb 22nd was the day the Cascade Threshold system landed, what would eventually become FLUX. The idea was simple: the board should have tension. A meter that fills as balls bounce around and pegs get hit. Let it fill all the way and you trigger a Cascade Overload, a board bust that wipes everything. But keep it in the danger zone, right on the edge, and you're racking up a score multiplier the whole time. Risk versus reward, built right into the idle loop. I also did a complete visual overhaul of every peg type. Each one now has its own shape, gradient overlay, symbol, and animated effect. Upgraded pegs get tier rings that grow and brighten. The board finally looks like something, not just colored dots on a grid.

Feb 24th was a dense day. Renamed "Threshold" to "FLUX" because it just sounded better and fit the neon aesthetic. Added a spring-bounce animation on the FLUX badge when the multiplier activates, a floating multiplier label at the peg impact point during active FLUX. Fixed a nasty bug where Cascade Overload was removing unlocked drop slots. Built the entire Prism Store tech tree, a 20-node prestige upgrade system with SVG-rendered branch connectors, shard currency, and a modal overlay. Each node gates a permanent bonus: starting credits, bin amplifiers, shard magnets. This is the thing that gives the game a reason to prestige more than once. I also shifted the board grid, fixed the slot timer logic, and polished the board background. Productive doesn't begin to cover it.

Feb 25th was Prism Store polish, wider modal, better node sizing, rich hover tooltips with flavour text and tier descriptions. And then I took a breath, looked at the state of things, and realized... this game has real systems now. Not just a physics toy with some numbers going up. Actual interlocking systems with decisions that matter. The FLUX system alone changed how I think about board layout, because now you can't just cram every cell with pegs, more pegs means faster FLUX fill means more bust risk. That tension is everything.

Building the Machine Feb 14–21


So, here we go. New project, new burst of that "maybe this one will be the one" energy. Tessara was barely cold on itch.io and I was already sketching out something new. I couldn't help it. After two months of hex grids and roguelite upgrade trees and drone pathfinding, I wanted to try something completely different. Something... simpler? At least on the surface.

The idea: Peggle meets an idle game, wrapped in a neon arcade aesthetic. Balls drop from the top of the board, bounce through a grid of pegs, score points, land in bins at the bottom. Points become credits. Credits buy more pegs, better pegs, faster drops. The loop never stops. I've always loved incremental games, there's something meditative about watching numbers climb and optimizing the engine you've built, and I'd never tried physics before. So naturally I decided to do both at the same time. Because apparently I don't learn.

The first few days were all physics. Hand-rolling ball collision, bounce scatter, wall reflection, and stall detection in TypeScript with nothing but math. No physics library, no game engine, just Canvas 2D and determination. Getting the ball to feel right was everything, not floaty, not sluggish, weighted and satisfying on every bounce. Random scatter on peg hits so no two drops play the same. A gentle downward nudge if a ball stalls for too long so nothing ever freezes. Wall bounces that feel crisp. That took longer than I expected, but it had to be right. Every other system in this game sits on top of the physics. If the bounce feels wrong, nothing else matters.

By Feb 20th I had a working MVP. Balls dropping, pegs exploding with particle effects, basic scoring, a simple shop, and the first version of the three-panel layout, peg shop on the left, game board in the center, slot management on the right. It looked rough and the balance was all over the place but... it worked. The loop was there. Balls drop, pegs pop, numbers go up, you buy more stuff, balls drop faster, pegs pop harder. That feeling when you watch a ball thread through a dense cluster of pegs and the score counter starts climbing... that's the feeling I was chasing. And it was there, even in the janky MVP.

The rest of that first week was about building out all the systems the MVP was missing. Locked drop slots that players unlock with credits. Peg upgrades by stacking, place the same type on an existing peg and they merge into a stronger version. Visual upgrade tiers with thicker borders, brighter glows, and stat values rendered right on the peg. Cursor feedback when placing. Tooltips on everything. Then the slot system got fleshed out with per-slot configs, independent firing timers, launcher VFX, and the ball type unlock tree. Seven ball types: Basic, Plasma, Nova, Prism, Magnet, Echo, Void, each with different physics behavior and visual trails. The game was doubling in scope every day and I couldn't stop.