Interstellar Racing League

Game Description:

Interstellar Racing League is a high-speed, 4 player racing experience. Players are racing along gravity-defying tracks through alien planets to compete for the title of the Galaxy’s Best Racer.

Why, When, What, and How

This project was selected from our collective prototyping process. We all broke out into smaller teams and prototyped ideas. Eventually, Interstellar Racing League was selected as the best prototype and was chosen to be worked on for our project.

Our timeline was 1 month for prototyping, and 3 ½ months for production of the chosen project. Our sprints during production were all two weeks long, with the exception of PoCT(proof of concept technology) which was 1-week long. Our prototype sprints were also 1-week sprints.

We had a lot of difficulties with our communication throughout the project, as well as adapting to being teammates on a scale like this. Our systems we planned to make were ambitious as well. We have multi-axis tracks, running on a physics-based system for our race. Also, because our game is a 4-player experience running on one pc; framerate has been a struggle.

Our team has improved immensely over this 4 month period. We’ve all learned how to communicate more effectively than we did at the start of the project, and going forward, we’ve all experienced issues and problems (both in the process and the technical application of our plan). We have examples of things that don’t work, and we won’t do them again.

Gallery:

Development Info:

Engine: Unreal

Language: Blueprints, Material Editor

Platform: PC

Role: SFX Lead  (SFX team size: 3)

Team Size: 56

InterStellarRacingLeague.exe (500MB)

Responsibilities:

  • Leading the SFX team in making special effects for the game.
  • Brainstorming with team members and Game Designers to come up with special effects to add to the game.
  • Communication with the Game Designers and Stakeholders to solidify SFX requirements.
  • Communicating with team members to find solutions on how to meet the requirements.
  • Planning the sprint schedule for the SFX team.
  • Delegating SFX tasks to team members.
  • Creating some of the Special Effects used in game.
    • This required knowledge of the Unreal Blueprint system, particle system, material editor
  • Coordinating with other sub-teams for integration of SFX.
  • Coaching team members to increase the skill level of the team.
  • We primarily used particles and materials in Unreal to achieve the requested effects.
  • Towards the end of the development, after most effects were completed, I joined various ‘strike teams’ to solve critical problems in the game.
    • Helped the car feel team with car collision box to make the car feel good when colliding. This change received very positive feedback from playtesting.
    • Helped the physics team with car flipping feature. This was added due to feedback from players and was requested late in the development cycle. The problem was harder than expected and under time pressure. I played a pivotal role in having the feature added in time.

Select Features That I worked on:

Bubble shield

Bubble shield effect made with blueprint and material nodes.

The bubble shield effect can be broken down to the following:

  • Material visibility can be set through blueprint, fade in and out are smooth.
  • A wave pulses from the center outwards, this is done in the material editor by testing the distance of the UV coordinates to the center.
  • The shield has a hexagon pattern with transparent regions.
  • The shield has a subtle Fresnel effect.

Energy Wall

Energy pulse effect when the vehicle hits the wall.

The energy wall effect has the following components:

  • A ripple effect that starts from the center and ripples outward. Implementation is similar to the bubble shield effect.
  • Distortion effect using refraction in the material editor.
  • A resource pool of the wall pieces was added to the game because it was found that the creation of dynamic materials was a bottleneck for performance. Once the max amount of energy wall pieces was spawned, new ones would no longer be created and instead use the oldest one.

Exhaust

The exhaust particles come out of the vehicle boosters and there is a subtle simmering distortion effect.

This is done with particles using a refraction material.

Heat Shield

The heat shied effect can be broken down as follows:

  • Stretched and flowing noise using the material editor, this will result in a material as seen in [HeatShield Mat Flowing]
  • A mask (created by the artists) is applied. This is so that the heat shield gradually fades away at the edges.
  • The heat shield brightness is controlled by blueprint so that it briefly flashes extremely bright right after hitting a boost pad, and gradually fades away.
  • Color can be controlled by blueprint to allow for different colors.

Light Streak

There are streaming light streaks on the edges of the vehicle.

This effect was not directly implemented by me, but as the SFX lead, I walked through the effect with one of my team members to help him implement it. It is done by laying out the UVs on the model to be straight and panning over them in the material. Simple technique with beautiful results.

Postmortem

What went well

  • The quality of the SFX was very high.
  • Planning and delivering, almost always delivered what was planned.
  • Communication with GDs. Always had good conversations with them and was up to date with where the game was heading.
  • Took ownership of the game, fixed problems outside my ‘swim-lane’, or made people aware of the problems.
  • Did a good job at coaching some of the team members.
  • Worked on ‘strike teams’ in the later stages of the game, did a good job switching hats and filling in roles that needed me.

What went wrong

  • Communication with some of the team members did not go as smoothly as I hoped.
  • Some of the team members did not take my criticism so well.
  • GDs lost direction, we spent a lot of time finding the fun of the game.
  • I did a large portion of the work on the SFX team.
  • Team members had a very uneven distribution of tasks.

What I learned

  • I need to improve on my communication skills. Be aware of what people think my tone is during conversations. Learn to speak to different people differently because not everyone will take what you are saying the same way.
  • Give out more complements, people like them. Sandwich my criticism between complements and take on a softer tone.
  • I should have jumped out of my swim-lane sooner to not just notify people of issues that I saw, but actively work with them on finding solutions.
  • Should have delegated more.
  • Less rigid sub-teams worked out really good in the end. Lending out extra man-power and borrowing when needed.
  • Strike teams were extremely effective and shuffling the teams during the mid-point of the project had an immediate positive impact. From that I learned that Agile isn’t about Scrum, or backlogs or sprints. It’s about constantly reinventing the team, the pipelines and the processes. There is no rigid structure that will work for game development, because there are so many things that are changing during development. When something doesn’t work, or something did work before but it’s effectiveness is wearing off, then we need to change it. Agile is about change and being flexible.