Circus Cannon

DEMO

The making of

Circus Cannon is a puzzle game for Microsoft Hololens 2 where the player is tasked with placing trampolines in order to lead a cannon ball through golden hoops. Microsoft Hololens 2 is an augmented reality/mixed reality headset that is able to track virtual and non-virtual objects alike. In Circus Cannon the player is presented with a cannon, a stack of trampolines and a ring-shaped goal. The cannon repeatedly fires cannonballs and the player has to use their real hands in order to grab the trampolines and place them so that the cannonball bounces on them to eventually go through the golden hoops.

Goals and motivation

A major motivation for this project was to explore the capabilities of Mixed Reality headsets and learn more about them. None of us in the group had any prior experience working with Augmented/Mixed Reality Reality technologies. These headsets are still quite inaccessible because of their high price so developing for them is a unique opportunity for us in the group.

One of the goals for the project was simply to create a fun game for this unique piece of hardware. We sought to make use of as many of its features as possible: hand tracking, head tracking, spatial sound and we even researched the possibility of bringing in a 3D printed cannon that the player could physically move in order to change the position where the cannonballs would be fired from.

Technologies

Interaction was key for this project and we made use of some interesting methods. The position of the player is naturally decided by the position of the headset in space as the game area is made up of the physical world. In order to interact with objects in the game, the player makes use of their hands. The player can grab and move trampolines by physically grabbing them with their hands and moving them around. By rotating their hands they are able to rotate the platforms as well. The player can also make use of long-distance controls that work similarly to grabbing the platforms directly, but is done by aiming rays at the platform that the player wants to move.

As for graphics technologies we were able to implement a few different interesting visuals. For example, the trampolines deform and spring back when the cannonballs hit them by using something called bounce maps. Depending on where the ball hits, the fabric of the trampoline will deform accordingly. In order to create some obstacles for the game we added a burning barrel that makes use of a stylized flame effect made from a custom particle system. We also added a visual indication for when the ball passes through a hoop, also making use of a particle system.

Challenges

As previously mentioned, none of us in the group had previously worked with Hololens or MagicLeap and initially the project was planned for the latter of these two devices. After encountering some issues with the MagicLeap that were out of our reach we decided to switch to Microsoft Hololens. We had to scrap the work we did with the MagicLeap but a lot of the knowledge we gained from working with it carried over to the Hololens.

A few planned implementations got scrapped due to either changing mechanics of the game or because we were unable to fully implement them and build them on the Hololens. Initially, the player was able to spawn platforms by a pinching gesture of the right hand and moving them by pinching with the left hand. In order to completely remove platforms, the player had to pinch with their left hand and drag the platforms to a virtual recycle bin. We noticed several problems with these controls. The player often spawned a lot of platforms by accidentally keeping their right hand pinched and many players simply thought the controls were unintuitive. When we had these controls in place, there was a need for a visual indication of which platform the player is currently holding, which was done by using a custom shader that created a glowy outline of the platform that was currently held. When we streamlined the controls, and disallowed the user to spawn platforms, there was no longer a need for the visual indicator of the select platform.

Related work

Link to paper

Jui-Hsien Wang, Rajsekhar Setaluri, Doug L. James, and Dinesh K. Pai. Bounce Maps: An Improved Restitution Model for Real-Time Rigid-Body Impact. ACM Trans. Graph. 36, 4, Article 150 (July 2017)

This paper suggests a method for creating more realistic bouncy objects. Most strategies for creating bounce effects make the simplification that the object is equally “bouncy” over its whole volume. This was the inspiration for our trampolines.

DISCLAIMER

Last updatedJanuary 03, 2023


WEBSITE DISCLAIMER

The information provided byKTH - AGI Group 3 - Shady Shaders('we', 'us', or 'our') onhttps://circus-cannon.netlify.app/(the'Site')is for general informational purposes only. All information on the Siteis provided in good faith, however we make no representation or warranty of any kind, express or implied, regarding the accuracy, adequacy, validity, reliability, availability, or completeness of any information on the Site. UNDER NO CIRCUMSTANCE SHALL WE HAVE ANY LIABILITY TO YOU FOR ANY LOSS OR DAMAGE OF ANY KIND INCURRED AS A RESULT OF THE USE OF THE SITEOR RELIANCE ON ANY INFORMATION PROVIDED ON THE SITE. YOUR USE OF THE SITEAND YOUR RELIANCE ON ANY INFORMATION ON THE SITEIS SOLELY AT YOUR OWN RISK.

EXTERNAL LINKS DISCLAIMER

The Site
may contain (or you may be sent through the Site
) links to other websites or content belonging to or originating from third parties or links to websites and features in banners or other advertising. Such external links are not investigated, monitored, or checked for accuracy, adequacy, validity, reliability, availability, or completeness by us. WE DO NOT WARRANT, ENDORSE, GUARANTEE, OR ASSUME RESPONSIBILITY FOR THE ACCURACY OR RELIABILITY OF ANY INFORMATION OFFERED BY THIRD-PARTY WEBSITES LINKED THROUGH THE SITE OR ANY WEBSITE OR FEATURE LINKED IN ANY BANNER OR OTHER ADVERTISING. WE WILL NOT BE A PARTY TO OR IN ANY WAY BE RESPONSIBLE FOR MONITORING ANY TRANSACTION BETWEEN YOU AND THIRD-PARTY PROVIDERS OF PRODUCTS OR SERVICES.

This disclaimer was created using Termly's Disclaimer Generator.