Monster House Party https://monsterhouse.party Monster House Party VR game. Sun, 20 Aug 2023 12:17:38 +0000 en-US hourly 1 https://wordpress.org/?v=6.5 https://i0.wp.com/monsterhouse.party/wp-content/uploads/2023/06/ICON-UndertakerGlow.png?fit=32%2C32&ssl=1 Monster House Party https://monsterhouse.party 32 32 230825802 Wired for sound https://monsterhouse.party/2023/08/20/wired-for-sound/ Sun, 20 Aug 2023 12:17:38 +0000 https://monsterhouse.party/?p=234 Audio in video games is not just an optional extra or second thought but an integral component that affects gameplay, storytelling, player experience, and overall immersion.

We’ve spent some time this week setting up the basic audio system for Monster House Party. After investigating a few different options we have settled on implementing the powerful FMOD audio platform.

FMOD is a comprehensive sound system and audio platform widely utilized by game developers and multimedia professionals to enhance the sonic aspects of their projects. Developed by Firelight Technologies, FMOD offers a robust set of tools that enable creators to design and implement immersive and dynamic soundscapes for various applications, most notably video games. Its suite, consisting of both FMOD Studio and the FMOD API, boasts a user-friendly interface for sound designers to craft complex auditory interactions, while also providing programmers with a flexible and efficient API for integrating these audio experiences into software. FMOD’s versatility and integration capabilities with popular game engines like Unity and Unreal Engine make it a great choice for many in the industry, from indie developers to AAA studios.

Audio is a fundamental component of video games and plays a crucial role in enhancing the overall gaming experience. Here’s a breakdown of why it is import:

  1. Immersion and Atmosphere: Audio helps create an immersive world by providing a sense of place and atmosphere. The subtle sounds of wildlife in a forest, the hum of neon lights in a cyberpunk city, or the eerie silence of an abandoned spaceship can make the player feel like they’re truly “inside” the game world.
  2. Emotional Impact: Music and sound effects can amplify the emotional content of a scene. A poignant soundtrack can make a sad moment even more heart-wrenching, while a triumphant score can make achievements feel grander.
  3. Feedback and Player Interaction: Sound is often used as feedback for player actions. Whether it’s the clang of a sword, the sound of a jump, or the chime that plays when collecting an item, audio cues help players understand the consequences of their actions in real time.
  4. Narrative and Storytelling: Voice acting brings characters to life, adding depth to their personalities and making narratives more engaging. Moreover, background audio or subtle sound cues can hint at off-screen events or past stories, enriching the game’s lore without explicit exposition.
  5. Directional Awareness: In many games, especially in the first-person or third-person shooter genres, the ability to hear sounds from different directions can be crucial. Players use these audio cues to determine the location of enemies, threats, or points of interest.
  6. Accessibility: For players with visual impairments, audio can be an essential tool for understanding and navigating the game world. Features that emphasize sound can make the game more accessible to all players.
  7. Gameplay Mechanics: Some games use audio as a primary mechanic. For instance, rhythm games like “Dance Dance Revolution” or “Beat Saber” rely entirely on players responding to musical cues.
  8. Enhancing Realism: In simulation games or games that strive for a realistic portrayal, accurate and high-quality audio can significantly enhance believability. The roar of engines in a racing game, the chatter of the crowd in a sports simulator, or the ambient sounds of nature in a hunting game can make these virtual experiences feel alive.

One particularly tricky aspect in Monster House Party is how to direct specific sounds to specific audio devices. For example, the game can support a player in VR and up to 2 other players using controllers on a single, split-screen TV. We need a way to send audio specific to each player to a different device (eg either to the VR headset or to the left or right audio channel of the TV) FMOD features an option to select an audio output driver/device, so we are hoping that we can use it for our special game use case.

If we are unable to send specific audio to specific devices, our fallback plan is to generalize and mix all the audio out to all devices. This isn’t ideal but would still allow players to play the game together in an enjoyable way.

]]>
234
Boilerplating https://monsterhouse.party/2023/07/30/boilerplating/ Sun, 30 Jul 2023 05:36:20 +0000 https://monsterhouse.party/?p=230 For the past few weeks, we’ve been spending time building and testing the fundamental code systems for Monster House Party.

In programming terms, this means writing code necessary for a program’s basic setup or infrastructure. This can include code for input, loading, audio management, application flow, and debugging.

Two important and interesting systems we are developing for Monster House Party are:

  • EventObjects: These will represent many of the events/actions that occur within the game. These can be simple actions such as a player pressing a button, to more complex events, like a character completing a task. In Unity, these will be created as ScriptableObjects, which allows us to separate the in-game events and actions from the other code systems. A bi-product of this architecture is it becomes trivial to trigger an event at any time when debugging and testing the game.
  • DataObjects: Similar to EventObjects, DataObjects are a way to separate any stored data from other code systems. DataObjects are also created as ScriptableObjects within Unity and have the feature whereby different data types (eg booleans, integers, floating point numbers, strings of text, and object references can easily be added and removed by a game designer without requiring a programmer to change any code)

Currently, we are also in the process of creating similar code for abstraction input. This will allow us to easily configure the different input controllers for multiple players (eg VR controller input vs gamepad input vs keyboard & mouse input etc) which will form the basis for part of Monster House Party’s accessibility features.

]]>
230
Cameras https://monsterhouse.party/2023/07/09/cameras/ Sun, 09 Jul 2023 05:33:53 +0000 https://monsterhouse.party/?p=220 Recently spent some time setting up the camera system for Monster House Party.

Whilst creating the greybox and input systems for the game and testing on the PlayStation 5 with PS VR2, we discovered something strange.

If the PS VR2 headset is used on the PlayStation 5 we are able to render an image inside the headset which is also mirrored onto the connected TV. This works with a standard camera component in Unity.

However, because Monster House Party is designed to allow a player in VR to also play with 1-2 other players who use DualSense controllers, we need to render additional cameras that are output only to the TV.

Four cameras are rendered: VR left & right eyes (SinglePass) for Player 1, Player 2 for half of the TV screen, and Player 3 for the other half of the TV screen.

We found when there is a single camera rendering we are able to render at over 120fps but as soon as we add a second camera the frame rate drops to 60fps. This occurs regardless of what content is been rendered (eg an empty scene even drops the framerate!)

After some trial and error, we discovered that if we have the first camera render like normal for the PS VR2 headset but then render subsequent cameras to render textures that are then displayed onscreen as UI elements we are able to render all 3 cameras at 90fps 😃

With a solution found, we’ve created a nifty ‘screen manager’ that takes care of setting up the cameras and screen rendering based on which cameras are present (eg just the VR camera, VR with a single or both controller players, or just a single or both players but no VR player)

This is an example of one of the many technical issues developers come across during development that isn’t always obvious in the planning stages. Luckily a solution and implementation for this one didn’t impact the schedule too much!

]]>
220
Greyboxing https://monsterhouse.party/2023/06/25/greyboxing/ Sun, 25 Jun 2023 05:28:39 +0000 https://monsterhouse.party/?p=215 Spent some time this week greyboxing out the Grindstone Manor environment.

Rough level geometry is modelled in Blender before being exported to Unity for testing.

What is greyboxing?

Greyboxing is a technique used in game development to create a rough prototype or mock-up of a level or environment. It involves creating basic, simplified geometry and placeholders to represent the various elements of the game, such as walls, floors, objects, and characters.

The process of greyboxing typically involves the following steps:

  1. Level Design: The first step is to plan and design the layout of the level or environment. This includes determining the size, shape, and general structure of the space. Considerations such as gameplay flow, player navigation, and key points of interest are taken into account during this phase.
  2. Basic Geometry: Using a 3D modeling software or a game engine’s level editor, the level is constructed using basic geometric shapes, such as cubes, spheres, or cylinders. These shapes are often scaled and arranged to represent walls, floors, ceilings, and other architectural elements. The focus is on establishing the overall spatial relationships and proportions.
  3. Placeholder Objects: Placeholder objects are used to represent interactive elements, such as doors, switches, or pickups, as well as non-playable characters (NPCs) or enemies. These objects are typically represented by simple shapes or temporary models to convey their approximate size and position.
  4. Lighting and Textures: Basic lighting is added to the scene to provide a sense of ambience and depth. Simple lighting setups, such as directional lights or ambient lighting, are used to illuminate the environment. Placeholder textures or materials, often in shades of grey, are applied to surfaces to differentiate between various materials or architectural features.
  5. Iteration and Testing: The greyboxed level is then tested and iterated upon to evaluate its gameplay, flow, and visual composition. Playtesting helps identify any design flaws or areas that need improvement. Feedback from the development team or external playtesters can inform further adjustments to the layout, object placement, or overall level design.
  6. Transition to Production: Once the greyboxing phase is complete and the level design is finalized, it serves as a foundation for the production phase. The placeholder geometry, objects, and textures are gradually replaced with more detailed and polished assets, such as final models, textures, and effects. The greyboxed level becomes a blueprint for the artists and level designers to work on, ensuring that the vision and structure of the level are maintained.

Overall, greyboxing is an essential step in game development, allowing designers, artists, and developers to quickly iterate and experiment with level designs, gameplay mechanics, and visual compositions. It provides a rough framework for the game environment, enabling the team to visualize and refine the overall experience before investing significant time and resources into creating final assets.

]]>
215
Input https://monsterhouse.party/2023/06/16/input/ Fri, 16 Jun 2023 12:32:00 +0000 https://monsterhouse.party/?p=209 Monster House Party has undergone a few format changes recently. With the shift to PS VR2 an opportunity has presented itself to not only have players interacting in VR but also via the DualSense controllers.

Spent some time this week testing various controller input ideas.

For now, the default controller input uses the left thumbstick to move the player’s character forward/back or rotates it left/right and the right thumbstick is used to orbit around the character. A nifty feature is if the player moves forwards/backwards the camera will automatically sweep behind the character.

An important focus of Monster House Party is accessibility. All input controls will be modifiable from the Options screen and a series of different presets will be included with the released game.

]]>
209
PS5 DevKit https://monsterhouse.party/2023/06/11/ps5-devkit/ Sun, 11 Jun 2023 05:39:01 +0000 https://monsterhouse.party/?p=189 Spent some time this week getting our PlayStation 5 developer kit set up and running with a quick scene of all the monster characters so far.

Super impressed with the performance on the PS5 so far. It handles the test SSS shader well and we are even able to run full, high-quality lighting with shadows!

UPDATE: Monster House Party test scene working on PS VR2!

Thanks to the excellent PSVR2 packages for Unity and OpenXR support, it took only 20 minutes to integrate support for the PSVR2 into my GXR framework (More on this later)

Not only does this mean development can hit the ground running but we should also be able to support other OpenXR platforms without too many changes!

]]>
189
SSS https://monsterhouse.party/2023/06/01/sss/ Thu, 01 Jun 2023 07:35:14 +0000 https://monsterhouse.party/?p=182 We are testing a new sub-surface scattering shader to capture more of a soft vinyl toy look.

Below are some examples next to the previous toon-shaded style.

About Sub-surface scattering

In computer graphics, sub-surface scattering (SSS) refers to the phenomenon of light penetrating and scattering within a translucent material, such as human skin, wax, milk, or marble. When light interacts with these materials, it does not simply bounce off the surface like with opaque objects. Instead, it enters the material, scatters, and then exits from a different point. This scattering process gives the material a characteristic appearance and affects how light interacts with it.

Implementing sub-surface scattering can be computationally expensive, as it involves simulating the complex behaviour of light interacting within a material. Therefore, various approximation techniques and optimizations are often employed to strike a balance between visual fidelity and computational efficiency.

Above: A snapshot of the basic SSS shader prototyped in Shader Graph.

]]>
182
PlayStation https://monsterhouse.party/2023/05/18/playstation/ Thu, 18 May 2023 07:17:45 +0000 https://monsterhouse.party/?p=176 We have become Sony PlayStation Partners!

The monsters are coming to PS VR2.

]]>
176
Screenwest funding https://monsterhouse.party/2023/05/04/screenwest-funding/ Thu, 04 May 2023 06:22:19 +0000 https://monsterhouse.party/?p=153 We are honoured to have received a Screenwest Digital Games Production Fund grant for Monster House Party.

The grant will allow us to produce Monster House Party in Western Australia using local, talented game developers, artists, animators, and audio engineers.

More to come soon!

A sneak peek behind the scenes at our pitch video and Pre-Alpha demo walkthrough.

]]>
153