Deep Dive into One More Push

Discover how One More Push handles physics chaos, UI performance in s&box, and what went into our latest major systems overhaul.

One More Push: Physics Jank, UI Nightmares, and Building a Brawler in s&box


Hey everyone!

It’s been a crazy few weeks of non-stop coding, fixing weird bugs, and completely reworking how One More Push looks and feels. Since we’ve just rolled out a massive update to the UI and core systems, we wanted to take a minute to talk about what this game actually is, why we’re making it, and how things work under the hood.

💥 So, What is One More Push?

At its core, One More Push is our take on a pure physics-driven arena brawler built inside s&box on Source 2.

There are no guns, no headshots, and no cover shooters here. The whole point of the game is impulse management and spatial control. You drop into a shrinking arena, charge up directional force waves, toss heavy props, time your parries, and try your absolute best to launch everyone else off the edge before the zone eats you alive.

It's fast, chaotic, and meant to be played with friends when you just want to knock each other into low gravity space.

😅 Let’s Be Real: Who Is This Game FOR (and NOT for)?
We want to be totally honest about the gameplay loop so you know what you're getting into:
  • If you hate physics jank, this might frustrate you. Source 2's Rubikon engine is amazing, but when you mix high-velocity impulses, exploding barrels, and 4 players dashing into each other at once, unpredictable things will happen. Sometimes you'll pull off an insane 300 IQ parry, and sometimes a rogue anvil will launch you into orbit. We embrace the chaos, but it’s definitely not a hyper-deterministic tactical shooter.

  • It has a weird skill curve. Victory isn't about traditional FPS aim; it's about reading vectors, timing your shift-dashes, managing your energy bar, and knowing exactly when to drop an obstacle to block someone's bounce.

  • It’s pure brawler arcade fun. If you're looking for a deep tactical sim, look away! But if you like fast rounds, upgrading your stats between fights, and hilarious ragdoll knockbacks, you'll feel right at home.

🤓 Under the Hood: Technical Breakdown for s&box Devs

For the fellow developers reading this, here is how we actually wired up the architecture and solved some annoying performance hurdles:

1. Fighting Razor UI & Re-render Lag

Building a cyberpunk UI with custom blur filters (backdrop-filter) and dynamic elements in Razor was a double-edged sword. Early on, having dozens of UI elements updating every frame tanked performance. We rewrote the entire PushHud.razor rendering pipeline, isolating state updates and building a tight BuildHash() calculation logic. Now, Razor only re-draws when actual state data changes (like health percentages, timer ticks, or killfeed entries), keeping the UI smooth at 60+ FPS without input lag.

2. Impulses & Torque Vectors vs. Standard Velocity

Instead of just setting Player.Velocity = Forward * 1000 (which feels floaty and fake), our push abilities calculate dynamic force vectors and apply raw physical impulses and rotational torque directly to physics bodies. This makes collisions feel crunchy and heavy, especially when colliding with weighted props like anvils or tar zones.

3. Dynamic Arena & Anomaly Managers

The map isn't static. We built standalone manager components to keep the match moving:

  • ArenaShrinker handles the progressive floor tile decay and zone boundaries.

  • MapEventManager triggers random mid-match anomalies (low gravity, slippery ice surfaces, wind forces) by directly tweaking global physics properties and friction coefficients on the fly.

4. Menu Systems & Cursor State Handling

With the new GMod-style Q-Spawn Menu (E), the Arena Workshop (R), full-screen settings, and an in-game chat system, input routing became a puzzle. We built a centralized ApplyMouseState() method that dynamically locks/unlocks camera control, manages panel focus, and prevents hotkey conflicts (ESC, E, R, Enter) so you don't accidentally dash while typing in chat.
5. Meta-Progression & Prestige Loop

To give matches long-term goals, MetaProgression tracks player stats and credit earnings across rounds. Players can buy force upgrades, increase their mass (making them harder to push), or reset everything via the Prestige System to earn permanent credit multipliers and Prestige Tokens.

🛠️ What’s Next?

We're currently tweaking prop physics collisions, adding more arena hazards, and polishing weapon sound design.

Jump into the game, try out the new spawn menu and workshop upgrades, and let us know what you think in the comments or on the forum. All feedback (and bug reports!) are super appreciated.

Thanks for playing! See you in the arena. 


Cyber Overhaul

1.0.0
23 September 2026
22 changes in this update

Added

9 changes
  • Added a complete sidebar main menu with cyberpunk aesthetics, animated action buttons, version badge, and live player profile stats.

  • Added a full-screen settings panel with dynamic language toggle (EN/RU), bot spawner switch, battle music toggle, and sensitivity indicator.

  • Added a GMod-style Q-Spawn Menu (held with E) featuring categorized tabs, prop spawning grid with credit costs, and interaction tools.

  • Added the Prestige System tab in the Arena Workshop (R) with Prestige Tokens tracking and permanent +50% credit bonus rewards.

  • Added runtime localization ("RU", "EN") across all HUD panels, menus, spawn items, shop weapons, and hints.

  • Added an interactive in-game chat system with message history buffer, auto-focus text entry, and hotkey hints.

  • Added integrated Hotbar slot containers with key badges, selection highlights, and unlock states.

  • Added new custom 3D models for interactive arena props and hazards.

  • Added a dynamic Killfeed panel with killer, victim, and elimination method badges.

Improved

7 changes
  • Redesigned and scaled the entire HUD layout using @font-face definitions for Orbitron and Chakra Petch fonts.

  • Enhanced UI visual effects with backdrop blur filters, glowing neon highlights, and CSS gradient progress bars.

  • Upgraded smart mouse state management (ApplyMouseState) to flawlessly release and lock camera controls during menu navigation.

  • Optimized Razor panel rendering performance by streamlining BuildHash() calculation logic.

  • Improved UI localization responsiveness to immediately update all screen elements when toggling language options.

  • Updated and reworked 3D models for arena props, hazards, and weapons.

  • Optimized 3D model geometry and textures for better performance and visual fidelity.

Fixed

6 changes
  • Fixed hardcoded Russian text strings across spawn menus, tool panels, and shop cards to ensure full English support.

  • Fixed hotkey overlap conflicts between ESC, E, R, and Enter keys.

  • Fixed UI input state leaks that allowed character rotation while navigating overlay menus.

  • Cleaned up duplicated and obsolete SCSS classes into a single, structured stylesheet.

  • Fixed UI element state desynchronization when opening multiple overlay menus simultaneously

  • Fixed mesh clipping, origins, and physics collision on prop models.

people
Log in to reply
You can't reply if you're not logged in. That would be crazy.