onewinter games

brooklyn-based indie game studio

Fun with Game Juice

Time for a little sidebar from the coding adventures — how about some game feel before-and-after?

From Wikipedia, a quick definition for Game Feel/Juice:

Game feel is the intangible, tactile sensation experienced when interacting with video games. The term has no agreed upon definition, but there are many defined ways to improve game feel. The different areas of a game that can be manipulated to improve game feel are: input, response, context, aesthetic, metaphor, and rules.

For game developers, there’s always moments during a game’s development when you notice it make the leap from sterile tech demo to something that makes you feel something while playing it. For many projects, that’s the simple introduction of sound. Sound effects do a monumental amount of the lifting in our brains when we are experiencing a multimedia piece; they fill in the missing pieces and help your brain to bridge the gaps between what it is seeing and what the piece is meant to evoke. In the Wikipedia definition above, sound is essentially capable of covering every area of game feel, sans input (and even then, rhythm-based games probably would be entitled to a word)

Try watching the video below with and without sound to see the difference — as notoriously fun as Mario 64’s 3D platforming is, it instantly becomes much less interesting to watch once the sound is muted.

(video source: Reddit)

With Click Crafter, the goal is to create an engaging low-poly game that doesn’t require an enormous amount of graphic fidelity or additional effects assets in order to do so. By layering on some simple — but incredibly responsive — game feel effects, it’s possible to create a game that feels incredibly alive and satisfying to interact with. Let’s take a look at all of the ways we can layer on game feel before we get to sound effects.

Layer 1: Outline Highlighting

Using the incredible Linework Unity Asset, interactable objects in the world are given a bold white outline to help the player identify them. To make it clear what the player is interacting with, the outline changes color to green or red, based on the available outcome.

Add a Wide Outline to denote all Interactables
On Hover, change outline to green and expand its size

Layer 2: Rotation Spring

Now, let’s use some Springs from the Feel Asset to really liven things up. Adding constant tiny bumps to a Rotation Spring parenting the Interactable really makes it feel “alive” while the player has their cursor over it (in a goofy, Disney Haunted House sort of way that I love):

Adding rotation jitter during OnCursorStay

Layer 3: Squash and Stretch Spring

Layers 1 and 2 are mostly about imparting information to the player (with a nice side effect of some fun); but bringing in the ole’ animation standby — Squash and Stretch — really starts to bring joy and fun to the forefront. Now the entire building has an incredibly satisfying bounce to it every time the player cursor enters and exits (enticing the player to keep doing it!)

Adding Squash and Stretch bounce on Cursor Enter / Exit

Final Visual Layers: Drops, Crafting Ticks, and Crafting Complete

Finally, let’s add more bumps to these existing springs whenever the player successfully drops an item, whenever the building is actively crafting an item to output, and when the building actually outputs an item. Without any particle effects or explicit animations, this crafting station now feels magical and alive every time the player interacts with it using their (canonically, in-universe) enchanted cursor.

Adding a SquashStretch bump on Drop, a small bump to both springs each crafting tick, and a big bump to both springs when crafting is complete

And Now, Audio

With such a visually alive Interactable, adding sound effects becomes such an enjoyable activity, as your brain already has ideas about what it thinks it wants to hear in conjunction with what it’s already seeing. Adding small whoosh noises on cursor enter / exit, satisfying plops on item drop, and clear production noises each time a craft has finished helps complete the sense of immersion with this (fairly) straightforwardly designed building.

Tying it all together

Further possibilities

This is a very replicable design language for a game that does not really require creating any extra assets; however, that doesn’t mean there isn’t a place for some tastefully added particle effects:

Showing a simple particle effect on spawn

You could also go a step further and add juice to the UI toolkit elements displaying information on crafting status and inventory (this post is getting long, so I may come back and add this example later if I do end up coding it in!)

For further reading on Game Feel / Game Juice, check out the following resources:

Sound off in the comments with any other good examples you come across 👍

Leave a Reply

Discover more from onewinter games

Subscribe now to keep reading and get access to the full archive.

Continue reading