Skip to content

notreux/UpsideEngine

Repository files navigation

Upside Engine

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.

Get Started Documentation

Roadmap

✅ Collision Masks ✅ Parallel lighting system ✅ Angular Velocity ✅ Parallax Objects ⬜ Beams ✅ Spotlights ✅ Update outdated tests

WARNING

Some Upside Engine features may not work if you don't have EditableImages enabled in your game

Changelog v3.3.1

Summary

Bugfix release focused on frame-rate independent physics, tiled-floor jump reliability, heartbeat overhead, and lighting resize behavior.


Fixed

  • 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 Parallax objects 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.

Changelog v3.2.0

Summary

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

Added

  • Angular physics properties: AngularVelocity, AngularFriction, AngularScale, AngularStiffness, Torque.
  • ApplyTorque() method on PhysicalObject.
  • 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.

Changed

  • 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 ApplyForce for reliability.
  • GJK/EPA collision modules now use --!native and --!optimize 2 for native compilation.
  • Pre-allocated table buffers to reduce GC pressure.

Fixed

  • Objects flying when squeezed between walls or jumping against walls.
  • Jump pausing at apex due to incorrect IsGrounded persistence.
  • Performance regression from spatial grid table allocation (resolved with table reuse).
  • Character visual judder caused by camera tracking at different rate than physics.

About

A 2d roblox game engine

Topics

Resources

License

Stars

45 stars

Watchers

5 watching

Forks

Sponsor this project

 

Packages

 
 
 

Contributors