DaveGreen-Games / ShapeEngine

My custom made engine based on the great Raylib Framework. Main focus is being performant and only using draw functions instead of textures.
MIT License
336 stars 12 forks source link

1.0 Overhaul #25

Closed SoloByte closed 5 months ago

SoloByte commented 5 months ago

Initially, I just wanted to overhaul the input and audio system of Shape Engine. This turned into a year long complete rework. I think there is almost no area of Shape Engine that did not get changed or removed. I took some inspiration from other frameworks (Monogame mostly) on how to setup the basic framework or gameloop. I simplified it and made it more user friendly in general, and removed unnecessary steps.  

One other big part was the new shape and collision system. Now Shape Engine supports a lot of shapes (Segment, Circle, Triangle, Rect, Quad, Polygon, Polyline) and collisions/ intersections work between all of them. The different shapes are all encapsulated in there own struct and I added a lot of helpful functions to them. You can intersect shapes and get all there intersection points with normals, or just overlap them, check if one shape contains the other, or even project shapes along a vector.

Reworking the UI system was really hard. I think it took me 3 iterations to get to the point where it is now. I used Godot’s Control Node system as inspiration for my system and works great now. It is simple enough and it still can do everything I need it to. The UI system now consists of three main parts:

There is a lot more that has changed since the alpha version of Shape Engine (over 600 commits) and too much to write it down here but I think it gives you a good glance at the changes.

I think I got relatively close to my goal and once I use Shape Engine for my next game I will find out really quick what areas still need some work.

Changed / Overhauled

New