Final Godot 3 update time! With this, I will be able to focus on the next versions. This version focuses on having complete builds you can bring to events. It’s a bit rough to allow me to finish it faster, and as always for a commerical game you really want to implement your own menu with cool graphics.
Next versions will be released on the UNSTABLE branch for a while until I’m confident in the beginner-friendliness and stability of the Godot 4 version. There are breaking changes incoming, although the main ideas behind the engine stay the same. I don’t expect CASP itself to go through a lot of changes, but the base CASP files will be rewritten. Take that into account for your game development.
Two additional things:
TLDR
- Battle Flow is done for both training and normal battle. Games are fully playable.
- Added Menus including input rebinding.
- An AI System to create CPU opponents!
- Bugfixes and improvements
Full Changelog
- Editor
- Castagne config file is now more robust to vcs and manual edit
- Editor can start in fullscreen or not separately from player parameters
- Can now toggle between normal match mode and training mode in the editor
- Added an editor detection flag that activates on editor mode only:
EF_Editor
- Editor now shows the result of a match if it ends
- Editor Hot Reload now has a proper shortcut (Shift+Ctrl+R)
- Logs now show the current state of the entity
- Editor compile window now shows only the last 1200 errors/logs. This mostly affects the slowdown when there are too many logs.
- Fixed input override tool not working
- Can now change the aspect ratio of the window in the editor
- Repaired character editor having trouble with editor character order
- Added
_GizmoPoint to add a small gizmo manually from CASP to visualize state specific stuff.
- Menus and Options
- CSS is now properly functional
- Added a post-battle menu that can rematch
- Options are remembered in release builds
- Added fullscreen toggle in options menu
- Can rebind game and menu inputs from the options menu (some fallback with mouse if needed)
- Can set some inputs to not be bindable in the menu (must manually change castagne config to do so)
- AI
- AI system added to Castagne, very manual.
ai is now an option for input devices, which activates AI Phase
- AI Phase executes before Input Phase for each main entity whose player’s input device is
ai
- AI state can be different than entity state, and can be manipulated with
AITransition and AITransitionHere
- Attacks now set the AI state to themselves by default
- Simple AI behavior added: Walking around back and forth
- Added
AIAttackCancelOnHit/Block/Touch as helpers to make attack cancels, uses InputTransitionManual under the hood.
- Flow
- Added a training mode detection flag that activates on editor mode only:
TF_Training
- Training mode now prevents death.
- Intros have been added to normal battle.
- Round win and timeout logic has been implemented
- Characters can now request for the game to end directly with an optional argument
- Matches can now end and call an exit callback of the form
(stateHandle, caller, argument)
- Added a Reset event and a flow for Round Start resetting
- Added Training Reset to training mode and editor
- CASP Functions
- Attack can avoid killing with the
NoDeath attack flag
- Added
GetConfig(), GetPlayerVariable(), and GetGlobalVariable() for some extra flexibility
AttackInflictedHasFlag now allows you to know if one has been used
- Added
CallEvent CallEventOnTarget and BroadcastEvent to trigger events from CASP
- Added
BroadcastFlag and BroadcastUnflag to manipulate flags on all entities
InputPress / InputRelease fixed to work with the recent input modifications
- Added
InputTransitionManual which will try to trigger an Input Transition if possible
- Attack cancels can now be manipulated further by adding and removing attacks to the “done cancels list”, allowing you to reuse them or prevent them.
- Misc
- Added and closed the Castagne survey
- Added a check to the input code so that it doesn’t crash when a keyboard input is unspecified
- Added a fallback state script for when the state script is undefined. This doesn’t change the state.
- Characters now can’t use the same palette by default in regular battle
- Solved most warnings from Godot
- Fixed: Subentities don’t spawn UI widgets anymore
- WONTFIX: Entity transitions don’t work. Bit too complex to fix when it’s gonna get rewritten soon.
- WONTFIX: When colbox widths are different, the characters can get dragged around by the arena walls. Will fix in 0.6x cycle.
Video Transcript
- Castagne v0.57
- Castagne v0.57 releases today! This is the last main Godot 3 version, as the next will be on Godot 4.
- This version focuses mostly on AI, flow, and menus. This allows to make simple playable builds you can bring at playtests.
- The full changelog is available on the website, link in description.
- Battle Flow
- Training mode can be detected through the
TF_Training flag to add various functions
- Normal battles have been added with intros, timeout, and rounds.
- Characters can request the round to restart or game to end themselves.
- Castagne can then execute a callback on exit which allows for custom game flow for your own submodes.
- A simple example would be a story mode battle which branches the scenario depending on the result. The callback
- This is testable from the editor, with battle results being displayed.
- AI System
- AI system has been added to Castagne, has to be set up manually. Activated by setting
ai as an input device.
- AI works using a parallel state machine that can simulate inputs.
InputTransitionManual in particular helps start attacks.
- Additional helpers such as
AIAttackCancelOnHit help create behavior quickly.
- At the moment, most AI behavior is on you to make.
- I recommend making a few basic AI states with simple strategies that switch between them depending on range and random chance using R branches.
- Once in an attack, use
AITransitionHere and implement attack specific behavior for combos and blockstrings.
- This is how Kronian Titans’ AI used to work, and is how Molten Winds’ AI currently works.
- Menus and Options
- Character Select Screen is now fully functional.
- Post battle screen has been added.
- An Options menu has been added. Options are remembered on startup.
- The editor doesn’t takes these into account if a switch isn’t raised in the config.
- Added an option for fullscreen, both editor and release builds.
- Added input rebinding. A fallback is available with the mouse.
- Some inputs can be excluded from that screen, but this must be done manually in the castagne-config.json file
- Editor
- Editor now adds the
EF_Editor flag, which allows for editor-specific behavior.
- Logs now show which state the entity is in. It also now only displays the last 1200 logs for performance reasons.
- You can now change the aspect ratio of the editor game window.
- Added
_GizmoPoint as a CASP function that shows a gizmo in the editor to visualize some values.
- Misc.
- The castagne-config.json file is now pretty, which makes it easier to edit and merge in VCS.
- Several CASP functions have been added, which help in specific cases.
- Events and flags can now be called / raised on several entities directly
- You can now access config, player, and global variables from CASP
AttackInflictedHasFlag now allows you to parse the attack data from the attacker side.
NoDeath attack flag now allows to prevent death from said attack.
- Several small fixes and improvents have been added overall, check the full changelog for details.
- Future
- The Godot 3 version won’t get more updates from me, but I’m accepting community patches. If there are, a final Godot 3 release will be made available.
- After that point, the Godot 3 version is officially discontinued, but will stay on the website for those that need it.
- I will be working on a Godot 4 version along with a deeper rewrite now that the software has shown how it wanted to be used.
- This will take a lot of time, and as such I will only release them on the UNSTABLE branch until it is truly ready.
- You may continue to create your game in the Godot 3 version. While CASP is not scheduled to change much, the base CASP files are going to change.
- As such, attacks are mostly safe, while system mechanics will require a bit of porting. Assets are more godot dependant so that depends on what you did with them.
- The transition will be manual, as it’s too complex for a script. A porting guide will be made available online.
- I do recommend to keep working on your project, but keep that transition in mind so that it won’t be too harsh.
- One way would be to spread that difficulty over time by hopping on the first unstable versions and keep the order of work in mind, as before.
- Regular communications will be made on design and progress so that you may adapt, similarily to this video.
- The aim of all these changes is to go from this draft version, which is already usable for commercial games, to one that truly achieves the vision of an efficient and flexible engine.
- See you next time!