Rookie Awards 2024 - Open for Entries!
Real-Time VFX for Solar Showdown, BYU's 2023 Real-Time Strategy Game
Share  

Real-Time VFX for Solar Showdown, BYU's 2023 Real-Time Strategy Game

by neubertp on 1 Jun 2023 for Rookie Awards 2023

Solar Showdown is a competitive RTS game in which two players race to build solar panels in order to charge a giant laser to destroy their opponent. As a VFX artist it was my responsibility to create effects that would convey important feedback to players without impacting performance or creating visual clutter.

0 392 0
Round of applause for our sponsors

Generating Shields that Don't Take First Place in the Game's Visual Hierarchy

There's a big problem with putting glowing, transparent shields into an RTS game; players have to know that shields will protect their stuff, but if the shield is too thin then they won't know where it is or if it's working, and if you make it too bright then it will take visual precedence over everything else in the scene. I had to iterate on their design several times before settling on a final look. The issues present in previous versions were being too bright (taking too high of importance), having too much fine detail in their textures (resulting in a very noisy look and ruining their "quick read"), and having the shield wall be too tall (covering up the towers placed inside of them). Their final design focuses on the part of the shield that is in contact with the ground; this reduces the volume of the shield to a honeycomb shape that is easy to see. There's still energy rising up from the base, but it is no longer the element of the effect driving its main read. There are also multiple shield meshes for all of the different shield sizes in the game. I was able to create one master material with parameters for adjusting a material instance's UV tiling in order to keep the UVs from stretching on each of the meshes. Using vertex colors on the shield walls helped me fade out the texture's opacity towards the top of each shield. (Shield generators themselves are not mine)

Filling Solar Level Indicators for the Botanist's and Farmer's Home Bases

Players must build 12 solar panels in order to fully charge their laser and win the game. One of the biggest challenges that the project faced was reminding players about this goal; the solar indicators on each base were created as an additional way to show players how far they'd come towards victory. The solar indicator is a power level meter built into each team's base that dynamically rises or lowers based on the number of solar panels active on the battlefield. I made the materials, particle effects, and programming that drives their height.

The Farmer's Silo Solar Indicator

The Farmer's solar indicator is placed in his barn's silo. It is made of a cylinder's side and cap. The cylinder's wall's dimensions are scaled up or down to match the number of solar panels placed, and its surface cap is parented to it so that it inherits that scaling. The cap is separate from the cylinder walls so that its mesh can use vertex position offset (VPO) in conjunction with a scrolling noise texture to appear like a liquid that ripples. The wall uses a separate shader so that it can stay stationary and hug the sides of the glass. I also made a position curve that causes the cap to spring up and snap into a higher position rather than slide slowly upwards. An energy geyser effect made with Unreal Engine's Niagara systems plays with this animation to drive home the fact that building a solar panel is an important thing to the player's progression in the game.

The Botanist's Greenhouse Solar Indicator

The walls of the Botanist's greenhouse curve towards the center of the base as they go up, meaning that the solar liquid inside that base could not be made by scaling a simple shape up and down (a cube would pop out, causing clipping issues). An active fluid simulation would fill it to the correct level and hug the walls of the container but also be costly and complex, making that an unreasonable solution. I instead decided to use Houdini to create an alembic animation that would play forwards or backwards to raise or lower the level of the indicator. 

One other problem with the greenhouse meter was that it would look too full if the entire liquid shape was one bright color; the top-down perspective of the game created an optical illusion that made the meter appear higher than it should even when the Botanist player had only a few solar panels. Houdini gave me the option to use vertex color to separate the top layer of the liquid from the rest of the shape. I used vertex color in the indicator's material as a mask to make everything except for the top layer of the alembic bright. This conveyed the idea that the side of the liquid was bright because it was pressing up against the glass, whereas the top was dark because it wasn't directly touching the glass. This fixed the optical illusion problem without ruining the idea that the substance was liquid energy.

The final problem I had to solve with this effect was that the liquid needed to dissipate/explode when the giant plant laser pops out of the fully charged liquid; I created a Niagara particle system to cover up the alembic when it disappears.

Constructing a Powerful Effect for Building Towers

Placing towers onto the battlefield in the right locations is a key part of  Solar Showdown's gameplay. It wouldn't be fun if towers just appeared in place when built, so I made an effect using Niagara in Unreal Engine to make the process a tad bit more exciting to players. I especially paid attention to the overall shape of the effect, making sure that each layer contributed to the upward and outward motion of the tower appearing. The spark sprites had to be oriented in the direction of their velocity via some custom emitter logic. I used blue and red sparks to make sure to give the effect some contrast (with the darker smoke acting as a nice backdrop for the brighter colors). The tower range circle present around the turret in the videos below was also an effect that I made (to convey to players how far the towers can shoot from at any given position).

Making an Impact With a Flaming Meteor Using Techniques from Super Smash Brothers

Masahiro Sakurai, the director of Super Smash Brothers, recently released a video containing isolated footage of effects from the game. It inspired me to make an effect for a falling meteor utilizing harder, masked shapes and contrasting bright and dark colors. The particles in-game do not have velocity attached to them so that they can create a solid trail behind meteors; velocity is enabled in the Niagara system video for ease of viewing. I also added a small amount of screen shake to the camera whenever they hit the ground to give the meteors a greater sense of weight.

The tower planting effect and the meteor impact effect (shown just above this text) both use this flipping rocks animation which I created with Houdini. I converted a simple torus into a rock-like ring and then shattered it for use in an RBD simulation. I key-framed a sphere to move through the center of the rocks to displace them and generate the upheaval effect before bringing it into Unreal Engine. I used some simple VEX programming to slow down the rocks over time so that they would settle properly. I had to assign an inside and an outside material to the rock before moving it into UE so that it would have recognizable material slots when it got there. The animation's rotation is randomly set whenever it is used, so it doesn't look the same every time that it is used.

Burning Buildings With a Cool Material

Buildings get damaged during the course of the game and light on fire as a result. I made a fire material that grows in size as towers get closer to critical health levels. This was made at a point late in development when I learned about a technique that could fake translucency by using masked materials combined with a dithering node. This saved us some time in our VFX budget for this effect in particular while retaining a "flamey" look.

Crunching Effects in Four Days to Finish the Game's Opening Cinematic

Devon Gneiting and Kaya Keopanya (our director and producer) approached me during the last week of the game's production to ask me to finish the effects for the game's opening cinematic--in just four days. I rolled up my sleeves and dove in, repurposing older Niagara systems I'd previously made to create new effects. The effects include dust, sparks, muzzle flashes, bullets, and dirt kick-up. Using Niagara in conjunction with the sequencer was new to me. The effects had to have buffer frames before frame 0 of the cinematic in order to be active for the whole of each cut. I placed my effects into sublevels of the game's cinematic level to avoid conflicting with anyone else's work in our Git repository. I also had to integrate some of the Niagara systems to trigger with the right timing and position inside of our characters' animations via sockets, adding complexity to the process. The bullets shot by the chicken's minigun (a strange sentence, to be sure) spawn additional dust and particle systems when they collide with objects. All things considered, it turned out pretty well despite the time constraints placed on the job. (Credit to Omar Briceno for the two lasers charging/shooting/exploding at the end)

Attributions

I'd like to thank Simon Trumpler and Veer Sharma for their GDC talks that helped me immensely! I used their techniques constantly during Solar Showdown's production, and I could not have done these effects without their help. 

https://www.youtube.com/watch?v=KaNDezgsg4M&ab_channel=GDC

https://www.youtube.com/watch?v=pqdVG_qcKok&ab_channel=GDC

Also thanks to Kenny's particle texture pack (even though there was no attribution required for it, I'm grateful!). Free to use textures are a VFX artist's best friend!

Thanks for reading to the end of this post! I'm really happy to have worked on Solar Showdown and hope to produce even better effects for BYU's next game. See you next year at the Rookies!


Comments (0)

This project doesn't have any comments yet.