|
10 | 10 | <Title>Shape Engine</Title> |
11 | 11 | <Authors>Dave Green</Authors> |
12 | 12 | <RepositoryUrl>https://github.com/DaveGreen-Games/ShapeEngine</RepositoryUrl> |
13 | | - <Version>5.0.0</Version> |
| 13 | + <Version>5.1.0</Version> |
14 | 14 | <Description>My custom made 2d game engine based on the great Raylib Framework. Main focus is being performant and only using draw functions instead of textures. Custom input, audio, savegame, collision, shape, pathfinding, ui, camera, color palette, polygon fracturing, and text system are available with a few other nice things!</Description> |
15 | 15 | <PackageProjectUrl>https://davegreengames.itch.io/shape-engine</PackageProjectUrl> |
16 | 16 | <PackageIcon>shapeengine-nuget-icon-128px.png</PackageIcon> |
17 | 17 | <RepositoryType>git</RepositoryType> |
18 | 18 | <PackageTags>GameEngine Framework 2D raylib gamedev graphics shapes polygon rect line clipper2 polygonclipping</PackageTags> |
19 | 19 | <Company>Dave Green Games</Company> |
20 | 20 | <Product>Shape Engine</Product> |
21 | | - <AssemblyVersion>5.0.0</AssemblyVersion> |
22 | | - <FileVersion>5.0.0</FileVersion> |
| 21 | + <AssemblyVersion>5.1.0</AssemblyVersion> |
| 22 | + <FileVersion>5.1.0</FileVersion> |
23 | 23 | <PackageReadmeFile>readme-nuget.md</PackageReadmeFile> |
24 | 24 | <NeutralLanguage>en-US</NeutralLanguage> |
25 | 25 | <Copyright>Copyright (c) David Grueneis 2026</Copyright> |
26 | 26 | <PackageRequireLicenseAcceptance>true</PackageRequireLicenseAcceptance> |
27 | 27 | <PackageReleaseNotes> |
28 | | - #Summary |
| 28 | + |
| 29 | + #5.1 Release Notes |
| 30 | + |
| 31 | + ##New Features |
| 32 | + - Add hash function to Coordinates struct (PR #170) – New hashing system added to the Coordinates struct to enable better usage patterns with collections |
| 33 | + |
| 34 | + ##Bug Fixes |
| 35 | + - Grid GetRect function does not use supplied coordinates (PR #167) – Fixed rect calculation in the Grid struct to properly utilize supplied coordinates |
| 36 | + - Mouse On Screen Detection Broken on MacOS (PR #169) – Restored mouse screen detection functionality on macOS after startup issues were introduced in recent GameWindow refactoring |
| 37 | + - ControlNode Selection Issues (PR #171) – Major refactor addressing multiple UI control issues: |
| 38 | + - Fixed selected button staying pressed when switching to another button with mouse |
| 39 | + - Added internal validation to clear current selection when navigation while button is pressed |
| 40 | + - Corrected state management for button press/release detection vs. mouse input detection |
| 41 | + |
| 42 | + ##Dependencies |
| 43 | + - Bump Raylib-cs from 7.0.2 to 8.0.0 (PR #158) – Updated to latest Raylib-cs version wich includes GameWindow, Mouse, and ScreenTexture updates based on the raylib 6.0 release. |
| 44 | + - Automated monthly update of gamecontrollerdb.txt (PR #165) – Updated game controller database |
| 45 | + - Update dependency-versions.txt from csproj (PR #166) – Synchronized dependency version documentation |
| 46 | + |
| 47 | + #5.0 Release Notes |
| 48 | + |
| 49 | + ##Summary |
29 | 50 | The 5.0 release is focused on refactoring and cleanup of existing systems while also introducing a selection of targeted new features to make the engine cleaner, faster, and easier to extend. |
30 | 51 | First of all, the input system was overhauled: there is a new InputActionSettings struct, a redesigned gesture system, and improved gamepad handling. The most notable fix is that gamepads now work on macOS again. |
31 | 52 | Next, the collision system was decoupled from the spatial-partitioning system to allow custom broadphase implementations. The pathfinding system received several improvements and an optional parallelization mode, allowing path requests to be handled concurrently rather than sequentially. The collision system also gained partial parallelization, allowing parts of the collision-detection algorithm to run in parallel. |
32 | 53 | A new resource-packer project was added to bundle resources into text or binary packs, and the ShapeEngine content system was updated to support these packs. Alongside this, I cleaned up and modernized the legacy content system and added simple JSON and XML serializer classes to replace the old, JSON-only serializer. I also included example scenes for JSON and XML serialization; these scenes can load custom JSON and XML files to alter scene behavior at runtime. |
33 | 54 | Many drawing APIs were modernized, renamed, and decluttered. Drawing functions are now all grouped within each shape. New MaskedDrawing* functions were implemented, and StripedDrawing* was overhauled and modernized. Several GitHub workflows were added to simplify repository and engine maintenance. |
34 | 55 |
|
35 | | - #Changelog |
36 | | - ##Input System |
| 56 | + ##Changelog |
| 57 | + ###Input System |
37 | 58 | - [BREAKING] Input system improvements. |
38 | 59 | - [NEW] InputGesture system added (LongPress, DoubleTap, etc.). |
39 | 60 | - [NEW] InputDeviceSettings struct added for easier setup of the input system. |
40 | 61 | - [NEW] InputActionSettings struct added for easier setup of input actions. |
41 | 62 | - [NEW] Automated system for applying the current gamepad mappings added (gamepads now works on macOS). |
42 | 63 | - [UPDATE] Gamepad management improved. |
43 | 64 |
|
44 | | - ##Collision System |
| 65 | + ###Collision System |
45 | 66 | - [BREAKING] Collision system improved. |
46 | 67 | - [BREAKING] Collision system separated from spatial partitioning algorithm to allow use of custom algorithms. |
47 | 68 | - [NEW] Optional parallelization features for better performance added (allows to run certain parts of the collision detection algorithm concurrently). |
48 | 69 | - [NEW] MotionType and BroadphaseType enums added to the collision system. |
49 | 70 |
|
50 | | - ##Pathfinding |
| 71 | + ###Pathfinding |
51 | 72 | - [BREAKING] Pathfinding system improved. |
52 | 73 | - [NEW] Optional parallelization features for PathRequest handling added. |
53 | 74 |
|
54 | | - ##Savegame |
| 75 | + ###Savegame |
55 | 76 | - [BREAKING] Savegame system improved. |
56 | 77 | - [NEW] Savegame folder is now automatically created based on ApplicationName and SaveDirectory. |
57 | 78 | - [NEW] Automated savegame backup system added (automatically creates a backup folder in the savegame directory and it can create and apply backups). |
58 | 79 |
|
59 | | - ##Docs |
| 80 | + ###Docs |
60 | 81 | - [NEW] XML summaries added to every class, member, and function that is public. |
61 | 82 |
|
62 | | - ##Drawing |
| 83 | + ###Drawing |
63 | 84 | - [BREAKING] Overhaul of all outline drawing functions of all closed shapes and polyline to allow using transparent colors without overlapping artifacts. |
64 | 85 | - [NEW] MaskedDrawing* functions added (Allows to only draw a shape or shape outline within a certain area or outside of a certain area). |
65 | 86 | - [NEW] StripedDrawing* overloads added. |
66 | 87 | - [UPDATE] Striped drawing functions improved. |
67 | 88 | - [UPDATE] Striped drawing functions moved into shape structs/classes. |
68 | 89 |
|
69 | | - ##Workflows |
| 90 | + ###Workflows |
70 | 91 | - [NEW] Workflow added to automatically update the gamepad mappings file once a month (SDL GameController DB is used as source). |
71 | 92 | - [NEW] Workflow added to automatically keep ShapeEngines dependencies up to date (raylib and Clipper2). |
72 | 93 | - [NEW] Workflow added to automatically attach Example project builds to new releases. |
73 | 94 | - [NEW] Workflow added to upload ShapeEngine nuget packages to nuget.org (manually triggered only). |
74 | 95 |
|
75 | | - ##Core |
| 96 | + ###Core |
76 | 97 | - [NEW] ApplicationName property added (used for setting up the savegame folder). |
77 | 98 | - [NEW] ShapeEngine now handles capping of FrameRate to the set FrameRateLimit. |
78 | 99 | - [NEW] AdaptiveFpsLimiter class added. |
|
92 | 113 | - [BREAKING] Clipper2 wrapper system completely overhauled and improved (cleaner api, less memory allocations, moved to Path64 from PathD for better accuracy, and much more) |
93 | 114 | - [UPDATE] .net 8.0 updated to .net 10.0 |
94 | 115 |
|
95 | | - ##Shapes |
| 116 | + ###Shapes |
96 | 117 | - [NEW] Polygon GetIncircle() function added |
97 | 118 | - [NEW] Polygon Round()/RoundCopy() functions added |
98 | 119 | - [NEW] Polygon ToAbsolute() function added |
|
101 | 122 | - [NEW] Polygon Triangulate() overload added with ref parameter (reduce allocations) |
102 | 123 | - [NEW] Various new geometric functions added to certain Shapes. |
103 | 124 |
|
104 | | - ##Misc |
| 125 | + ###Misc |
105 | 126 | - [BREAKING] Pool System overhauled and drastically simplified. |
106 | 127 | - [NEW] PerlinNoise class added (thanks to Fixin). |
107 | 128 | - [NEW] ResourcePacker project added - Allows packing/ unpacking of resources to text or binary files. |
|
112 | 133 | - [NEW] PerformanceMeasureWatch class added. |
113 | 134 | - [NEW] MacOS app bundling added |
114 | 135 |
|
115 | | - ##Example Scenes |
| 136 | + ###Example Scenes |
116 | 137 | - [NEW] New Savegame Example Scene added. |
117 | 138 | - [NEW] New XML / JSON serialization systems added. |
118 | 139 | - [NEW] New XML / JSON Example Scenes added. |
|
0 commit comments