Finally! The start of the big stretch towards the v0.6 milestone, where you'll be able to do a complete local game! This will require going over all the modules to finalize them, and this version is the base for all that, as it went over the input, flow, and engine loop, which are in depth changes. The next updates will be able to build on top of this, and thus release more often.
This is a dev-only release! Indeed, the changes are big enough to break quite a few things, so this is meant for users that want to be on the bleeding edge, want to help with development, or simply preview the changes. Functionality will be rebuilt over time for the v0.54 release.
This update is massive, but mainly in the internal parts! Here are the main parts:
- Core interface and memory has been reworked in depth, to make it stronger and prepare for v0.7.
- Editor has recived massive UX upgrades for navigation, including state documentation, custom editors, and in-engine tutorials.
- Website is cooler B). Documentation pages are also a lot cleaner now, and can show the reference from the website itself.
- Input is now a dedicated system and can be edited from the castagne editor.
- Flow has now been properly implemented, as well as a FlowFighting specialized module for fighting games.
Some parts have been pushed for further versions:
- Flow: the triggers and exit callbacks have been moved to v0.55, as they need menus to work. Generic flow setup window has also been pushed to a later version.
- AI: has been postponned, since the system was a bit too manual and can probably get better.
- Base.casp: The new base casp is not complete, as it will require some help from the attack and physics rewrite in v0.54
- Updater / Starter scripts: Postponned for later, hopefully before v0.54
Next up is Castagne v0.54! This one will finish this first part of the v0.6 milestone, by allowing you once again to make 2D/2.5D fighting games, but with a cleaner base, easier interface, and more robust tools! Now that the big blocking update is done, the next one should be able to happen in a more gradual manner.
Documentation is available in the dev docs! I probably missed some things in the changelog, and there are probably quite a few bugs. Please try out the version and tell me what you think!
Changes
- Castagne Engine
- Config File
- Config file is now local to the editor and the engine
- Config File now has its own class
- Config File can now differ per instance
- Config Files can now refer to a config skeleton file instead of module defaults
- Genres now have each a base config skeleton
- Parts of configs may also now be stored locally
- Memory Change
- Major design change: modules can now be used for several instances (but only one is running at a time)
- New memory class to represent a memory stack
- New StateHandle class to access data more easily
- Other
- New interface to instance Castagne Engine
- New more defined engine main loop
- Engine doesn't init players and input anymore
- Castagne Modules
- New interface for accessing memory, adapted the modules to take it into account
- Added basefile selection, and all modules can have basefiles now
- Modules can now register state flags for the editor
- All entity and global variables now have “_” as a prefix
- BattleInitData interface for modules changed
- New Module Slot system, to be able to refer to specific modules
- Castagne Core
- Added ExecuteAfter to enable some workflows
- New target system to change entities
- New function to copy variables from targeted entity
- New functions to changes variables in targeted entities
- Castagne Editor
- Custom Editors
- Added option to lock changed to custom editors only
- Config Editor
- Reset now will be based on the value of the skeleton config file if one exists
- Added the ability to add buttons for config windows, like the genre selector
- Tutorial
- Added a tutorial selection interface
- Added a tutorial: Welcome to Castagne!
- First Time Flow
- Added the First Time Launch flow, which will happen for each team member
- First Time Launch can launch the first tutorial
- FirstTimeFlow now launches other windows instead of doing the config itself
- Editor General
- Can start the editor using a specific config file
- Added option to start the main game from the menu
- Locked option to start the main game from the menu until menus are implemented in v0.55
- Various small improvements on editor QoL
- Bugfix: undo/redo cleared on state change
- Editor now has better support for configuration windows
- Genre selector is now virtually non-destructive by using skeleton config files
- Added state flags that can be associated to a state
- State flags can be registered through modules
- Added safemode for the editor (engine doesn't start in this)
- Documentation now also include non-loaded modules
- Can't create new characters inside of the castagne files (new safety)
- Navigation
- Can now filter states based on their state flags
- Added a TODO state flag when TODO is detected in the comments
- Added errors state flags
- Can show states from all previous files in different ways
- Can show helper states alongside the state using them
- Can show overridable states from previous files
- States can now include documentation
- States can now include documentation if overridable
- States are now categorized hierarchically, based on the new
_Category
function
_Tag
has been removed as it was redundant
- Code Editon
- Override state button
- Delete State now targets the selected one, not the open one
- Rename State button
- New logic of base and helper states to help organize
- New state now doesn't override a previous state
- New entity window, to create entities more easily
- Added Entity Templates
- Added code warnings (along with their state flag)
- Bug Fixed: Control+Z now doesn't do weird things with the previous states
- Castagne Parser
- New Skeleton and Basefile system, now stores Skeletons separately for easier access.
- Fixed bug when the file is empty
- Fixed bug where the last line would not be correctly detected on the last file
- Improvements to allow for the additional editor QoL improvements
- Constants have been added and are optimized in the code
- Constants may be defined in states, and overwrite those with the same name of states they call
- Internal variables now must be declared explicitely
- Fixed bug where the parser wouldn't optimize branches
- Base.casp
- Base.casp has now been separated into several files, which must be rebuilt for the later versions.
- Physics, Core, Graphics, Attacks base casp has been filled with some functions, but functionality is not yet at the previous level.
- Flow
- Flow is now an additional module, and can handle initialization in a very generic way.
- Flow can now create as many players as needed
- Flow can create any number of entities per player.
- Flow can override variables at a global, player, or entity level.
- Battle Init Data (BID)
- Added new battle init data system that is more flexible
- Added an editor panel to change BID
- FlowFighting Module
- Added a FlowFighting module for easier fighting game setup
- Added an editor panel to change parameters easily
- Misc
- Removed FightingGame module as its function has been replaced
- Input
- CastagneInput has been added, as a helper class to handle inputs
- Physical Inputs have been added
- Types: Raw, Button, Axis, Stick, Combination
- Game inputs have been added
- Polling system has been redone
- Input rebinding and action creation have been implemented.
- Input Module
- An input phase has been added
- Fake presses have been added, but not tested yet.
- Input layout is now stored here
- Press/release derived inputs are now computed here.
- Physics
- Forward/back is now a derived input.
- Engine
- Device association is now done outside the main loop.
- Editor
- New input viewer tool that can view or override a player's input data.
- New input config window to set up input layouts.
- Can create new physical inputs
- can change game input names
- can change default bindings.
- Graphics
- Fixed bug with pixel size in the 3D graphics module
- Improved the behavior of the AnimLoop function
- Website
- Improved the pipeline
- Made a new CSS / webdesign
- New landing page
- Can now write articles for the website
- New pages for downloads, learn, games, and community
- New documentation pages and system
- Can count page visits and downloads per day (no user tracking, just number of times a page has been accessed).