You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I’ve been looking through the new qodot gdscript quite carefully and I have some ideas to optimise.
First of all, a group of nodes is using the same vertex array: mesh, collision, occluder shape
Right now Qodot efficiently reuses the array to create each of these, but Godot still stores everything inefficiently. It stores the same array every time, not even bothering to check if it’s the exact same. All it cares about are resource refrences. If it already has one, it’s just an extra 2 lines of text in the .tscn, if not it will manually store the array in the scene. So saving .map stuff in a .tscn is not efficient because a map will have hundreds and thousands of packed vector3 arrays for all of the brushes. So my thinking is there has to be a way to compact geometry that is the exact same into a single array, and only use it as the reference for each thing. Not really sure where to start with that but it could optimise everything by a bunch on the godot side.
Secondly, I’ve been using linked groups recently and I feel like it’s really too useful not to use, but it’s not essential to every map.
can’t see an easy way to copy the same resources to make a linked group work in Qodot.
Essentially it could work with an array that checks for each unique linked group, and then use node.duplicate() if there’s a match. It’s an easier solution than the other thing, because we already know that this geometry is EXACTLY the same including the textures etc
The text was updated successfully, but these errors were encountered:
DeerTears
changed the title
.tscn file contains too much vertex heavy data that could be changed to duplicated nodes/resources as references
Reduce filesize of map geometry in .tscn files
Nov 24, 2023
Copypasta from discord because I'm git noob
//
I’ve been looking through the new qodot gdscript quite carefully and I have some ideas to optimise.
First of all, a group of nodes is using the same vertex array: mesh, collision, occluder shape
Right now Qodot efficiently reuses the array to create each of these, but Godot still stores everything inefficiently. It stores the same array every time, not even bothering to check if it’s the exact same. All it cares about are resource refrences. If it already has one, it’s just an extra 2 lines of text in the .tscn, if not it will manually store the array in the scene. So saving .map stuff in a .tscn is not efficient because a map will have hundreds and thousands of packed vector3 arrays for all of the brushes. So my thinking is there has to be a way to compact geometry that is the exact same into a single array, and only use it as the reference for each thing. Not really sure where to start with that but it could optimise everything by a bunch on the godot side.
Secondly, I’ve been using linked groups recently and I feel like it’s really too useful not to use, but it’s not essential to every map.
can’t see an easy way to copy the same resources to make a linked group work in Qodot.
Essentially it could work with an array that checks for each unique linked group, and then use node.duplicate() if there’s a match. It’s an easier solution than the other thing, because we already know that this geometry is EXACTLY the same including the textures etc
The text was updated successfully, but these errors were encountered: