What's up Castagneurs! Now we're truly back in buisiness, with the long awaited v0.55 version! This one marks the completion of the graphics module and its options.
There might be some inaccuracies today, as PhD final crunch period and its consequences made me forget a lot of what I did.
The main big thing is the VFX system, now properly working as intended! It can now do a lot more while still being deterministic, and can now allow for fairly complex effects. Some of the design choices are a bit subtle, like how it even allows for skipping frames or rolling them back seamlessly. This will be useful for future optimizations under the hood. There's also a fair bit of extra stuff for sprites, and CUSTOM CAMERA SUPPORT!
I'm finally able to get back to Castagne develoment in a serious manner, so expect to wait much less for the next updates! There should be a roadmap post up today about what's in store for the next year, please take a look!
TLDR
- VFX have been properly added
- Camera can now be controlled much better
- General graphics and UX improvements
Full Changelog
- Graphics
- Added sprite Z order properly
- Sprite order now updates automatically when attacking / defending
- UI Widgets can now load other assets when mirrored (Godot UI can't mirror stuff itself afaik)
- Can now use custom assets with the default widgets
- Can now adjust shader parameters from CASP
- Sprites now have a color modulation shader parameter
- Camera can now be overriden by entities, with a priority system
- Camera shake is now added, with an less nausea inducing algorithm than other implementations I tried (purely based on my feelings)
- Z-Axis is now handled properly in the 2D physics engine (no impact on physics, but works for graphics)
- VFX
- Added documentation to the VFX functions
- Added a gizmo for the VFX position
- New VFX system allows many parameters to be set as polynomial functions of the number of elapsed frames t of the form at² + bt + c (it's deterministic and can skip directly to the needed frame)
- VFX can also set up overrides: a variable from the entity is copied to the VFX's parameters every frame
- VFX now can have their own sprite z order
- VFX can now set their facing
- VFX can move and accelerate
- VFX can now be set to not delete until their parent entity does
- VFX can use scenes instead of sprites. I'm unsure if it's new or not, but it's in the TODO-list so I'm writing it here
- VFX may now have a custom script with callbacks `VFXCreate(vfxData)`, `VFXUpdate(vfxData)`, and `VFXDestroy(vfxData)`
- Can now specify Z postiion / velocity / acceleration for VFX.
- Can now specify absolute / world space for VFX position / velocity / acceleration. (It was already in but not exposed -- oops)
- Editor
- When a function name is incomplete, suggestions now appear in the documentation box
- Documentation box now shows arguments line by line
- Gizmos have been refactored a bit for easier use
- Bugfix: Gizmos now update when the editor is paused
- Sprite visualiser can now show any sprite of the spritesheet instead of just the first
- Sprite visualiser can now show sprites using their palette mode and the default palette of the character
- Editor now remembers the last opened state for each file and will open it on entering
- Gizmos now work properly with 3D positions
- Updater stops checking updates during tutorials