Behind the Scenes of Frenzy Ball
Frenzy Ball started as a weekend experiment: boots chasing a ball on a green rectangle. Players stayed for the weird bounces. We stayed because they did.
Early prototype
The first build used Matter.js for collisions because we wanted deterministic physics in the browser without a Unity export. Canvas rendering kept load times low — important for mobile web where every megabyte costs players. Firebase handled auth so we could sync coins and unlocks without running our own login server.
From one mode to five
Circle Clash came from a question: what if the pitch wrapped into a bowl? Arena Fight borrowed from brawler games — hearts and saws on a square floor. Team Race was inspired by marble racing streams on YouTube. Wrestling Royale added personality and weapons when we saw players betting on outcomes anyway.
Each mode shares rendering utilities but owns its rule set. That separation prevents a change to marble friction from breaking football keepers. It also lets us ship mode-specific polish — arena sound effects, wrestling crowd audio — without risking pitch stability.
Monetization philosophy
We chose ads plus optional lifetime purchase instead of pay-to-win mechanics. Virtual coins unlock cosmetic teams and entertainment bets — not power that guarantees wins. Physics does not read your wallet. Lifetime Pro removes ads and unlocks convenience; it does not rig matches.
Mobile performance battles
iPhone Safari was the hardest target. We capped device pixel ratio, reduced trail effects on touch devices, and disabled desynchronized canvas when it caused flicker. Performance work is invisible until it fails — then players leave. We profile on real mid-range phones, not just dev laptops.
Content and community
Players share clips; we watch which modes spike. Circle Clash and Arena Fight dominate vertical video. Pitch remains the "serious football" option for longer simulations. Team Race spikes during tournament seasons when viewers want sixteen-team chaos.
What we refuse to change
We will not sell match outcomes. We will not add real-money gambling. We will not strip physics for scripted highlights — the product is the simulation. Improvements target readability (HUD, colours, spikes visible in Arena Fight) and stability, not replacing the engine with cutscenes.
Roadmap principles
- Faster cold starts on mobile networks
- More teams and creator-friendly watermark options
- Accessibility: contrast, readable timers, semantic HTML on marketing pages
- Deeper guides so new players understand modes without watching a tutorial video
Thank you
If you play, record, or send bug reports — you shape what ships. Email support@frenzyball.app or tag us on TikTok. The behind-the-scenes work continues so the on-screen chaos stays sharp.
Tech stack summary
React renders UI; Canvas draws the pitch; Matter.js integrates with our game loop at fixed timesteps. Firebase provides auth and cloud saves. Stripe handles checkout. Vite bundles everything for fast deploys to Firebase Hosting. No native app store gatekeeping — updates ship the same day.
Accessibility goals
We add semantic HTML on marketing pages, readable contrast on HUD elements, and noscript fallbacks. Game canvas remains visual-first, but surrounding content should be navigable by keyboard and screen readers.
How feedback reaches us
Support email, social comments, and in-app behaviour (which modes get played) all inform priorities. Performance fixes often come from specific device reports — include iOS version when writing.
Lessons from player feedback
Arena Fight visibility tweaks came from clips where saw spikes blended into motion trails. Mobile performance work came from iPhone users reporting heat and battery drain. We treat social clips as informal QA — if creators cannot see the action clearly, we fix rendering before shipping new modes.
Requests for manual passing controls are common. We decline them for the core product because manual control shifts the genre away from simulation. The identity of Frenzy Ball is watchable chaos, not esports input skill.
Deployment pipeline
TypeScript, Vite, and Firebase Hosting mean small teams can ship fixes quickly. Static content pages generate at build time so SEO articles ship alongside game bundles. We version the site in the footer so support can reproduce bug reports accurately.
Open questions we debate
Should we add spectator chat overlays? Should Team Race support shared obstacle seeds? We weigh complexity against mobile performance every sprint. Features that fail on three-year-old Android phones rarely ship. That discipline keeps the audience broad even if power users want more knobs.
We also debate how much tutorial to show. Too much text scares casual players; too little spawns repeat questions. Static guides and blog posts carry depth so the game UI stays clean.
Security and accounts
Firebase handles password hashing; we never see plain passwords. Purchases link to email for lifetime restore. Ban system targets abuse and hate speech in custom team names. Report issues via support email with device details.
Summary
Frenzy Ball remains a physics-first browser game: five modes, one engine, mobile performance as a constraint, and transparency about virtual coins. We improve visuals and guides without turning the product into a traditional controlled sports title. Thanks for playing, recording, and writing in.