Watch this thread to get forum notifications whenever Profectus is updated!
Profectus is a game engine initially based on The Modding Tree. It’s focused on using modern tools, being easy to work with, and encouraging creator’s, rather than restricting them.
You can view the changelog for all updates, including the one’s that precede this thread, here:
Big things here are the modifiers system and tooltips overhaul. I have other changes I’ve deliberately left out so they can be put in a 0.4.0 release with more severe breaking changes. There might be a 0.3.2 before then fixing any bugs I’ve determined are in the engine after looking through Jacorb’s game’s code
[0.3.1] - 2022-04-23
Added
Render utility methods that always return JSX Elements
Changed
BREAKING Tooltips overhaul
Tree Nodes no longer have tooltips related properties
Tooltips can now be added to any feature with a Vue component using the addTooltip function
Any tooltip can be made pinnable by setting pinnable to true in the addTooltip options, or by passing a Ref<boolean> to a Tooltip component
Pinned tooltips have an icon to represent that. It can be disabled by setting the theme’s showPin property to false
Modifiers are now their own features rather than a part of conversions
Including utilities to display the current state of all the modifiers
TabFamilies’ options function is now optional
Layer.minWidth can take string values
If parseable into a number, it’ll have “px” appended. Otherwise it’ll be un-processed
TreeNodes now have Vue components attached to them
createResourceTooltip now shows the resource name
Made classic and aqua theme’s feature-foreground color dark rather than light
This is a pretty big update! Modifiers are a lot better, saves are smaller, and several things just got cleaned up/improved. HOWEVER, part of these changes will make most existing saves incompatible/error. Do NOT go beyond 0.3.X in a game that’s already live unless you account for these changes in fixOldSave .
[0.4] - 2022-05-01
Added
Saves can now be encoded in two new options: plaintext and lz compressed, determined by a new “saveEncoding” property in projInfo
Saves will be loaded in whatever format is detected. The setting only applies when writing saves
createModifierSection has new parameter to override the label used for the base value
createCollapsibleModifierSections utility function to display createModifierSections in collapsible forms
Fixed
Saves manager would not clear the current save from its cache when switching saves, leading to progress loss if flipping between saves
Layer.minWidth being ignored
Separators between tabs (player.tabs) would not extend to the bottom of the screen when scrolling
Tree nodes not being clicked on their edges
Changed
BREAKING No features extend persistent anymore
This will break ALL existing saves that aren’t manually dealt with in fixOldSave
Affected features: Achievement, Buyable, Grid, Infobox, Milestone, TabFamily, and Upgrade
Affected features will now have a property within them where the persistent ref is stored. This means new persistent refs can now be safely added to these features
Features with option functions with 0 required properties now don’t require passing in an options function
Improved the look of the goBack and minimize buttons (and made them more consistent with each other)
Newly created saves are immediately switched to
TooltipDirection and Direction have been merged into one enum
Made layers shallow reactive, so it works better with dynamic layers
Modifier functions all have more explicit types now
Scaling functions take computables instead of processed computables
BREAKING getFirstFeature has a new signature, that will lead to improved performance
trackResetTime is now intended to be used with a reset button
regularFormat handles small numbers better
Slider tooltips now appear below the slider, not above
Node’s mutation observers now ignore attributes. This shouldn’t have issues with links/particle effect positions, but prevents a lot of unnecessary node updates
OptionsFunc no longer takes its S type parameter, as it was unnecessary. Layer options functions now have proper this typing
Several functions have been updated to take BaseLayer instead of GenericLayer, to allow them to work with this inside layer options functions
Fixed
Particle effects and links would not always appear on reload or when switching layers
Particle effects and links no longer appear in wrong spot after nodes are added or removed
Collapsibles having wrong widths on the button and collapsed content sections
Additive modifiers with negative values appeared like “±” instead of “-”
Buyables’ onPurchase was not being called
Reset button would display “Next:” if the buyMax property is a ref