Repository navigation
Releases: LukeZurg22/SKSSL
Release list
Version 1.9.0
Tweaked
- Engine config now to one class w. better defaults.
- Refactor / Reworked Entity & EntityUid Handling in ECS
- Cleaned away a lot of needless logic in Refactor.
- Greatly simplified ECS w. respect to world. Kept direct-system functions virtual in entities for versatility.
- Improved Prototype Registration
Added
- Checksum.cs class w. Generate(). Partially fixes #30
This kinda sucks, but it works...? Add call for use; I can't insert it into the engine's base class without cheap tricks to ensure it's called after Extended-Class LoadContent calls complete.
- Added in-depth engine config class w. Documentation.
- Added KeyListPrototype data sets w. optional explicit keys which fixes #23
- Added SpriteComponent, AnimatedSpriteComponent, Transform2DComponent, Transform3DComponent, and MeshComponent basic
componenttypes. - Added full load order support.
- Added in-built [de]serializable statistics & modifiers. (Closes #25).
Statistics do not require the ECS to work, but do work on the Master Registry.
- Added UidPacker utility class.
Fixed
- Screen Settings are now bound to SSLGame initialize.
Version 1.8.2
Added
- Added Mip-Mapping Support
- Added EntitySystem Event Support
- Added EntityContext "Context" Shortcut in Entity System Inheritance
- Added ImGUI Support & ImGuiWindow Template
- Added New ECS Extension Methods
- Added In-Build Console & Command Support
Other
- Finished Shunting Yard Algorithm
- Updated Camera3D
- Tuned DustLogger for File Output
- Refactored ECS Component Registry & ECS Extensions
- Tuned Entity Types now directly spawnable / registerable in the system according to #15
- Switched Localization to Fluent.NET Handling in Refactor (Won't affect existing calls)
- Refactored System Registry to Source Generators (For Performance Reasons)
This should not affect the registration of EntitySystems in any way. The Attribute and a good compile should be enough for the library / engine to do its thing. Existing projects might break in terms of references? They shouldn't given namespace fixes.
Refactor of ECS for better [de]serialization. Versions .1 to here are omitted from releases.
Version 1.7
- Drastically improved Texture Loader to accommodate game content. Fixing #8
- Added Sin3D Classes w. modifications.
- Added Support for additional content managers. This is for externally-referenced libraries.
- A host of minor improvements. See following full changelog for more.
Full Changelog: v1.6...v1.7
Version 1.6
- Refined ECS Toggling System
- Refactored a significant portion of the code, especially involving directory passes. This includes an overhaul of the Texture Loader.
- Split EntityRegistry from EntityManager. The registry only stores definitions whilst the Manager manages them.
- Added "tagging" to yaml files and optional method to trace origin, whether it be mod or game.
- Gutted StaticLoader system in favor of more dynamic pathing. Mod support is innate, now.
Full Changelog: v1.5...v1.6
Version 1.5
- Updated crucial ECS systems to be a bit more verbose.
- ECS systems now accommodate a static context from dynamic scene changes. (Aka: based on current world, and not current context)
- Documentation cleanups.
Full Changelog: v1.4...v1.5
Version 1.4
Yaml Yaml Yaml
- Yaml Loader supports files containing multiple definition types.
- Removed Obsolete Yaml Loader Code
- Switched from YamlDotNet to VYaml wholesale
Resolves #6.
Full Changelog: v1.3...v1.4
Truly I wish there was more to say, but the vast majority of the work for this release has been spent into (or at least, attempting) perfecting YamlLoader.cs for wide-applicable use.
Version 1.3
- Yaml Loader is severely overhauled in some parts.
Note: Though there isn't much to this release, it is still part of a progressive drift away from YAMLDotNet to VYaml, despite the inferior error handling as of 20260218 for that package. #6 still resides with reference to the still-present usage of YamlDotNet references in SKSSL, which should be removed and the code involving such refactored or removed alongside it.
Regardless of the status of the packages and the worst of the code, overall this release brings about a (tested, and functional) change to the YAML Loader at the cost of less verbose error reporting. Projects using the old version of this loader—especially the bulk loader—WILL break.
- Merged Base Yaml Types.
All YAML types now derived from what used to be the separate but certainly not equal BaseYaml and BaseLocalizedYaml classes. Localization was merged into BaseYaml, made virtual and nullable (as to become optional, as per the class split's intentions to begin with) and as a result will break every project that depended on BaseLocalizedYaml. The solution is simply to remove the word "Localized" in the class-type reference.
Full Changelog: v1.2...v1.3
Version 1.2
Changes
- Added basics for rendering spaces. (DO IT YOURSELF!)
- Added SKCamera
Note: To help with 3D spaces, i'm not a monster! - Added Additional Documentation
- Severely Overhauled ECS to depend less on static types.
- A metric ton of cleanup and commentation.
Note: There is still way more to go. - Added UML diagram
Note: It's not perfect. I am breaking a lot of consistency here. But at least it's somewhat legible and can be followed as you're going through the classes. It helps, and that's what it's for.
Full Changelog: v1.1...v1.2
Version 1.1
Changes
- Added Vector2Int
- A metric ton of small fixes.
- Fixes to ECS to read components properly.
- Added default call to register all components.
Note: This forces the ECS to no longer be optional. I'm reconsidering how I want to have the ECS put in. I think i may need to graph everything and their relations so I can find what to isolate.
What's Changed
- Cleaning Up Detached Branches by @LukeZurg22 in #1
Full Changelog: v1.0...v1.1
Version 1.0
First published version of SKSSL. Includes but not limited to:
- Working "Pure" ECS (
n:m) - DustLogger (performance-efficient logging)
- RegistrySystem
Comment: Frankly, I don't really like my own generic registry system. However I don't have the heart to remove it, especially as it has its uses in one of my other projects. However it isn't perfect and the ECS overshadows it in most aspects. As a result, it may be simplified in the future where the ECS will take precedent. - Plenty of Utilities and Extensions
- Custom and Simple Localization Manager
- Texture Handling (outside of MonoGame Content Manager)
Comment: If i remember correctly there is still one call to the MonoGame content manager specifically for loading game content otherwise not found in the game files.
Game folder layouts are rather specific, though I've done my best thus far to make it such that these layouts can be changed.