A friend and I recently released an Android arcade game:
Odd things happen as you are playing: the court shape starts mutating, colors shift, and space warps in response to the impact of the ball. We had to cut most of the ideas to ever release.
One of the fun parts to implement was the mutating court walls.
We need a way to smoothly mutate the court from one interesting shape into another. Ideally we have some knobs to allow us to synchronize the mutation with what is happening elsewhere in the game.
After a couple iterations I settled on a pipeline approach that is inspired by audio synths. Each effect stage is independent and relatively simple to implement, but creates a surprising amount of complexity when combined.
In-game we generate an overall “game signal” (lower left) that is used to modulate parameters to the different pipeline stages (e.g. frequency and amplitude of the scaling effect).
Going from beginning to end, you input a shape (upper left), and then pass it through a number of effect stages, some of which may have feedbacking.
The same game signal is also used to synchronize other events in the game. This gives us a nice way to create games cycles with intense periods and cool-down periods that are tied back to court mutation.