Qiping Yan | Computer Science and Engineering | University of Nevada, Reno
School Projects -- Surling

Project Name: Surling -- Surface Curling
Class: CS791M: Player Game Interaction (2010)
Team: Bugra Oktay , Bing Dong Li, Qiping Yan
Implementation: C#, MS Surface Framework, ScatterView, PhotoDraw
Description: Surling -- Surface Curling. This kind of game is awkward to play on a upright devices like TV or computer screens, but it's perfect for devices facing horizontally, such as the Surface unit.

Curling is a sport in which players slide stones across a sheet of ice towards a target area. Two teams, each of one to five players, take turns sliding stones across the ice curling sheet towards the house, a circular target marked on the ice. Each team has five stones. The purpose is to accumulate the highest score for a game, points being scored for the stones resting closest to the center of the house at the conclusion of each end, which is completed when both teams have thrown all of their stones.

How to playSurling

Two teams, Green and Orange, each get 5 stones to start the game. Players can choose to turn on or off the collision function by tap the "Collision button". When collision is off, the stones will overlap each other. When collision is on players can strike other team’s stones out of the pointing area or hit his own teammate’s stone to get it closer to the target and score higher.

There is a slider that players can use to change the decelerate rate of the stones. When it is changed to ALL, the stones' decelerate rate will affected.

The score board shows the scores in real time. So the score can decrease if stones are knocked out the score area.

The playing turns are forced by the software. There is only one stone that can be slide by one play at a time. When the current player slides his stone, next stone will be automatically set up at the starting position. If a player made a mistake, like the stone did not even pass the first line, the player can slide his stone again. But if the stone has reached the end, the player cannot move the stone again. But other players or teammates can still hit that stone and move it.Surling

After all the stones have been played, you can tap the "Game Over" button. The game over message board will display the final points and the wining team. Then tap the "New Game" button to start a new page. The "Game Over" and "New Game" button is the same button. It will display the proper message according to the current situation.

It will play a "click" sound when to stones collide and the "Collision" is on. When "Game Over" button is tapped, an "applause" sound will be played.

You can tap the "Help" button on the bottom left for some simple help. Tap it again to hide the messages. The "Credit" button on the bottom right works the same way.


This game is implemented with the C# for Microsoft Surface unit. The main features for the ScatterView are move, rotate and resize. We only need the move function. The game board was designed with Microsoft PhotoDraw and the game logo was designed with Microsoft Expression. The stones are all generated dynamically by software. Each stone is a ScatterViewItem. The slide function was implemented with the ScaterViewItem flick feature. We did not find a "collision detection" package for our game. We implemented our own simple "collision detection" physics. We added a timer tick too to handle the logo animation at the beginning and real time scoring system.

We used the PointAnimation method for our collision detection.

We used the SoundPlayer for the sound effects.