Upside Engine It's a 2d framework that lets you create amazing games with ease. You can use it to make platformers, puzzles, shooters, and more. Upside Engine has many features to help you design your game, such as physics, animations, sounds and more. Upside Engine is the ultimate tool for 2d game development in roblox.
✅ Collision Masks ✅ Parallel lighting system ✅ Angular Velocity ✅ Parallax Objects ⬜ Beams ✅ Spotlights ✅ Update outdated tests
Some Upside Engine features may not work if you don't have EditableImages enabled in your game
Bugfix release focused on frame-rate independent physics, tiled-floor jump reliability, heartbeat overhead, and lighting resize behavior.
- Fixed fixed-timestep scheduling dropping fractional frame time, which made physics run slow at high FPS caps.
- Fixed intermittent jump failures on tiled/block floors by preserving grounded state from any upward solid collision.
- Fixed proximity prompts repeatedly creating fade tweens while their visible state had not changed.
- Fixed parallax tracker filtering so only tracked
Parallaxobjects are processed. - Fixed lighting chunks keeping the initial Roblox screen resolution after automatic viewport resize.
- Fixed light serialization mutating the original light table and made point/spot lights use the light center consistently.
- Kept actor variable updates direct for lighting/shader data so actor-side serialization always receives raw scene objects.
Major physics overhaul focused on performance and reliability. Introduces angular velocity, optimizes the collision pipeline, and fixes several physics behavioral issues.
Key Features:
- Angular velocity system with collision-generated spin and configurable properties
- Adaptive spatial hash grid for broad-phase collision optimization
- Fixed-timestep physics loop with accumulator pattern
- Improved collision response and jump reliability
- Angular physics properties:
AngularVelocity,AngularFriction,AngularScale,AngularStiffness,Torque. ApplyTorque()method onPhysicalObject.- Spatial hash grid for O(n) broad-phase collision detection (activates at 30+ objects).
- Continuous collision detection via velocity subdivision.
- Spring-damper stabilization system that snaps objects to stable angles when grounded.
- Physics loop now runs at a fixed 250Hz timestep with accumulator cap to prevent death spiral on lag spikes.
- Camera and parallax trackers moved to fixed-rate loop for smoother visuals.
- Collision corrections use min/max per direction to prevent wall-squeeze flying.
- Velocity corrections clamped to never reverse direction.
- Jump uses direct velocity impulse instead of
ApplyForcefor reliability. - GJK/EPA collision modules now use
--!nativeand--!optimize 2for native compilation. - Pre-allocated table buffers to reduce GC pressure.
- Objects flying when squeezed between walls or jumping against walls.
- Jump pausing at apex due to incorrect
IsGroundedpersistence. - Performance regression from spatial grid table allocation (resolved with table reuse).
- Character visual judder caused by camera tracking at different rate than physics.