Skip to content

Releases: Relintai/broken_seals

0.3.13

22 Aug 09:01
Compare
Choose a tag to compare

General

WorldGenerator

  • Reworked how spawn positions work in the world_generator addon. Now all resources have overridable methods, and all of them are collected based on those. Also now the spawner works in local space.
  • Now the dungeon spawner also uses local coordinates.
  • Removed parent_positions from WorldGenBaseResources, and also removed the setup() method. I'ts better this way, as they are resources, and now they can be reused (even though the gui itself doesn't support it). Spawning code is also simpler.
  • Added min and max size support for the world generator addon.
  • Removed the dungeon teleported from the test zone.
  • Added an another layer to the world generator addon. Now subzones contain subzone props. Reworked the old subzones into these.
  • Emit the zoom_changed signal in EditorZoomWidget when setting the zoom value through the zoom property.
  • Set a usable initial zoom value in world generator's rect editors.
  • Added size indicators to the world generator addon's rect editors to show how big a chunk is at the current zoom level.
  • Now the editor_class is on top of the editor_additional_text in RectViewNodes.
  • Removed the additional text for the current world generator resources.
  • Now WorldGenBaseResources can draw additional graphics to the RectViewNodes.
  • Draw the bevel and radius to the world editor's rects for the test continent.
  • World generator's resources now can also draw to the editor gui when actually edited.
  • Made the test continent also draw radius and bevel indicators when edited.
  • Moved tree spawning out from the test zone to a new forest subzone.
  • Moved the mob spawning logic from the test zone to a new mob spawner SubZoneProp.
  • Now the world generator addon's datalist popup will focus the line edit for changing the resource's name. Also it will accept enter as ok.
  • Now the world editor tries to center rects of the newly opened resources better.
  • Also handle if the y axis is bigger in the rect editor.
  • Size newly added resources in the world editor properly.
  • Now the resource names are directly editable using the DataList tree in the world generator addon's ui.
  • Removed the name edit dialog from the DataList.
  • Set the resource's new name using UndoRedo.
  • Added a new request_item_edit signal to the DataList.
  • Set up signal chain for the edit requests.
  • Added edit buttons to the resource datalists be able to navigate easier.
  • Small improvements to the slot and int fields of the world generator addon's ResourcePropertyList.

DataManager

  • Now the data manager addon uses a built in editor icon for it's top bar icon, so it won't get disabled when (re)importing the game project.

Animations

  • Moved the character's animations to the new format.
  • Cleanups to the character's skeleton and animations.

Engine

  • Backported everything up to and including godotengine/godot@989d599
  • Added a new templated WeakRef (WRef) class.
  • Added hash_set from godot4.
  • Added RBMap and RBSet from godot4.
  • Backported helper classes to pair.h from Godot4.
  • Ported the improvements to the hash funcs from Godot4.
  • Backported the improvements to the Math class from Godot4.
  • Added Vector4, Vector4i, and projection classes from Godot4.
  • Backported almost all improvements to core math classes from Godot4. Also bound all eligible methods.
  • Now Vector4, Vector4i, Projection, PoolVector4Array, PoolVector4iArray, are built in variant types. Also reordered the Variant's Type enum, renamed - _RID in it to RID, fixed a few smaller issues and removed some very old compat code.
  • Backported the improvements to StringName from Godot4.
  • Backported convert_rg_to_ra_rgba8 and convert_ra_rgba8_to_rg from Godot4's Image.
  • Added more helper methods to DirAccessRef and FileAccessRef. Also smaller cleanups.
  • Backported from Godot4: Node3D gizmo improvements, including subgizmos.
  • Backported: returning AfterGUIInput from forward_spatial_gui_input from Godot4. Also removed the first index parameter.
  • Renamed AFTER_GUI_INPUT_DESELECT to AFTER_GUI_INPUT_NO_DESELECT.
  • Backported: add viewport.get_camera_2d()
  • Now full screen editor plugins have the ability to hide their tab button in the top bar.
  • Now the editor won't treat a hidden main button as an indicator that their editor plugin is disabled. This behavior was used to be a part of editor feature profiles, which I removed a long time ago.
  • Backported ImporterMesh and ImporterMeshInstance3D from Godot4.
  • Backported ImmediateMesh from Godot4.
  • Backported some of the improvements to BoneAttachment from Godot4.
  • Backported most improvements to Skeleton from Godot4.
  • Backported: "Remove animation 3D transform track, replace by loc/rot/scale tracks" from Godot4.
  • Backported Godot4's skeleton editor.
  • Backported from Godot 4: New and improved IK system for Skeleton3D.
  • Backported from Godot 4: New and improved IK system for Skeleton2D.
  • Ported from Godot4: Remove REST transform influence in skeleton bones. (This means that: Animations and Skeletons are now pose-only. Rest transform is kept as reference (when it exists) and for IK. Improves 3D model compatibility (non uniform transforms will properly work, as well as all animations coming from Autodesk products).)
  • Removed rsets.
  • Moved visibility rpcs (vrpc) from Entity to Node. Also added an unreliable variant.
  • Added a few small networking related helper methods to Node. Made the rpc macros in Entity use them.
  • Removed deprecated enum values from multiplayerPeer.
  • Removed additional direct script rpc mode query when sending rpcs, in order to simplify that codepath as much as possible. Also removed the remote, remotesync etc. keywords from gdscript, as now they won't work anymore. Node's rpc_config() method should be used instead of marking methods with keywords in scripts.
  • Backported: [Scons] Implement module dependency sorting.
  • Moved http server simple to it's own module.
  • Moved the editor only modules to a new editor_modules folder.
  • Removed stub module.
  • Now text files will show up in the editor if the text editor plugin is enabled. Also clicking them will open them in the text editor.
  • Now custom file creation entries can be added to the editor's FilesystemDock.
  • Now the TextEditor addon will add it's own "create file" entry to the editor's filesystem dock.
  • Now the TextEditor won't open a file multiple times, instead it will just switch to the proper tab.
  • Added web node editor plugin.
  • Added icons for web nodes.
  • Also created full documentation for most of the classes in the web module, and added descriptions and brief descriptions everything, except a few small helper utilities.
  • Added icons for User, and user web pages.
  • Added icons for the UserManagers.
  • Added an icon for UserModule.
  • Added an icon for MeshDataResource, MeshDataInstance, and for the meshDataInstance editor toggle.
  • Now in order to edit MeshDataInstance a new edit mode has to be togged from the top bar. While this mode is enabled the edited MeshDataInstace can't be deselected. Also now Mesh Data Editor's sidebar will only be visible in this mode, along with the editor gizmo.
  • The transform gizmo is hidden now while editing a mesh data resource.
  • Renamed Quat to Quaternion for consistency with the other engine math classes.
  • Removed CameraMatrix, and switched to Projection.
  • Now all Variant math types are structs.
  • Ported form godot4: Reformat structure string operators.
  • Backported from Godot4: Cleaned up Hash Functions. Clean up and do fixes to hash functions and newly introduced murmur3 hashes.
  • Restructured the core folder's directory.
  • Added theme infix to the theme helper methods in Control.
  • Renamed the VisualServer to RenderingServer like in Godot4, as I think it's a lot better name for it. I did not yet rename the files.
  • Actually check whether modules are enabled, not just for their existence in mesh_data_resource's SCsub.
  • Check whether the gltf module is enabled or not before trying to use it.
  • Main build script: Properly set module_ name _enabled in environment to false for modules that get disabled using can_build().
  • Fix serializing variants into binary files.
  • Use AnimationPlayer's root property instead of just getting it's parent when exprting a GLTFDocument.
  • Use string length() instead of size() as it was intended in HTMLParser, and BBCodeParser.
  • HTMLParser now properly parses doctype in a case insensitive way. Also improved an error message a bit.
  • Removed AnimationTreePlayer, as it was deprecated (and also practically unusable).

0.3.12

03 Aug 11:56
Compare
Choose a tag to compare

General

  • Created and added a pointing hand cursor.
  • Added json serialization support for the data manager addon's settings class.
  • Reworked the data_manager addon. Now it stores it's settings using ProjectSettings, so it shouldn't bug out on a fresh import.
  • Now dungeons won't get spawned randomly by the zone, instead they are spawned by a new subzone class.
  • Set the texture_scale for the test dungeon's TiledWallData to 2.
  • Renamed the Godot tab in the about box to Engine.

Engine

  • Ported my web framework setup from rcpp_framework to a new web module, alongside with lots of improvements to make it fit the engine better. Also implemented a simple webserver that uses built in sockets.
  • Ported my database setup from rcpp_framework to a new databases module, alongside with lots of improvements to make it fit the engine better.
  • ported my user management setup from rcpp_framework to a new user module, alongside with lots of improvements to make it fit the engine better.
  • Created a new cscript module, it's currently only a simplified gdscript implementation.
  • Simplified, refactored and ported https://github.com/fenix-hub/godot-engine.file-editor to an engine module. (The refactered gdscript codebase is here: https://github.com/Relintai/godot-engine.file-editor )
  • Created a new plugin_refresher module. It can be used to quickly enable / disable addons. You can enable it in the ProjectSettings->Plugins tab. Right click the refresher icon to select the plugin that you want to refresh, left click the same icon to actyally refresh it.
  • TiledWalls got a new collider_z_offset property, which allows you to offset the generated collider shape.
  • TiledWalls also got a new texture_scaling property.
  • Fixed the 2 add methods in TiledWallData.
  • Added a new property hint (PROPERTY_HINT_BUTTON) that can be used with NIL properties to add buttons to the inspector.
  • Fixed the property validation for aura triggers and aura stat attributes in Spell.
  • Ported all commits that I thought would be useful since the last set of backports from upstream godot 3.x.
  • Disabled nullptr modernization in clang tidy.
  • Updated the build container scripts.
  • Fixed Lights.
  • Fixed Codestyle in a few files.
  • Lots of TODOs.

0.3.11

23 Jun 10:33
Compare
Choose a tag to compare

General

  • Moved the animations from the armature_huf scene to just the armature scene.
  • Started work on a character editor scene.
  • Small improvements to the player character's animations.
  • Removed the color palette addon.
  • Removed the mesh data resource addon, as the engine now has it built in.
  • Added helper script for launching the editor when built with llvm.
  • Added a new simple addon, that should help with porting gdscript (my addons -> my codestyle) to cpp.
  • Added a scene to cpp conversion tool.
  • Removed the gdscript logger singleton and moved to the new engine logger.
  • Removed Godoxel. (Now the engine has it built in.)
  • Moved most of the project specific helper scripts into the engine's folders.
  • Reworked how the project's setup script works internally. Now it's just a thin wrapper that can set up the engine if not present, and it just calls the original script in the engine's folders.
  • Added new make_release and export_all scripts, they just call the original scripts in the engine's folders.
  • Added TODO.md. I added everything from the TODO issue from github into it.

Engine

  • Added contains(), find(), and clear() to PoolVector. Also added bindings for them.
  • Added a bound core logger class.
  • Ported the mesh data editor addon to c++, and now it's a part of the mesh_data_resource module.
  • Ported my fork of Godoxel to c++, and now it's part of the engine. (paint module)
  • Added a new wfc (WaweFormCollapse) module. I used https://github.com/math-fehr/fast-wfc 's code as a base for it. Samples repository: https://github.com/Relintai/wfc_module_samples
  • Ported mat_maker_gd to c++, and now it's part of the engine. (material_maker module)
  • Added Z-offset support for TiledWalls. It can be used to offset wall tiles to create 3d wall features. It's missing collider support at the moment.
  • Added TODO.md.
  • Added some of my game project helper scripts, and made them work from their new place.
  • Ported the EditorZoomWidget from Godot4.
  • Added frt1 (https://github.com/efornara/frt/tree/1.x).
  • Added efornara's frt2 platform. (https://github.com/efornara/frt - 2.0 branch). It won't build when selected right now, due to core changes.
  • Removed webp, webm, and the remnants of libvpx, and libwebp, and xatlas modules.
  • Fixed low processor mode on android. The fix was inspired by godotengine/godot#59606, although I did it differently.
  • Fix compile when using llvm on linux.
  • Set Prop2D and Prop module's convert button style to flat, so it's in the expected style.

0.3.10

25 Mar 23:32
Compare
Choose a tag to compare

General

  • Swapped engines. I created a new, heavily customized godot fork. Changelog
  • Added the world node to the save group. This fixes saving the character on exiting.
  • Small improvements to the spell book window.
  • Fix material cache initialization logic for the CharacterSkeletonMeshJob.
  • Import the weapons and armor pack's textures as packer image resources. This fixes their issues with uvs on the html backend.
  • More fixes to the uvs on the html backend.
  • Added live version to github.io.
  • Added liquids, and a liquid material.
  • Created a new water tile.
  • Set up a base ocean layer for the world.
  • Raycast from higher up when placing entities.
  • Disabled Octahedral compression for the characters, as it caused issues on some of my test android devices.
  • Created a proper icon.
  • Various smaller cleanups, and script updates.

Tools

  • Created a uv debugger tool.
  • Added tool keyword to the dungeon teleporters, so they can be spawned in to the editor without errors.

World Generator

  • Added a new WorldGenRaycast class, and now world generator will use this instead of a stack and stack index to make the data available to the generation methods. Also added local uv to it.
  • Implement selecting the edited resource on clicking it's button in the world generator addon's EditorResourceWidget.
  • Added a new editor chunk spawn range property to the world.
  • Now the float and int properties use a hbox container, and their label is set to expand fill.
  • Modularized the world generation algorithms, so the world is now actually layered.
  • Now the default surface's id is customizable in the ocean base world.
  • add_slot in ResourcePropertyList.gd will now return the expected index.
  • Added a h separator to the test continent's properties.

Mat maker GD

  • Added undo redo support the gradient editor. This also fixes seamless color editing with it.
  • Also added undo redo support fro the gradient editor's interpolation type dropdown.
  • Also fixed the gradient editor popup thing.
  • Also added undo redo support for the gradient editor when adding and removing colors.

Terraman

  • I renamed voxel_surface methods/properties to terra_surface.
  • Fixed liquids.
  • Added a helper method to the world to get the editor's camera.
  • Reworked the in-editor world generation logic. Now when the generate in editor property is set, the world generate chunks around the editor's camera.
  • I fixed a few threading issues when spawning and despawning chunks extremely fast. This happens in the editor when the camera can go around really fast.
  • Fixed a typo (transform_uv_scaled used the x coordinate in place of y) This makes the terrain's texture look seamless.
  • Now the PCM library generates a liquid material, and also found / fixed a few race conditions.
  • Fixed a few issues with material cache usage.
  • Fixed color baking lod step when the library supports material caches.

0.3.9

14 Feb 15:37
Compare
Choose a tag to compare

General

  • Added a c build word letter to pass the new compiledb=yes to godot's build script.

Game

  • Reorganized the project's folder structure.
  • Created a proper model for the dungeon teleporters. Also fixed their spawn height, and made the terrain smooth under them in the world.
  • Now the dungeon teleporters won't all get highlighted when you mouse over one of them.
  • The character's skeleton is now not imported, but a native godot scene.
  • Converted all 3d models in the project to be native MeshDataResources.
  • The keybind text and cooldown count number can be turned off now for the actionbars in the game's settings.
  • Fixed the mouse filter of the aura frame. This makes the mouse work again in the top right corner.
  • Smaller fixes on the models. Also marked seams on them.

Mesh Data Resource Editor addon

  • Added the flip face action.
  • Added island rotation, and mirroring support to the uv editor.
  • Fixed face deletion when more that one faces are selected.
  • Fixed normal generation.
  • Smaller fixes.

Godoxel addon

  • Fixed the canvas clipping into other ui elements.
  • Fixed the save dialog.

Terraman engine module

  • Standardized class prefixes to Terrain. For example TerramanLibrary became TerrainLibrary.
  • Added a proper readme.md.
  • Smaller fixes.

Mesh Data Resource engine module

  • The importer in it can now save a copy of the imported resource in the project.
  • It can now handle meshes with multiple surfaces.
  • MeshDataResource now has an append_arrays() helper method.
  • Smaller fixes to the importer.

0.3.8

29 Jan 22:35
Compare
Choose a tag to compare

Content creation tools (part 2) - Changes

(I think the content creation tools are now where they should be.)

General

  • Set up the html5 editor and OSX build, and added it to the releases.
  • Updated copyright headers to 2022.
  • Re-extract class docs for the engine modules.
  • Smaller improvements to the build and release creation scripts.

Readme

  • Added a status and features section.
  • Generic improvements.
  • Update the required engine module list.
  • Mention that now I use my own fork of godot to have more patches applied.
  • Removed the optional patches section, and the patch itself, as it's no longer needed.

Mesh Data Resource Editor addon

All important core features got implemented.

  • Rotation support.
  • Clean mesh algorithm.
  • Extrude algorithm.
  • Rotation needs to be implemented.
  • Pivot point support.
  • Improve selection code.
  • Face/Edge/Vertex selection support.
  • Extrude support.
  • Face creation and deletion support.
  • Mark / unmark seam support.
  • Cut mesh at marked seams action.
  • Edges with uv seams are displayed in a different way.
  • Improved outline and handle point display support.
  • Now handle selection works like how it's expected. e.g. clicking will select one vertex, holding shift will add to it, holding ctrl/alt removes from selection. Also implemented mouse drag based selection.
  • UV editing (Per separate islands.).
  • More basic shapes support.
  • Multiple mesh data instances editors will work now in one scene.
  • Vertex snapping support.
  • Add box shape, add triangle, add quad, add triangle to edge, add quad to edge support.
  • Undo-Redo support.
  • Various improvements and fixes.

Data Editor addon

  • Renamed my old module_manager addon to this.
  • It got a big overhaul.
  • It will help with asset organization and quick lookups.
  • Now it's settings are stored as a resource instead of a json file.

Godoxel addon

  • Now if the canvas is behind some other control it properly won't let you draw. Same thing with other tools and zoom.
  • Now it will appear as "Paint" on the top of the editor.
  • Small improvements.

World Generator addon

  • Undo-Redo support.
  • Small improvements.

Mat Maker gd addon

  • Undo-Redo support.
  • Small improvements.

Entity Spell System engine module

  • Merged the Aura class into the Spell class. This will make content creation a lot easier, as you don't need to create both. Also this simplifies even things like spells on items, spell on items in inventory etc.

Mesh Utils engine module

  • Added the 3d delaunay triangulation implementation from godot4 to it so it's available on 3.x.

0.3.7

10 Jan 14:12
Compare
Choose a tag to compare

Content creation tools (part 1) - Changes

Known issues

All 3 of my addons (mat_maker_gd, world_generator and mesh_data_resource_editor) have problems with letting the editor know when the edited resource changes. I will figure out a how to fix this / what I'm missing for the next release. (I suspect the missing undo-redo support.)

General

  • Now released filenames contain the version number.
  • Improved readme.md a bit.
  • Added uv unwrapping support to the mesh_utils module for the mesh_data_resource_editor addon. (I created and added a modified version of xatlas so it just unwraps without creating new seams.)
  • Turned TokageItLab's SkeletonEditor (godotengine/godot#45699) to an engine module, with minimal changes to the core in my fork of godot, and switched over the project's engine to this fork.
  • Removed the bone editor addon as it's no longer needed.
  • Split module information from the main SConstruct file to a separate python file for easier script upgrades.
  • Basic networking fix. Still missing some features (For example you won't see animations on clients), and has quite a few bugs, but at least it's working.

World generation

Created the new world_generator addon, and implemented everything for it, except for undo/redo.
It has resources that handle the world generation, and an editor for them.

Instead of the old World -> Biomes -> Buildings classes, this addon uses World -> Continent -> Zone -> SubZones.

The idea is that the world is only pseudo-random, so the layout of continents, zones, and subzones have to be set up by hand using rects within an editor, and then these generate the actual 3d representation.

So the terrain will be different based on the given seed, but the spawner locations, zone locations, etc are not (for now at least).

  • Ported over the old world generator to the new addon, and switched to it.
  • Removed the world_generator engine module.

mat_maker_gd addon

A while ago I started porting (https://github.com/RodZill4/material-maker) to work on the cpu, and inside the editor, but abandoned it for a while.
Not long ago I ended up resurrecting this project, and made it almost feature complete.
It's currently missing ~ 60 from ~ 195 nodes (most should be relatively trivial to do), needs some cleanups, and needs undo-redo support.

  • Added it to the project.
  • Ported all of the mat maker .ptex files over to mat_maker_gd resources.

mesh_data_resource_editor addon

Lots of improvements. Still needs work to be actually usable.

  • The gui actually works, and reflects the internal state.
  • Vertex, Face, and edge selection modes.
  • Proper axis constraint logic.
  • Now it can add a box, triangle and quad to the mesh.
  • Connect vertex action.
  • Various tweaks, code cleanups, and smaller fixes.
  • Initial implementation for a uv editor.
  • UV unwrapping support via the mesh_utils engine module.

v0.3.6

28 Aug 11:36
Compare
Choose a tag to compare

The changes are still almost entirely technical. This should be the last release of this kind (at least for a while).

-Added a new TiledWall class. It can be used to easily create arbitrarily sized walls using atlas textures.
-The props module can save TiledWalls efficiently into props.
-Added material caching for the props module.
-Finished up the PropInstanceMerger. It supports material caching, generates and uses lod, generates meshes and textures in a different thread, and supports TiledWalls.
-The props module now supports the new rooms and portals system. The system itself still has some issues though.
-Added a class that can procedurally generate buildings from Rooms converted to PropData. It uses serialized portals to connect them. (It's not setting the rooms up for occlusion culling though because the new portals system in godot still has some smaller issues/limitations that prevent this.)
-Spawned a bunch of teleporters to the world with placeholder graphics that create a dungeon when clicked and port the player inside.
-The entity spell system module got material caching support.
-The generated characters now use cached materials.
-The prop converter tool now saves the resources in a way so you don't have to restart the editor for it to pick up the changes.
-Terraman now supports activating/deactivating the world. (Useful when the player is in a dungeon.)
-Reworked MeshDataInstance. Now it uses the VisualServer directly. Also it's a lot more reliable now.
-Fixed a few issues with the mesh utils module.

v0.3.5

08 Aug 19:47
Compare
Choose a tag to compare

Still mostly engine level changes. PropInstanceMerger (=rooms) and Buildings (procedurally generated with portals) are hopefully the last remaining big technical challenges (for a while atleast). I'm hopeful that I can finish these very soon.

Note: The javascript export at the moment has issues with 3d meshes, so I did not add it. It might be a low level godot engine side bug.

-Per chunk material support for terraman (with texture merging).
-Per chunk prop material support for terraman (with texture merging).
-Fixed mesh data instance support for terraman (merged prop meshes).
-Increased the world's scale (voxel_scale property, needs to be renamed.) to 3.
-Started working on the new world generator.
-Added 2 trees from open game art (from https://opengameart.org/content/rpg-item-collection-3). The world generator spawns quite a few from one of it.
-Implemented range checks for Entity interactions.
-The vendor and trainer window will also close when you go too far.
-Added the multirun addon to the project. (Disabled by default)
-Keyboard/controller navigation for the main menu.
-Brought in the player movement code from the tower.
-Jumping. (No animations yet though.)
-Removed the procedural animations module.
-Added a few audio buses. (Although still no audio yet.)
-Optimized the character's mesh.
-Added mesh optmizitation setting to the mesh data resource module. (This reduces the character's vertex count from 1850 to 617 without any visual change.)
-Improvements to PropInstance, although not yet finished.
-Updated/fixed the build containers.
-Removed the -v flag from the editor launch helper script. Not that useful right now.
-A few smaller improvements / build fixes.

0.3.4

24 Apr 07:33
Compare
Choose a tag to compare

-Replaced Voxelman with Terraman. It creates simpler meshes, and it's a lot faster, as it's a terrain engine (int only uses a heightmap), and not a voxel engine (full 3d grid). (The meshes look almost the same.)
-Cleaned up / simplified the world generator module.
-Added build postfixes.
-Lots of work on the mesh data editor plugin.
-Added templates for the pi4, and an editor build.