A downloadable mod

Cycles of Fun: Loops and Timers to go Beyond Physics Simulation

An extension to the physics-based game design app NoSecondChance by Swen

Swen.png

This project discusses a joint contribution of the MetaMakers with the focus of providing a contribution to ProcJam and at the same time also providing a new mechanism for creating interesting levels in our new app. As part of the MetaMakers, I picked this project to produce an extension to N2C which is inline with my own research interests (behaviour design).

My primary motivation was to allow our design app and its integrated generator to explore a new game design space which requires functionality beyond the current limitation to purely physics-based behaviour. This meant I was able to integrate THREE things into one small project and combine my personal interest in behavioural AI, working on our in-house project and working on something for ProcJam :)

Interested in Testing?

If you are interested in testing NoSecondChance and have an iPhone or iPad running at least iOS 9.2 you can send an email with the subject "itch.io n2c" to

testflight@metamakersinstitute.com

and we will send you an invite link.

About NoSecondChance:

NoSecondChance is a physics-based game where up to three different types of objects interact with each other. The objects are the target, and two different kinds of balls. In the following image, you can see the large grey target capturing and interacting with the purple and salmon coloured balls. The purple and salmon coloured balls represent individual types of objects following different physical rules and may count differently towards the score which is represented throughs the five smaller bars at the top of the image. The top most bar represents the timer for a given level, which upon reaching the end fails the level.


NoSecondChance-bouncing.gif

Image1: NoSecondChance

The base rules of all NoSecondChance levels are identical. Within five minutes the player has to catch five balls that count towards the score on the target. The player catches a ball when the timer around it has entirely vanished while staying the whole time over the target.

Individual levels might have different variants such as:

  • different ball types count towards the score
  • different actions happen when objects interact
  • or it takes longer for a ball to settle on the target.

The game currently has over 200 parameters which allow meaningful modifications of individual levels going beyond simple colour changes and skinning. Nonetheless, changing colours is also possible and different colour combinations allow for altered gameplay. Parameters are changed through an interface which

tries to reduce the control complexity and completely remove the need for programming. To allow more design freedom, balls can have different physical properties or interaction options, e.g. what happens upon collision of the objects of the same of the two types.

However, movement of the game objects is entirely based upon their physical properties, the collision patterns, a random noise generator and their spawning location. The NoSecondChance design app also provides a generative component which creates new levels to explore the existing feature space of physical games. The app is currently available for iOS devices and is available here.

Motivation for new Patterns of Movement

Inspired by naturally occurring cyclic movement patterns such as the jellyfish in image 2, entirely new game dynamics would be possible in NoSecondChance.


jellyfish.gif

Image2: Jellyfish movement from http://imgur.com/gallery/GSkQLIT

These patterns would not only allow people using our app to design new levels but they would also allow the generator to exploit an entirely new space using repetitive rhythmic movement.The repetitive nature of the movement which propels the jellyfish through the water creates interesting visual patterns which are highly distinct from existing physical characteristics and create some hypnotic and mesmerising effects.


Introducing Timer Goodness, Trigger Cycles and Other Fun Things

To widen the existing game design space and allow the creation of movement resembling the jellyfish I had a closer look at timers and how they could be used to unlock functionality conditionally. More specifically I wanted to introduce timers to augment the force of particular balls. Using those timed locks gets around the issue of using tapping or collisions and allows some interesting dynamics.

NoSecondChance-Loop-pulsing-logo.gif

Image4: inverting the force of nodes on a global timer

NoSecondChance-Loop-global-changing-crop.gif

Image5: switching the type after2 seconds


It also does not require any communication between game entities. Image 4 illustrates the first behaviour designed using the new timers and is based on a global timer for all balls of a type. The timer reverts the force and the velocity and creates a beautiful rhythmic pattern resembling the jellyfish. Utilising this allows some interesting game dynamics using locked in balls and a non-static area you have to avoid. Switching now from a global to a local timer and augmenting the game from Image 5 allows another interesting design pattern, making objects change their type. A global timer would have created a hard transition for all balls of a type whereas a local timer for each ball allows a more fluid transition. This allows me, or later a designer, to have specific locations where balls appear on screen and alter the required playstyle to win the level. Image 5 basically moves the spawning zone from the boundary of the screen inwards reducing the time & space available for the balls to set on the target.

Combining local and global timers

By coupling local and global timers, some fascinating dynamics are possible such as the ones in image 6. In that level local and global timers are combined to achieve a different game dynamic. The balls use a global timer to change from red to yellow and a local timer to pin to their local after a second of moving. The combination of those two timers leaves the impression of some clotting substance.

NoSecondChance-Loop-globalstop.gif

Image6: chaining two timers; changing type & pinning

The current implementation of the timer offers 4 different parameters for each of the two ball types:

  • Global timer: [0..10] sec
  • Global timer option
  • Local timer
  • Local timer option

The current timers I developed allow the designer to switch ball type, invert forces, destroy balls or pin/unpin them after a given interval.

How does that all fit into ProcJam?

Creating a new mechanism which generates different movement and interaction patterns for an originally purely physics based game was the first step I intended. At the MetaMakers Institute, we want to support the design process not only by giving new tools to the developers such as the new timer. A second objective is also to enrich the generative component which is able to explore the design space with and for us, giving us and hopefully the users of our software new inspiration. In the case of NoSecondChance the goal is to design a couple of levels with the new timer and then let the generator explore the design space to come up with interesting and fun new level suggestions which we can modify. So the main goal for me for ProcJam was not to come up with a new mechanism for me to toy around with but to give the generator a new space to explore and surprise me with a novel use of timers.

Leave a comment

Log in with your itch.io account to leave a comment.