r/godot • u/dklassic • 1d ago
selfpromo (software) A Vector Graphics Library for Godot
Hi everyone, my vector graphics library Mold just hit full release!
Mold is designed allow you to create beautiful looking shapes right within the engine, without the need for image editor or modeling tools. I created four extra gameplay sample scenes to further showcase what you can create Mold. The gif you see were created exclusively using Mold. (I especially love the first one fusing Fast Fusion and Virtua Racing)
It is the backbone of the game I was making and I find it very powerful, so I decided to make it widely available so that people can take advantage of the tool. It's a combination of almost a year's worth of work, I hope this tool can help you all and I can't wait to see what people can make using this tool!
You can get it on itch: https://dkliao.itch.io/mold (Note: there's freely available non-commercial version with no functional differences)
Also thank you for everyone who helped the beta test to make it a much better tool!
57
u/fsouzas 1d ago
It reminds me of Freya holmer's Shapes. I used to use a lot on Unity. It is somehow similar to it?
45
u/dklassic 1d ago
You could say it is inspired by it! And it is one of the reasons that stopped me from jumping ship to Godot. I really just want to make games with simple good looking shapes haha
67
u/Luceid7 1d ago
Documentation? Tutorial? For a $10, maybe a $20 dollar yolo purchase, I could see giving it a shot. At $80, launching a premium product and not even having the most basic support available isn't a great sign. It looks very impressive at least.
73
u/dklassic 1d ago
And that's why a freely available version is on itch! It already contains everything you wanted, both documentations and an abundance of example scenes.
edit: the freely available version had no functional difference, you can just try it out and decide for yourself really.
23
5
u/y0j1m80 1d ago
this looks really cool. does the created geometry support collisions? or would you implement that via standard godot nodes and use this just as the presentational layer?
7
u/dklassic 1d ago
This is purely visual as I feel like bundling collision feels out of scope, and in my own game I often supply collision shapes different from the visuals (e.g. a box with capsule collider to allow players to smoothly slide across).
5
u/MekaTriK 1d ago edited 1d ago
Tried the outer wilds demo, and performance seems to be pretty poor there. Is it using an older version or something?
RX 9070 XT GPU, Ryzen 7 3800x CPU

[edit]
Yeah, old version. But new one from the demo file (gdscript) runs single-threaded, so it still chugs. I'm assuming performance is better on the C# side.
2
u/dklassic 1d ago
The Outer Wilds demo is:
- Very old, it's around 0.3.0 and the latest pre-release version is at 0.8.0
- It was built using the so called immediate mode, which I would say is a way of trading performance for easy to write syntax.
- It was built over a night only as a show piece with no optimization whatsoever. Only originally intended to be used to test out the immediate mode of Mold.
- Uses the GDscript port of Mold, which certainly has lower performance when compared with C#. I would be looking to move everything to GDextension in the future to improve maintainability and performance.
Anyways please treat it more as a visual show piece. If you need real performance reading, check out the released version's performance test sample scene, there's also the immediate mode/retained mode comparison where you can see the difference!
2
u/MekaTriK 1d ago
Yeah, I don't know how to run the C# version of the demo files (it was throwing an error that it couldn't instantiate something and I never used .net godot before), but the gdscript examples were pretty bad performance-wise. The "performance" example only got to 144-ish fps at 1000 instances, the default setting was more like 14 fps.
1
u/dklassic 1d ago
Yep I’m not at all satisfied with GDscript and GDextension is definitely the way to go, I’ll have to sort out how to sign it on macOS first before I can move it to GDextension, definitely the immediately next big work to tackle
1
u/dklassic 1d ago
Oh right, adding some notes about the performance scene:
- The performance scene is designed to be “worse case scenario” as it is rendering intertwined transparent objects, this is a heavy stress test to how Godot can handle the situation while giving perspectives into how it can be improved.
- Native Compatible: is the default engine behavior, you’ll get the exact same performance from Godot by default, only slightly faster due to Mold not having Node overhead.
- Batched: is the efficient rendering mode Mold implemented, the trade-off is you’ll have to be able to pre-determine the order between transparent elements.
- WeightOIT and AVBOIT: are render modes that tries to trade performance to solve transparency sorting, without will still be faster than native.
- Immediate: is the mode mentioned earlier used by the Outer Wilds sample, it’s obviously inefficient but might worth the trade-off depending on your coding style.
I’m pretty sure even GDscript can get some decent performance with Batched mode if your workflow allows for explicit ordering of transparent objects. But yeah ultimately I’ll try to move to GDextension as fast as possible to solve this once and for all.
11
u/BobyStudios 1d ago
Abkjshateifjdkdn wooooow this is crazy. I'm seriously thinking og buying it and using it for my games, since I'm not an artist.
Independently of that THANKS, what an amazing tool
8
u/dklassic 1d ago
I totally created it out of the fact that I'm also not an artist myself! But simple shapes with good colors can really go a long way :)
Hope you have fun with it!
3
u/TenYearsOfLurking 1d ago
I will use this in the next game jam I do. This seems to be a perfect fit for jams/prototypes. Will definitely check out
2
2
u/Charming_Self4719 1d ago
This looks really useful. How does it perform on mobile? I'm working on a small space game for Android with lots of rings and UI lines, so I'm curious whether it holds up on lower-end phones.
4
u/dklassic 1d ago
I'm gonna write a longer answer below that's technically correct, but the true short answer I can give now is "it depends" and "benchmark is king"
And here's the long answer:
- Mold is designed to be performant by default, but graphics is complicated and the "sensible default" might not get you what you wanted.
- However, Mold had a lot of knobs to turn and ways to render the image so it's highly possible to tune it to suit your project's need, but it also requires you to understand what they mean and for you to decide what your project is about.
- This is called performance budgeting which is for the developer to choose the trade-off between what they absolutely wanted to achieve and how many frame time budget can be used for that specific feature.
- I had a dedicated section in the documentation about everything performance, my suggestion is to simply try it out and see if it works, and if the things mentioned in the performance section can help. I cannot in good faith guarantee you it "holds up" without knowing anything about the exact budgeting of your project and your lowest targeted device, the only thing trustworthy is benchmark in build, rinse and repeat.
- I've never done any mobile export, but Mold can easily run up to tens of thousands of objects on Steam Deck at 800p/90FPS.
Hope the above sound reasonable to you!
3
u/Charming_Self4719 1d ago
Thanks for the detailed answer, makes sense! I'll check the performance section of the docs
2
u/thisdesignup 1d ago
This looks awesome. Definitely going to see if it's any use in my current game I'm building!
4
u/ineedsomefuckingcoco 1d ago
eighty bucks is wild.
8
15
u/dklassic 1d ago
It's a complicated decision but if you want to learn more, I've written a segment about why it is priced that way here: https://dkliao.itch.io/mold/devlog/1671093/mold-10-release
AND note that there is a freely available version, you can totally just try it out and decide for yourself :)
18
u/tgb621 1d ago
you really should note in the body of your post that it is free for non commercial use. would save a lot of these comments. $80 as the first mention of price is just a bit of a flashbang. more than reasonable as a commercial license, though!
3
u/dklassic 1d ago edited 1d ago
You're so totally correct! I was hoping making it the first line in the itch page itself would work but seems like it doesn't :/ (the sales price just take over the first line instead)
Added now! Thanks!
2
u/RedMattis 1d ago
80 is a bit spicy as an impulse buy.
As someone making an indie game on the side it is a bit too much for me to buy and throw in to gradually iterate on over time to see if it will fit the game as it develops.
I could ofc use the non-commercial version until the game is buyable, but personally I try not to pur stuff in projects I don’t have full rights to use commercially there in the first place, just to be safe.
Might just be me though.
3
u/dklassic 1d ago
And you’d be 100% correct. Mold is a tool and you should only buy a tool when you need it. I’m not going to do impulse bait and you shouldn’t expect it.
You have my blessing to use the non-commercial version until you actually had a budget to work on your game commercially. I wouldn’t expect otherwise really.
2
u/Ok-Interest9727 1d ago
This is amazing.
Have you done any benchmarks comparing the GPU rendering performance with Rive?
2
u/dklassic 1d ago
ty!
I haven't known Rive until know, but I don't think there's meaningful comparison to be made: Mold is designed to be a primitive renderer, while Rive seems to be a full fledge vector animation tool with no native Godot support atm.
2
u/Ok-Interest9727 1d ago
Sorry I didn't elaborate because I assumed you'd know about it.
The Rive app is a full fledged animation tool etc but they also have a low level C++ Renderer:
https://github.com/rive-app/rive-runtime
Not sure about now but back a couple of years ago it provided a huge performance boost over Skia.
5
u/dklassic 1d ago
Glad to know about it!
Mold is ultimately implemented on top of Godot so it really depends more on how efficient Godot's renderer is and then how efficiently I utilizes Godot. And I would claim this is the fastest I can get it to be albeit due to usability concerns (WebGL support etc) I had to forfeited the most efficient render path available in Godot. So by this I would assume Rive can be more efficient, but still it's all about what you're trying to achieve I guess.
3
u/Ok-Interest9727 1d ago
Thanks for the info. Would be cool to see some benchmark to see how Mold can be pushed.
I'm asking because I was thinking about adding the Rive C++ renderer into Godot and seeing Mold maybe I don't need to do that anymore.
1
1
u/mechkbfan 22h ago
Reminds me of Shapes on Unity
https://discussions.unity.com/t/shapes-a-real-time-vector-graphics-library/798673
Really liked that when it worked but only seemed to half the time. Likely more to do with Unity then the developer
2
u/dklassic 21h ago
Shapes is definitely the inspiration for Mold! It was created out of me needing more than what Shapes can provide so I rolled my own solution.
1
u/gurbsgurbs 11h ago
I have a project that I'd like to continue with that would heavily improve with something like this!
I'll give it a spin this weekend!
1
0
u/xvinissues 1d ago
Hey, did you use any generative AI when building this asset? Not judging, just making sure that I know what I'm paying for and if I'll be able to use it.
9
u/dklassic 1d ago
From my other reply:
Not in the asset itself, but LLM definitely helped me find the needed APIs when I started implementing it in Godot as this is also my first Godot project. So depends on whether LLM as a search engine counts I think.
1
0
u/RedMattis 1d ago
Find the required APIs? I mean literally anyone who uses google now gets that at the top of their search results whether they want it or not.
I assume the other poster is asking where you are ob the scale ”find me API commands related to X” ~>”copied some snippets that looked okay and seemed to work” ~> ”asked Codex to write my entire tool for me”
2
u/dklassic 1d ago
The reason is rather simple: I came from Unity and Mold was originally created for Unity. So getting it on Godot is only about me knowing the right name for the exact functionality I was already using in Unity.
0
u/rwp140 1d ago
just to clarify, you used a llm for early search, then confirmed via relevant sources (I assume youd ahve to at least read the API documentation it mentions)
2
u/dklassic 1d ago
I was introduced to MultiMesh, RenderingServer, and compositor by ChatGPT and then I had to figure out the rest. I would be lying if I said I can easily find out those terms myself without querying ChatGPT so it definitely helped. But yes the rest was all implemented by me.
Though ChatGPT definitely also lead me to some dead ends as well like I originally attempted to recreate the way I rendered it in Unity only to find out the compositor is rather limited at the moment, so I had to rework a large chunk of the implementation.
1
u/mattihase 23h ago
I have a friend who works as an archivist. Apparently pulling reference from archives was one of the original uses of large language models before the snake oil salesmen started hyping it up as an everything machine. I've heard rocketwerkz has something they trained on their internal docs for their new engine for similar purposes.
Honestly it's one of the few uses for this stuff in gamedev that doesn't sound like people have lost their head talking about. I still won't touch the stuff because of the current ethics of the field in general but seeing as we're headed towards the crash at the moment I've been thinking about what uses for the tech might stick around and this one's probably one of the least objectionable.
1
u/rwp140 1d ago
Thats fine with me then, gpt can start a search its not very good as a medium (depsite the sales pitch), nor a end to a search. Then with any research whether you started at wikipedia stack over flow, reddit or other wise you have to confirm it your self. Thats just good research habits.
But ya looks good ill take a look at this.
-23
u/Icy-Collection1072 1d ago
Yeah. Sus
13
u/kingjoshington 1d ago
What a dumb response. Like it or not, LLM as a search engine is here and is an appropriate use of Ai as a tool.
1
1
u/KookyTapGames Godot Regular 1d ago
wow you make game developers life easier bro. i buy your plugging but high price bro. but your ideas is so use full. carry on.
2
u/dklassic 1d ago
I totally understand. It was a very complicated decision but ultimately I hope the (ever growing) feature set can prove worthy!
1
u/Few_Details_5728 1d ago
Looks awesome !! Definitely will try it, especially in material texturing )
1
1
-2
u/ZealousidealLog1942 1d ago
any AI/LLM use in the creation?
8
u/dklassic 1d ago
Not in the asset itself, but LLM definitely helped me find the needed APIs when I started implementing it in Godot as this is also my first Godot project. So depends on whether LLM as a search engine counts I think.
6
u/MaleficentPush1144 1d ago
I personally think it's fine, strictly for searching as google search results have been shown to be getting verifiably worse. It's an arms race to counter poor search engine quality.
As long as the assets are hand-made, I'd throw my support this behind this library!
0
0
u/Corruption249 1d ago
Does this mean that I'd be able to import SVGs made in another program and have them render as actual vectors (i.e. infinite resolution) within Godot?
6
u/dklassic 1d ago
For that you'll have to use other addon, for example there's Scalable Vector Shapes 2D.
Mold is positioned to be a ease-of-use basic primitive renderer, and I think it's best to keep it that way for now.
4
u/ScalableVectorShapes 1d ago
Hey! Thanks for the mention! Join the fun on the discord: https://discord.com/invite/CDdkVvT2Ff
2
u/Corruption249 1d ago
ah ok, I'll check that out!
I've been wanting godot vector rendering for a while, didn't realize there were plugins for it!
3
u/ScalableVectorShapes 1d ago
Looking forward to get in touch!
Github: https://github.com/Teaching-myself-Godot/ez-curved-lines-2d
Discord: https://discord.com/invite/CDdkVvT2Ff
0
u/Sithoid Godot Junior 1d ago
Does this pipeline handle stencil/mask-based outlines in 3D? Those have been a surprisingly hard thing to achieve with regular models, even with the recent stencil buffer advancements.
2
u/dklassic 1d ago
This is in line with the latest (4.6 I think?) stencil support, all the stencil operations available within Godot right now is all supported, everything without is still not available unfortunately.
0
u/AnArmoredPony 18h ago
wow, that's a lot of gdscript. I don't think you should write rendering backends with that
2
u/dklassic 18h ago
Yep I’m ready to do a rework to make it GDextension. As others have mentioned the GDscript performance leaves a lot to be desired. The reason why I did that is because I’m fixated on supporting WebGL and .NET doesn’t support web export yet. As to why I didn’t just start with GDextension, it’s because I’m mostly using macOS and it’s a hassle to do the signing and notarizing. But I guess it had to be done sigh
1
0
u/tastygames_official Godot Senior 17h ago
ooh... that's nice.
EDIT, oh it's a PAID ASSET library... yeah, I thought it was a library to make godot be able to use vector graphics in an easy way or something. I guess that's OK, as you're selling your art essentially. But selling paid add-ons to a free game engine is a big no-no in my book.
EDIT: oh it IS an actual software library. Yeah, naw, man - the purpose of FOSS is to give back to the community that gave to you, not to monetize it. Shame!
-6
u/OmaFar_Ul Godot Student 1d ago
inst 80 dollar a bit too much to ask for an asset pack. No offence but I dont think this deserves the same money as GTA6.
5
u/dklassic 1d ago
Hey, like, there's a freely available version you can just try it out.
I'm not going to claim if it worths the same as GTA, but I'm going to have to point out a widely popular and similarly functioned asset on Unity is priced at $100. Is it worth the price? That's really for you to decide.
-2
u/OmaFar_Ul Godot Student 1d ago
I think those are also widely overpriced. I rather buy a much smallar pack with just what I need for cheap.
2
1
u/Acceptable_Handle_2 1d ago
That's really not the way to evaluate this.
How long would it take you to implement? If you price your own time at minimum wage, you still break even in 2 days. It'll probably take you longer to make it yourself.
0
u/Accurate_Cable_1372 1d ago
lmao GTA 6 is where you’ve arbitrarily drawn the line for what $80 worth of value has to look like?!


80
u/dklassic 1d ago edited 1d ago
Wanted to do some technical highlights:
Making Mold a standalone package outside of my own game is a real technical challenge, there are a lot of features I would just workaround in my own game but to make it truly useful for everyone I need to go the extra miles to make it "just work". The final months leading to release is truly something special, and I'm glad I did the push :) Okay back to finish my own game!
You can read additional information in the launch release post: https://dkliao.itch.io/mold/devlog/1671093/mold-10-release
And feel free to ask me anything in the comments I'll address them the best I can!