I have completed the base game of Wits and Wagers. This conversion went fairly smoothly, at least compared to Yacht. I am getting used to the torque scripting language, though there is still a lot to learn.
The login screen is similar to the screen for the Concentration Sweep game that William created. I have added the player colors to the login spots so that you can tell what color you will be during the game. We are planning to have a common login system that will also you to pick a color and enter your name for a high score table.
The game is played in seven rounds. In each round you read a question from the boxed game. Once the question has been read, each player’s region displays a panel to enter their answer:
The player uses the touchscreen to type in their guess and then clicks the ready button. The ready button is a toggle, so if you change your mind before the timer runs out, or everyone else is done, you can flip the toggle and change your guess. In order to make sorting the guesses, I decided to stick with purely numeric guesses. This means that everyone has to use the same units. Most of the time there is no ambiguity about what units to use, but if there are, everyone has to use the same units.
Once all the guesses have been entered, the central area shows the guesses on the payout regions and the player area changes to a betting area. Each player gets a small copy of the central area where they can place their bets. It would have been possible to have everyone drag their bet out to the central area, but with a lot of players there could be finger collisions. We also would like to have the option to make all the bets private.
On this panel, the player selects one of the three chip sizes and then clicks on the guess/bet regions to place a bet. A bet can be moved from one column to another by dragging and also dragged off the area to clear the bet.
While the players are betting, the central area is showing the player’s guesses and the payouts and is being updated with their bets as they are made:
While making this game, William and I added several features to the torque game engine.
- William added a state machine that I used to handle the flow of the game. Each state machine can have a set of states and messages. Each state is covered by a function that is called (with different parameters) on state entry, exit, when a message is received and every frame. The system allows multiple state machines to be pushed on a stack with the top one considered active. I ended up with two state machines for Wits and Wagers. One for the main game flow and another for the steps of paying out the winners and losers.
- I added a wrapper around the windows text to speech API. This allows a game to say any phrase without going to the work of recording the phrase and adding it as an audio element.
- William added a true type text GUI element. The built in torque text element has a lot of nice features, but is basically broken because the text that it renders is fuzzy. He had used this code in another game to produce nice clean text that automatically adjusts its font size to fit in a defined area.
- William also added a non-linear animation system. The torque 2d engine can animate by moving a sprite from one position/rotation to another over a period of time. But it is a linear system so the speed is constant over the whole move. William’s system is non-linear, so you can set it to start slow, speed up in the middle and slow back down at the end. This makes for a nicer looking animation.
I am still planning to add some options to the game:
- Hidden bets: The player’s bets aren’t shown in the common area until everyone is done
- Secret bets: The player’s bets are shown in the common area, but without their identifying color so that you can’t tell who is betting on which guess.
- Secret guesses: Same as secret bets, but for the guesses.
- Two guesses for 3 players: The game is supposed to be for 4-7 players. It works with 3, but there really aren’t enough guesses and it is too easy. So we allow each player to guess twice.
- Different timer limits.
Sweet! Looking forward to trying it out this weekend.