Sponsored By

Balancing Level Design and Performance in a Family-Friendly VR Game: A Deeper Look Into Sugar Mess

How do you make a VR game fun for the whole family?

Artem Snegur

May 29, 2024

9 Min Read
Images provided by author.

How do you make a VR game fun for the whole family?

Early on, we decided that Sugar Mess — Let’s Play Jolly Battle will be a fairy tale. The game would follow a hero traveling to a fantasy kingdom of living sweets, making friends, and fighting a mysterious antagonist. This fairy tale concept shaped our entire game design approach in Sugar Mess — Let’s Play Jolly Battle

Once we had it, our first stop was obvious: it had to look good, like a kids book, which meant developing a rich, kid-appropriate visual style. And just like a good fairy tale, Sugar Mess had to be captivating from start to finish, never once losing the attention of its players. Our solution: prioritize player engagement, make the game modular and constantly rotate level types and gameplay scenarios.

So, we knew what we were building. The only problem was finding a way to build it — and on a resource-constrained platform, no less.

We needed some kind of magic.

When game design goals meet platform constraints

Any developer of a family-oriented game is in a tough spot. If mechanics and environments are monotonous, our target audience gets bored fast.

Which meant that our gameplay loop should constantly stimulate the players’ attention. To add variability and keep the players’ attention span in check, we used various types of spatial arrangement for every level and mechanics. Standing shooting levels, railway shooting, logic puzzles, rhythmic levels, boss fights — you name it.

However, the decision to release on an Android-based platform meant we had a limited amount of resources to play with. We had to optimize the game’s performance while keeping the visuals as detailed as possible — super difficult given the platform’s hardware limitations.

Simply put, we had to pick our battles.

The developers of traditional PC games can often rely on taking advantage of the performance of high-end gaming PCs. But your options are way more limited when you develop a project for an all-in-one VR device.

One significant constraint is the processing power of the Meta Quest devices, which may restrict the complexity of graphics, physics simulations, and AI computations. Additionally, memory constraints limit the size of game assets and textures, requiring careful optimization to ensure smooth performance. Moreover, the limited input options, such as the Oculus Touch controllers, necessitate innovative design solutions to create intuitive and immersive gameplay experiences.

But we still had ambitious goals in mind. We wanted the game to feature a beautiful visual style, immersive world, entertaining and captivating gameplay, and elaborate narrative. We wanted to make it a fairy tale!

To achieve the balance between performance and level of detail, we had to outline the optimization methods very early in the development process — way back at the sketching stage. If you start working on it later, you will likely have to redo the work from the beginning.

An Aside: Level progression and the importance of mini-games

In the story mode, players gain access to new levels in a particular sequence:

Static Level → On-rails Level → Puzzle Level → Boss Level →  Rhythm Level

The player learns to shoot during the initial levels and gets used to various tools at their disposal. The puzzle levels give the player a breather before the boss fights. Once the boss level is over, the player can rest from shooting during a rhythm-based level, which is also an opportunity to earn some coins to unlock and improve guns for the next boss level.

This sequence remains in place for the whole game. The only exception is the last, 10th level, which is a singular boss fight that closes the campaign.

Our approach to level design

We always start our level design process with a concept phase, beginning with a Blueprint representing the placement of every object in a particular scene. With Sugar Mess — Let’s Play Jolly Battle, our next step was blocking the scenery. Blocking is another crucial element of visual design that determines the layout of the in-game map.

Here’s the step-by-step overview of our approach:

  • Build the foreground

  • Create several blocks on the perimeter, including buildings, big objects, and other elements of scenery serving as limits of the map

  • Transfer this part of the structure into the editor and test every 3D object to check whether they work well within general gameplay. If there’s something wrong with a scene’s composition or gameplay, it’s much easier to fix at this stage.

  • Refine the blocks

  • Full-scale testing of the detailed scene

After the 3D models are in place, we start working with textures and light sources. If extra optimization is needed, developers can employ baking and pattern atlases. That’s what we did in Sugar Mess, saving even more resources.

An Aside: Ambiance

Level ambiance is crucial when creating a family-oriented VR game. The right kind of ambiance makes the game feel unique and exciting to the player… just like a good fairy tale.

Several levels in Sugar Mess are set in their dedicated environments. These environments are still based on the primary Sugar Realm setting but switch things up just enough to keep the player entertained.

In addition, our team used various particles, VFX effects, and sounds to immerse a player in the scene and enhance the player's immersion.

The need for optimization

To keep performance high when the visuals are loading, all objects in the foreground, middle ground, and background should be optimized. But those bright and colorful objects are exactly what draws the players’ attention in a family-oriented game!

A high level of detail (LOD) impacts memory and CPU, demanding intense rendering and increasing the file size. Basically, we had to carefully choose which groups of objects will have different LODs depending on their size, importance, and distance.

Here are a few examples:

  • The LOD value for mobs that move toward the player is 2,500 polygons

  • Large objects located at a medium distance, such as barrels, have a value of LOD-1000

  • The towers situated further away need to be less detailed, so their value is LOD-500

Generally, you have three options when it comes to designing 3D models:

  • Go for near-perfect high-poly geometry

  • Opt for a lightweight, low-poly mesh

  • Use mid-poly models that are detailed enough but use fewer resources than high-poly

That last option is the middle road we took with Sugar Mess – all objects in the foreground are built with optimized mid-poly 3D details.

We have also swapped all 3D objects in the background and the 3D backgrounds themselves for 2D illustrations. That’s how we’ve got those picturesque skyboxes with images of the sky, faraway objects, and the horizon, while also keeping them very lightweight.

We also used other optimization tricks and psychological cues. For example, to draw the player’s attention to an interactive object, we used leading lines, highlights, or emphasized them with a surrounding composition. This way, we guided the player through the level and showed them new opportunities… While keeping their eye away from some of the cutbacks.

The stylized visuals demand optimization and resource efficiency. Since we’re not moving objects during gameplay, we didn’t have to create lighting from different angles, allowing us to choose baking over real-time lighting — another win to balance the level of detail and performance. Good topology is crucial at this stage, ensuring meshes with baked textures and lighting are free of artifacts and uniformly cover object shapes.

The chosen ‘fairy tale cartoon’ setting allowed us to further optimize on the visuals. When depicting an object (such as a tree) using fairy tale visual stylization, you can replace thousands of 2D images of leaves with just a few polygons. The object will look no less beautiful, and loading the image will occur without difficulty. Just imagine the performance gains!

An Aside: Balancing and testing a family-friendly game

A game for all ages requires considering each family member's interests and abilities. This calls for game mechanics that are equally accessible to both experienced players and total rookies… And we spent a lot of time making sure we got it right.

We consulted multiple focus groups of players of varying ages and gaming experience. During these sessions, players were encouraged to provide feedback on their overall gameplay experience, including any challenges they encountered or aspects they found enjoyable. By observing and analyzing player interactions, we identified common pain points and usability issues.  Additionally, testers were asked to rate their level of immersion, comfort, and engagement to gauge the effectiveness of the game's design in delivering a satisfying VR experience for players of all ages.

The insights from playtests were vital in shaping the game's UX. For example, if players struggled to transfer weapons from hand to hand, our team would explore alternative mechanics for grabbing weapons to improve accessibility and make it intuitive. Sometimes, it involved implementing a simplified control scheme or introducing visual cues to more effectively guide player interactions.

Feedback regarding motion discomfort prompted adjustments to locomotion mechanics, such as implementing a vignette view to enhance player comfort during gameplay. By iteratively refining the game based on playtest feedback, our team aimed to create a seamless and enjoyable VR experience that catered to the needs and preferences of its diverse player base.

In conclusion

Making a family-friendly VR game for an Android-based platform taught us a few valuable lessons, especially about the importance of optimization in level design. Meticulous visual optimization and resource management allowed us to achieve smooth performance and rich visuals, making the overall experience just a bit more… fairy tale.

Moving forward, we’d like to emphasize several key takeaways for fellow developers:

  1. Prioritize visual optimization to maintain a consistent frame rate and minimize performance issues. Utilize efficient rendering techniques (such as occlusion culling and LOD models) to reduce rendering overhead and improve overall performance.

  2. Carefully manage resource usage to optimize memory usage and load times. Implement asset streaming and asset bundling techniques to reduce memory footprint and enhance resource efficiency.

  3. Iterate and playtest extensively to identify and address performance bottlenecks and usability issues. Solicit feedback from players to gauge the effectiveness of optimization efforts and make necessary adjustments to improve the overall user experience.

By integrating optimization techniques into the level design process from the beginning, developers can create visually stunning and performance-efficient VR experiences that are both engaging and immersive… like a good fairy tale.

Extra details: The tools we’re using

In developing Sugar Mess — Let’s Play Jolly Battle, we used Blender for creating 3D models, Unity as our game engine, Photoshop for creating textures and editing graphics, and 3D Coat for working with textures of 3D objects (such as cannons).

Read more about:

Blogs
Daily news, dev blogs, and stories from Game Developer straight to your inbox

You May Also Like