![]() |
My corner-match autotiling is more stable and now works in-game! |
tl;dr: Last week I focused on stabilizing my frameworks, so I could use them for Ludum Dare 50!
What happened last week?
Highlights
- Fixes for my new corner-match autotiling system.
- I'd never actually got this integrated with my Surfacer framework and running in a game!
- I'd only been using the autotiling behavior from in the editor.
- So there was a lot of fixing needed here!
- Improvements to my color-configuration systems.
- Lots of miscellaneous framework stabilization work.
- I made a game for the Ludum Dare 50 game jam!
- But I'll cover that in another post.
- For now, here's a link to my game submission.
Laundry list
- Fixes for my new corner-match autotiling system:
- Create a new CornerMatchTile class, in order to disambiguate between the tileset and the underlying custom-autotiling tile.
- Start reconciling old Surfacer tileset configurations with new SurfaceTiler configurations.
- Create new separate demo tilesets for SquirrelAway vs Surfacer vs SurfaceTiler.
- Delete obsolete old versions of corner-match files.
- Reconcile the old Surfacer tileset configuration with the new SurfaceTiler configuration.
- Update CornerMatchTilemap to omit the inner-tilemap if there are no registered CornerMatchTiles.
- Update SurfaceParser to support multiple TileMaps.
- Fix an issue relating to CornerMatchTiles being mapped to multiple outer tile IDs.
- Add support for non-collidable tiles within a SurfacesTileset.
- Fix type references to support either SurfacesTilemap or CornerMatchInnerTilemap.
- Add support for configuring whether corner-match autotiling will include intra-subtile concave-45-degree cusps.
- Fix a tile-binding regression.
- Add support for no subtile collision-margin.
- Fix some issues with clearing cells in CornerMatchTilemap.
- Create a new simpler test level.
- Fix surface-parsing with corner-match tilesets.
- Remove unused non-corner-match tiles from SurfaceTiler demo tileset.
- Fix surface-parsing to work with multiple tilemaps.
- Improvements to my color-configuration systems:
- Record each component of ColorConfigs separately, in order to preserve precision.
- Fix a bug with saving color-config values.
- Add support for using ColorConfigEdit for exported variables within the inspector panel.
- Add property-list definitions to ColorConfig subclasses, to prevent empty getter/setter properties from saving in .tscn files.
- Update ColorConfigEdit to use accordion panels to hide UI when not needed.
- Fix ColorConfigEdit styling.
- Fix a couple color palette bugs.
- Record redundant node references in order to reduce boilerplate in ColorConfigEdit.
- Add a ColorRect to indicate the current color in ColorConfigEdit.
- Update characters to use the new ColorConfig class.
- Replace obsolete ColorParams usages with ColorConfigs.
- Add a checkered pattern behind the ColorConfigEdit ColorRect.
- Move color defaults out of palette classes and into the new color-defaults classes.
- Update get_direct_property_map access to filter on Color/ColorConfig values, so we can define individual hue/saturation/value/opacity variables in the same file that we define color variables.
- Insert default-colors into framework manifest-schemas.
- Remove the now-redundant SurfacerPalette.
- Fix PaletteColorConfig overrides.
- Fix a typo in some color keys.
- Fix a bug with StaticColorConfig independent hsv component assignment.
- If the HSV is 0,0,0, and you then try to assign the S to be 0.5, that assignment won’t actually do anything, because 0,0.5,0 is the same color as 0,0,0.
- So if you are trying to change both S and V, they need to be assigned at the same time, or my StaticColorConfig class needed to be smarter about recording the intended component values.
- Fix a color-config sampling bug.
- Fix a regression with the registration of the color-config property-editor.
- Lots of miscellaneous framework stabilization work:
- Rename and move plugin-accordion files.
- Add a function for accessing Godot’s internal editor icon textures.
- Add logic to populate a single global annotation parameters dictionary with all of the different default values.
- Remove obsolete/redundant SurfacerAnnotationsManifest.
- Insert default annotation parameters into manifest schemas.
- Update _get_common_overrides_for_annotations_mode to be DRY.
- Update MultiNumberEditor and subclasses to support updating the control values from outside the UI.
- Create a reusable reset-button widget.
- Add support for tracking whether a manifest-row value has been changed from the default, and for resetting it back to the default value.
- Fix logic for tracking is_changed for manifest array nodes when children are added and removed.
- Add support for only saving to JSON manifest values that have been changed from their defaults.
- This is important because I need these to serve as a clear indication of what has actually been changed by the user.
- Refactor manifest logic to save all manifests a single file, with a configurable path.
- Remove extra root nodes under each framework panel.
- Add a SquirrelAwayDefaultColors class, to make it easier to quickly set up new colors.
- Add support for multi-line text edits in the plugin manifest UI.
- Move some Surfacer configuration from the old manifest pattern to the new on.
- Add support for subtractive manifest overrides in addition to the additive ones.
- Move framework metadata and schema files from plugin/ to config/.
- Move the configuration of extra profiler metric keys into framework metadata files.
- Move some configuration from framework global to framework schema.
- Move some files from config/ to global/.
- Add a new custom schema type for PackedScene.
- Update to Godot v3.5-beta3.
- Add a check that all required plugins are enabled.
- Remove direct references to Sc from FrameworkPlugins.
- Improve label styling for MultiNumberEditors.
- Update welcome-panel-item manifest configurations to use const variables, so they can be targeted by subtractive overrides.
- Add a general-purpose array-dedup function.
- Fix a long-standing off-by-one-error bug in my json custom type decoding.
- Fix annotation parameter configuration.
- Update utility functions to support cascading operations.
- Fix annotation parameter configuration.
- Fix sound configuration.
- Rename FrameworkMetadata to PluginMetadata.
- Fix SurfaceMark removal to not happen while parsing the platform-graph on demand at play-time.
- Fix a bug with Surfacer profiler metric preregistration.
- Update input-map configurations to use new physical_scancode support.
- Update bootstrapper repo with all of the recent framework changes.
- Debug issues with schema setups being too coupled with SquirrelAway.
- Fix a regression in Time labels from when I'd renamed the Time class.
- Fix a regression with json values being treated as floats instead of ints.
- Start adding a fix for calculating more-successful fall-from-in-air-position trajectories.
- Fix a start-velocity max-speed calculation bug.
- Add support for configuring whether the game window should be moved to the other monitor during local development.
- Refactor frameworks to support dynamic re-assignment of the player-controlled-character.
- Fix exclamation-mark annotation positioning.
- Add support for configuring characters to never navigate to in-air destinations.
What's next?
- Rate and review other Ludum Dare games.
- A small handful of additional framework and plugin fixes.
- A little more work to make my corner-match autotiling system more presentable as a stand-alone package.
- Publish new and updated packages in the Godot Asset Library.
🎉 Cheers!
Comments
Post a Comment