2D Game Engine | Upside Engine

I was awaiting this for a while ago. I believe it will simplify 2D development a lot. 2D development in Roblox just got way easier.

5 Likes

Neat engine, but I noticed some problems when playing the testing place.
The character movement is buggy, pressing A and D sometimes gets me stuck in place, and the jumping is borderline impossible to maneuver sometimes.

2 Likes

I’m working on fixing that, I missed it

4 Likes

Would this engine allow for easy implementation of our own systems that usual games have, like inventories, weapons, spells, etc. Or would we have to hard-code all this into the engine?

2 Likes

you would have to code on the engine, they don’t come pre-built, but it should be easy to do since I tried to make the engine as easy to use as possible.

3 Likes

Upside Engine v1.0.1

I strongly recommend that you re-read the installation page as I have changed a few things

New features

  • typescript support
  • docstring support (typescript only)
  • new engine method “Extend”

Update the package with this command:

git submodule update
2 Likes

Upside Engine v1.0.2

Fixes

  • Character movement with default controllers
  • Input detection for mobile and thumbstick

Update the package with this command:

git submodule update

Upside Engine v2.0.0

Changelog

Many things have been changed for the long term health of the project, the following updates will be less likely to break your code probably. It is strongly recommended to go through the tutorial again to learn the new way of working with upside engine.

Breaking Changes

  • The :Create() method has been replaced by .new(name: string)

    • Impact: Any use or reference to the :Create() method in your code will cause errors.
    • Action required: Use .new() instead, .new just accepts a parameter, the class name. It is recommended to go through the get started tutorial again to see the new ways of doing things that were previously done automatically by passing arguments.
  • The :GetService() method has been replaced by .GetService(name: string)

    • Impact: Any use of the :GetService() method using colon in your code will cause errors.
    • Action required: Use “.” instead of “:”.
  • The :Extend() method has been deleted

    • Impact: Any use or reference to the :Extend() method in your code will cause errors.
    • Action required: As we have switched to idiomatic OOP this method is unnecessary…
  • DrawPixels() method has changed all its parameters by the pixel size of the lights

    • Impact: Any use of the :DrawPixels() method with the old parameters in your code will cause errors.
    • Action required: DrawPixels now accepts just one parameter, the pixel size.
  • Scene instance now is a folder

    • Impact: Any use or reference to the scene instance in your code will probably cause errors.
    • Action required: Now the scene and the lighting frames are grouped in a folder. When using .Instance, you access the folder, the scene frame is named “GameFrame”, and the lighting frame “Lighting”.
  • Removed default ScreenGui

    • Impact: The scene will not be displayed as it does not have a ScreenGui/SurfaceGui/BillboardGui as parent
    • Action required: You have to set the scene instance parent to a ScreenGui/SurfaceGui/BillboardGui.
  • The “Load” and “Unload” methods of the sceneManager have been removed and replaced by the “Enable” and “Disable” scene methods

    • Impact: Any use of the “Load” and “Unload” methods in your code will cause errors.
    • Action required: You have to use the scene “Enable” and “Disable” methods instead.
  • The “FindByName” and “HasOne” methods has been removed from the scene object

    • Impact: Any use of the “FindByName” and “HasOne” methods in your code will cause errors.
    • Action required: You can use the same methods in the property “Objects”.

Features

  • Added collision masks
  • Added parallel lighting system
  • Added constant velocity to physical objects
  • Added camera offset
  • Added free camera (The camera follows the character when leaving from the camera limits)

Update the package with this command:

git submodule update
3 Likes

awesome engine, i have waiting for this update

2 Likes

Upside Engine v2.0.1

Changelog

Some changes were made to improve the project performance.

Features

  • Added OnlyTrackVisible property to the scene object

Improvements

  • Physics optimization

Fixes

  • Physics fix: x and y axes are now calculated separately and not together as before, as this caused them not to work correctly
  • Some documentation examples were outdated

Update the package with this command:

git submodule update
2 Likes

Nice engine. you are good creator!

2 Likes

hello, I bought the plugin but its very buggy.
whenever I close a widget im unable to reopen it
sometimes when I select camera the GameFrame turns into the camera frame? very weird
and also theres no documentation on the plugin so its kinda hard to figure out how to use everything

2 Likes

The widgets are a bit buggy, if you mean that the plugin doesn’t “remember” his position and size, I tried to fix it in a lot of ways, but looks like its a roblox bug or something like that.

When widgets are sometimes not visible, you can fix it by right clicking on the toolbar and enabling the widget you want, if one doesn’t appear in the options, click again on the widget you want to make visible (this will be fixed in future plugin releases).

There is a short video about me using it in the documentation, but it’s true, the plugin is not very well documented, in the future I will try to make a tutorial about the plugin, In the meantime, if you have any questions you can join the discord server and I will answer you without any problem :)!

The camera is linked directly to the scene frame, because this allows to create a 2D camera in the most optimal way you can make a 2d camera in roblox, moving every object manually would make a worst moving effect and would give a worst performance.

1 Like

Upside Engine v2.0.2

Some changes have been made before a major update to make the public version more stable in the meantime.

Fixes

  • Delta time was unstable
  • Runtime was executed in server unnecessarily

Update the package with this command:

git submodule update

Upside Engine v2.1.0

Some changes have been made before a major update to make the public version more stable in the meantime.

Breaking changes

  • The ConstantVelocityEnabled property has been removed
    • Impact: Any use or reference to the ConstantVelocityEnabled property in your code will cause errors.
    • Action required: Remove all the references to the ConstantVelocityEnabled property. To emulate the behaviour of this property you can set the property constantly to a specific value.

Fixes

  • Collisions wasn’t working when ConstantVelocityEnabled property was enabled
  • There were some files with .lua instead of .luau, which was incoherent
  • HitboxScale wasn’t working properly
  • Jump looks forced
git submodule update

That’s pretty cool, nice work!

1 Like

Upside Engine v2.1.1

Small fix

Documentation

  • Plugin guide has been added

Fixes

  • False values are not loaded when loading plugin content

Hello, HackerPuppy. I love UpsideEngine so much, is the best 2d engine of the world of roblox. Thank you so much for your efforts and gl with the project.

1 Like

Upside Engine v2.1.2

Some changes to optimizate the client replication

Refactor

  • Network optimization
git submodule update

Hello,

Do you have any other example places? I checked out the slime one and cat one… just wondering about the other ones that are shown in the YT.

Thanks