I’ve been making most of the art for my game using a lot of procedural Shader Graph and VFX Graph stuff. I have a set of very basic textures I made, like gradients and radials, and use them alongside a pixelation effect (using UV and tiling nodes) I found on YouTube. So far I’m very happy with what I’ve been able to achieve while spending relatively little time in art software!
The last thing I made was a ring to fly through using ellipses, rectangles, rotations, offsets, and all kinds of noise and other nodes. I used SG to make the ring and VFXG to make it react when flying through it, etc. It does exactly what I want, and it got me thinking about performance.
Am I hurting my game’s long term performance by leaning more heavily into procedural art generation using built-in features? Is it more advisable to create this stuff as textures instead of getting the engine to produce the same result?
Happy to share screenshots or video if it helps give some context.
Thanks all!
As a lawyer on youtube might say… it depends. In the end if you have the result you want, at the scale you want, on the target hardware you want, at an acceptable framerate then you do not need to worry any further.
For more specific advice I’ll say this - test it. There is zero advice we can give you without knowing a lot of specifics and the only way you’ll know those specifics is if you first run the numbers. So take your working example and scale it to what you expect to see in your finished project. If you think you’ll see a thousand instances then try that, then push it further just to make sure you have some headspace. If the framerate is still looking good then you are done. No need to worry further, if not then you can start to profile and find the sources of problems. At that point you’ll either discover for yourself what needs to be changed or at least be armed with the info needed to ask us specific questions that we can reasonably answer.
I appreciate your response, and it puts me at ease for now! Sounds like it’s a good idea to dive deeper into their performance once I’m ready start testing out platforms (unless there’s a way you’d recommend doing that ahead of having something resembling a finished game).
I’ll probably create another thread for this question, but I wonder if anyone else has seen dramatic performance reduction after upgrading to 2022 LTS.
I basically have to tell everything in my level to turn off any active VFX graphs unless the main character was within some interactable range. Just upgrading the project tanked my FPS from over 200 to between 15-30 FPS until I made that change. It seems merely having VFX attached to an object caused serious problems even when they’re all set up a single burst of <100 particles and manual playback.
More of a side anecdote, but has anyone else experienced this?
Cheers!
Which version were you upgrading from? I know a lot of people have had performance degrades when updating simply due to the number of new features added. In my personal experience though I’ve had some vast improvements to performance though that was because I was taking advantage of some specific new features in very particular ways.
One thing you might check is which graphics API is being used. Is it DirectX12? I had read a lot of about people having serious performance regressions when moving from DX11 to DX12. Again, in my personal experience this hasn’t been the case but I can’t dismiss a number of reports about it either. Maybe try switching from one API to another in your Edit → Project Settings → Player → Other Settings → Graphics API for Windows. You might have to uncheck one of the auto graphics API checkboxes to make other options available.
In the worst case I’d say report your performance issue as a bug and go back to the version you were on before. There’s no reason to struggle if you can help it and there is no feature so amazing in newer versions that its worth risking your entire project on.
Good luck!
Thanks again for your advice!
FWIW I’d upgraded from the last 2021 LTS, and primarily did it in the hopes that some of the issues I was having with VFXG and UI Toolkit would be resolved. From what I’d read in the release notes and because I’m still relatively early in project life, I figured I’d make the switch. I’m also working in Mac btw.
But yeah, all my VFXGs stopped working and I basically had to rebuild them all. I found the biggest culprit was with the way their Start calls are queued. It seems like they take a large number of frames to actually get kicked off, so I ended up having to adjust all my script wait times, subsequent events, etc.
What’s honestly most interesting is how much the upgrade almost made me want to quit altogether because I just kept running into issues. I’ve still yet to have a build that actually works, and I keep save more and more problems for future me, heh…
Anyway, thanks again, Sluggy!