20 emitters
~200 particles
4 emitters
~160 particles
In this case, the left system is the original fire for a grill hazard. It consisted of 20 separate particle systems. bottom glow, two sets of flames, and sparks for each individual fire.
Using two custom low-poly meshes as particle emitters, the same effect was achieved with just 4 emitters, and total particle count was reduced by ~20%.
Reduced particle systems by nearly 50% in this level by combining groups of individual emitters into shared chunks and reduced duplicate or low impact particles.
I wrote a tool that helped setup new character prefabs. The user could select the incoming source model and the tool would:
Create appropriately named game and UI prefabs with appropriate settings for each
Create a skin file linked to these prefabs
Find and connect existing materials and animation controllers
Detect if any of these files already existed, warn the user, and give the user the option to generate only part of this data if desired
I wrote a tool for rendering character portraits for use in various parts of the game. The tool let the user select a character and skin, scrub animations to pick a pose, and render a correctly sized photo automatically centering their head in the correct position.
We had a VFX pooling system that dynamically created VFX objects could be added to which would limit the amount of concurrent instances, repurposing older instances when newer ones were required.
VFX objects had to be manually added to this list for each level and each variation of that level, leaving a lot of room for user error when authoring levels.
First I setup a less error prone pool for each level that would not require each variation to also be updated manually.
I wrote a diagnostic tool that would list the max concurrent spawn count of any dynamically spawned particle, as well as their defined limit in the pool. It could be observed at runtime in engine, or the results could be output to the clipboard formatted for a spreadsheet for conditional formatting and notes.
I simplified shader graphs by moving some animated shader effects into code driven parameters, like flickering on this hologram effect.
I extended the VFX pool code to accommodate new particle spawn and despawn scenarios.
I optimized sniper fire VFX which were recalculating things every frame that didn't need to be done.