Swordplay

Swordplay is a swords-and-spells adventure game developed at Brown University for CS196-2 in 2006 by Mike Katzourin, Lincoln Quirk, and Dan Ignatoff. It is played inside a room with display on 3 walls and the floor, using steroscopic vision and two position and orientation-sensitive controllers. Players can freely and directly control their sword, shield, bow, and arrow, and also draw spells in air which are recognized and parsed into a series of spell symbols.

Links:
Project Proposal (pdf) - Our initial design document.
Postmortem - Our final analysis and evaluation of our development process and overall success.
Movie clip (17MB) - This movie details the control scheme and features of the game and shows gameplay footage. We apologize for the low quality of this movie, as our camera is unable to properly capture the visual effect of the cave. Expect to see flickering and both the left and right eye view at the same time. In addition, some visual and aural effects are not properly captured by the camera.

While the game is the most fun in the CAVE, you can now try it out on your own system! Simply download our desktop version to a Linux machine and try running the binary (_build/distrib/clientd). If that doesn't work, you'll probably need to rebuild it. In that case, get the G3D and SCons libraries installed. Modify the SConstruct file to use the appropriate G3D library directories, and type 'scons' to build, then _build/distrib/clientd to run.

Contact: Our CS system logins are mkatzour, lquirk, and dignatof. You may add '@cs.brown.edu' to any login to create an email address, or zwrite us from within the system. (Proper mailto links withheld at this time to avoid email harvesting robots.)

Updates:

2006-05-16

Post-game updates:

  • We now have a desktop version of the game available! While the control scheme is confusing, it still manages to show the basic premise of our game.
  • We have a movie clip of our game as well! Check out the links at the top of the page.

2006-05-12

Our game is now complete:

  • We have added a game map and 3 different types of enemies.
  • Sound effects and music have been added.
  • We did work on the visual effects of our spells
  • We did more work on our sound system to add in relative volume for different sounds. Also, the 3rd party software that we had to use (At the time, it was the only available method) is incredibly buggy and randomly crashes or hangs.
  • Dynamics of HP and ENERGY and scoring have been added. Including changes that occur during "Game Over" status.
  • Enemies now are able to die and remove themselves from the world. This exposed a small bug which we promptly squashed.
  • More spells have been added including Fireball, Heal, and variations of Area of Effect, Multishot, and Fireball.
  • We have ditched the models, as they are far too slow for our needs. We instead have our own simplified version of several objects that allow our game to have hundreds of active objects in the world at once.

2006-05-10

We are nearing our final version of our game:

  • We have settled on a method of spell recognition. Summed up, our method measures the angles and length of the user's strokes and compaires them with it's database, formed from a set of training examples. This new method is very accurate and robust, but does not handle curves well.
  • Players can move through the world using the analog joystick. This initially exposed a plethora of complications related to both our design and workings of the cave itself. Without being able to access or move the camera (due to the way the cave works), we instead made the entire world revolve around the player (litterally). Keeping information synchronized between all objects and properly manipulating all of our matrices proved to be an unexpected and interesting challenge.
  • We made several updates to our data management, making it more efficient and flexible. This includes "smart objects" that do not need to be managed by the main program, and can insert or remove themselves from the world when necessary.
  • We now make use of a height map. In addition, a player can move up and down along the map by walking in the room (in addition to moving via the analog joystick)
  • We have a HUD that displays the user's information
  • We have a model loader and can properly use models in the cave. This was another unexpected challenge, as the file type we wanted to use in the cave, 3DS, was incredibly difficult to make use of in the cave. After several days of work, we decided to use IFS models which lack textures, but are much simpler to implement.
  • The game can be cleanly and quickly reset without having to kill and reload the entire program
  • Enemies can spawn in the world, target and follow the player, damage the player, and get damaged.
  • We have many spells working: Multishot, Area of Effect, Sword Enchant. We also allow certain sequences of symbols to be strung together to perform more powerful versions of existing spells.
  • We now have sound fully working.

2006-04-17

Much progress has been made since the last update:

  • We have a bow and arrow. You can switch weapons by reaching behind your head with both hands. You can fire the bow using a nock, draw, release motion, and reload by reaching behind your head with the right hand to pick up another arrow.
  • We have collidable objects. The sword, shield, arrows, player, and enemy (currently a box) are all collidable.
  • We've been investigating different methods of spell recognition. We are currently using statistical moment analysis. We've experimented with a few systems involving resampling user input to a constant rate in order to recognize subsymbols within one stroke, but the success rate for recognition on that system was low, even with relatively simple symbols. We're also considering a method involving mathematical signatures independent of scale and position, but we haven't implemented them yet.

2006-03-13

We've updated our proposal again with new rubric stuff.

2006-03-10

We have screenshot code working from the CAVE, so here's a few screenshots. There's really very little to see here, mainly because the experience is in seeing everything in 3D in the CAVE from the four screens at once. But to satisfy your curiosity: 1 2 3 4 5

2006-03-07

Woohoo! We are successfully building the app in the CAVE. Right now we are using simple OpenGL to line-draw a sword and a shield onscreen with two input controllers. The stereoscopic stuff is all handled for us. It looks great, even though there's not much there yet. We're looking forward to some rapid progress.

As for the Dojo port, we've been convinced by the TAs that that shouldn't happen. We're going to work in the CAVE with VRG3D and G3D directly. This limits our physics capability somewhat, so we're going to do simpler interactions with the environment unless we decide later on that we have the time and need to bring over some better physics.

2006-03-03

We've updated our proposal (linked above). Since we updated the rubric, we have a slight shift in focus away from content. We've fooled with the early timeline to better accommodate our CAVE nature. We found a new image recognition library, GOCR, so we refer to that instead of imgSeek. We also are going to need to port Dojo to the CAVE, so that's a part of the implementation.

2006-02-28

We've updated the rubric on our proposal, linked above. It still contains references to the Wall, and some other stuff that we are not sure if we are still using, but incremental updates are good, I guess.

2006-02-26

We've learned that the Wall is not available (apparently, it's broken). This is unfortunate news, and we will have to decide whether to use the Cave or simply to output to a more "normal" display device. The display is not critical to our design, but it significantly adds to the immersion factor.

2006-02-24

We have submitted our proposal to be approved. In the meantime, we have several concept images for you to peruse: