Ciro Continisio

< you can go back to works or to all content

Wizardry

4-player motion-controlled magic stand-off

https://github.com/ccontinisio/Wizardry

Prototype

Occasion

2013

Year

Wizardry is a codename for a prototype I developed in 2013 with a friend. The goal was to make a physical game using the PS Moves as the only input, and to make it enjoyable and understandable by people of all gaming skills. Yes, a bit like the amazing Johann Sebastian Joust from Die Guthe Fabrik, which was a huge inspiration for this prototype.

The creative process

One weekend in summer 2013, I set out to make a working prototype of such a game. I didn’t want to just copy Joust, and even if its use of motion sensors is just perfect, I tried not to rely on the shoving mechanic to win.

After a lot of thinking I decided not to use physical contact for winning condition. If JS Joust has one fault, is that taller players are in general at an advantage because they have longer arms and legs, and they can strike further if needed. I didn’t want this to happen.

Instead, I created a free-for-all wizarding duel, and since I couldn’t rely on pointing to the opponent (gyroscope doesn’t give you an absolute positioning in space, so I don’t know which direction the players are facing or pointing to) I decided to use the four coloured buttons to choose who to attack.

I play-tested the game with some friends a couple of times, and refined it slightly.

In the end, while it was fun, we all agreed that it was a bit too complicated, and that the feedback given by the lights was confusing.

Gameplay

The game is meant to be played by 4 players, and each player has one colour (green, pink, blue and red) corresponding to the four PlayStation buttons. The PS Move gives feedback about players actions through the light and vibration.

Let’s explain gameplay through an example. Let’s say there are 2 players: Christian (green) and Luca (blue).

Attacking

At the beginning all of the PS Move lights are lit in the player colours, so you know who’s who. If a player wants to attack another, they have to press and hold their button to target that player.

  1. Christian wants to attack Luca, so he presses the X button. His Move’s light will turn off as he begins charging up the attack.
  2. Charging is done by rotating (not shaking) the wand, and as he loads his shot the Move’s light will shine brighter of the targeted player’s colour (in this case, blue). This is done so Luca knows that Christian is targeting him.
    1. If Christian shakes his hand too much while rotating, the attack is broken and he takes a bit of damage.
    2. Because of this, Luca might try to push him or better, move his arm to break his spell.
  3. When the shot is loaded, Christian‘s Move will start flashing so he knows he can unleash it.
  4. He does this by flicking his wrist (any direction is fine) and then holding a pose: vertical or horizontal. At this point, Luca‘s Move will shine green to show he’s being attacked by Christian, and that he’s in danger.

Defending

  1. Luca then has 1 second to react: he must hold his Move in the other orientation: horizontal to parry a vertical attack, vertical to parry an horizontal one.
    1. If he doesn’t or he takes the wrong stance, the attack lands and Christian is awarded points, while Luca loses them.
    2. If he does react well, he counter attacks and Christian takes damage instead.
  2. Alternatively, Luca can use the shield: by pressing the PS Move button, he triggers the shield (white light) which will protect him from any incoming attack for a while. The shield though has a maximum duration, and will break forever if used too much. Its duration is shown by the intensity of the white light.

Scoring

The points system is simple:

  • +100 for an attacker who deals damage
  • +60 for a defender who counters an attack successfully
  • +10 for a defender who uses the shield successfully
  • -10 suffered by an attacker who releases the button before unleashing an attack
  • -20 suffered by an attacker when anyone stops them physically
  • -30 taken by an attacker if the defender stops them with the shield
  • -60 taken by the attacker if the defender counters them
  • -60 taken by a defender who fails to defend themselves

I never implemented the end conditions for the game, but the players used to start with 1000 points. The idea was that there was a set time limit, and once the time was over, whoever had the most points won.

I also never implemented a UI or anything visual… the plan was to have something very simple, with simple 2D wizards shooting at each other when attacks where landed by players, so spectators could understand better what was going on.

Download the game

You can download the whole source code (it’s not much) for Wizardry on my Github. The code might be a bit broken (since development was stopped abruptly) and dirty (since I wasn’t that great of a coder in 2013), but it should compile fine.

Obviously to build it you need Unity, and to play 2-4 PS Move Controllers. You might also need the PS Move API by Thomas Perl, and a Mac (only runs on Mac, sorry!).

All works and words on this website by Ciro Continisio, except otherwise specified.