Summary

Slime Slam is a local multiplayer brawler, where you can fight your friends with physics-based characters. I focused a lot more on technical art than I had done in previous projects, doing things like the slime splats that stay on the ground, box projected cubemaps and general PBR tweaking, and various environmental shaders. It could be seen as the first steps towards becoming a technical artist, and I learned a lot about shaders and creating VFX during the course of the project.

 

Contributions

  • Character model & multiple costumes

  • Environment textures

  • Various particle effects

  • Various custom shaders

  • Implementing box projected cube-maps

  • Concept art

  • Project coordinator

Specifications

  • Brawler

  • Created in 10 weeks - at 100% (8 hours/day)

  • Custom in-house engine

Team

  • 6 Programmers

  • 2 Level Designers

  • 3 Artists

  • 2 Technical Artists

Environments

We had a really enjoyable workflow when it came to creating the environments. The level designers created most of the blockouts during the first sprint, and mostly spent time scripting or polishing the levels using minor props the rest of the project. That let us in the art deparment structure our assets freely, and create environments that felt as a whole. I was responsible for texturing the majority of large assets in the level above, and the one below to the left. I brought in all of the individual pieces into Substance Painter, and baked all of the maps as if they were a part of the same object. That gave me a lot of control, and a really high quality ambient occlusion bake. Then it was just the normal texturing process.

Slime Splats

Letting the players change the world by painting it in the color of the enemies’ slime was something that increased how satisfying the game felt to play. I implemented it together with Christian Forsberg, who was the programmer responsible for the particles. He implemented particle collision, and gave me access to the normal vector in the shader. From there I built on the axis locked shader Emil Assarsson had built in the previous project.

I switch between 3 textures depending on the particle ID using modulo. But not only that, I also switch between splat and non-splatted, by checking the dot product of the velocity against itself. The result is a 0 or 1 depending on whether the particle is moving or not.

Character Customization

We wanted to support character customization. It ended up being a really nice modular system, where we could add objects to any joint we wanted using our blueprint system, based on Unreal. This allowed us to create however many costumes we wanted!

This game was a lot of fun to work on generally, because a lot of the stress from working on our portfolios had gone away, and we could let loose and do almost anything we wanted. That’s why I did a little bit of everything, doing small details all across the game; some shark scripting, some gameplay scripting, some shaders and some particles. I can’t take credit for any single thing though, because a lot of it was a collaboration between many people over a long time.