Bee2D - A 2D Engine for Roblox

b2d

Bee2D is a scene-based 2D game engine built directly into Roblox. It runs by itself, is easy to manage, easy to use, and provides loads of features for creating your own two-dimensional games. It utilizes a caching render system to create a performant and optimized development environment that helps you create your 2D games without having to worry about the back end. And did I mention that it’s completely open source?

Some features of Bee2D include:

  • Scene loading system that utilizes individual scene caching for quick loading and drawing assets.
  • Fully object-oriented, with a class retrieval system that’s fast and easy to use.
  • Tile mapping and sprite sheet rendering built-in, as well as image-loading animation components.
  • A full component system. Since Bee2D utilizes game objects (Actors) like Unity, you can add what you want to them and exclude what you don’t.

Future planned features:

  • Sprite sheet animation systems that are built-in so you don’t have to program them yourself.
  • Full plugin and component support.
  • AI pathfinding and learning modules.
  • Tons more - stay notified!

Documentation:
https://thegalaxydev.github.io/Bee2D/api/

Github:

Wally:

Any feedback, discussion, or constructive criticism is absolutely welcome.

31 Likes

I’d suggest using a better Signal API like FastSignal or GoodSignal; (Event == Signal)

The one you have in your library shouldn’t have a common issue with most but it has the issue that it is not consistent with how Roblox works and allocates memory every :Fire call which can be expensive.

:Wait doesn’t return what’s fired, I’m not sure if you expose that API anywhere though, and yielding calls are not supported, if one connection errors it can also break the code that ran :Fire.

Oh and your :Wait uses coroutine.resume instead of task.spawn and that has issues with resuming and stuff on certain cases so yeah.

I can open a pull request for you to implement one of those whatever you choose, and I’ll make it as sure as possible that it works with your code.

2 Likes

If you’d like, I’d absolutely appreciate it. The event system was made some time ago and wasn’t very refined at the time.

I would be happy to! (I really don’t have anything else to do)

Do you have a preference? FastSignal is made by me and it is more plug & play by nature, but I can make GoodSignal also work, GoodSignal is more notable by the dev community due to the dev that made it and also being the first to implement events using the task library. I find FastSignal to be a more refined version of it that fits the Roblox API behaviour better.

I’d prefer your implementation (FastSignal) as it’s the most refined variant. I’ll make sure to credit you in the readme and you can add commented credits in the file itself if you’d like.

Also, if you’d like to discuss additions in more detail, feel free to add me on Discord @Galaxy#1337

1 Like

Can you attach the demo game you made with this?

1 Like

Looks great, but does this support things like physics between UI objects, etc, like Nature2D (A 2D engine made a while ago that I’m pretty sure isn’t being updated anymore)? Is there some kind of wiki? And can it support gui scrolling for things such as large maps/areas like in Undertale where the camera moves along the protagonist character?

1 Like

Physics are in the works for additions at the moment, there is a PhysicsActor but you’d have to set up the physics yourself. Collision detection support is currently set up but untested. Latter of the question was answered on discord. If you have any other concerns/questions let me know!

1 Like