03.01.2013 Views

Chapter 1

Chapter 1

Chapter 1

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

As it's presently implemented, Battleships is really two single-player games. The computer<br />

sets up both users' games, and the moves I make are largely independent of the moves of<br />

my opponent. Result: we're really playing two games against the clock, and the one who<br />

completes the game first is not really so much the winner, as the best (or luckiest) player. In<br />

fact if we took this view to an extreme, we could considerably save on the messaging<br />

involved in a game of Battleships.<br />

In a real Battleships game, fleet layout is what really enables each player to test the<br />

psychology of the other. Adding an option for user- specified layout would make a good<br />

addition to the interest in playing the game. The code required to support this, in engine, app<br />

UI and view, would be nontrivial.<br />

Random first-move preferences<br />

The first-move preference specification is awkward, and gives the users one more thing to<br />

think about. There's a strong argument for removing it from the UI and replacing it with a<br />

randomly set first-move preference. This could be done without changing BSP: the firstmove<br />

calculation is still done from within the controller when the initiating player receives the<br />

listening player's initiate-response.<br />

This is a good example of how to make a UI simpler, by removing choices that generate<br />

more confusion than flexibility.<br />

To remove the choice about initiate/listen from the UI isn't possible with SMS, or even<br />

desirable. But the idea of making a call or sending a message is well enough understood.<br />

Perhaps the terminology could be better – Send First Message and Receive First Message –<br />

but this terminology doesn't suit protocols like Bluetooth.<br />

Little things maybe, but these are among the first UI features our end users will see, and if<br />

they appear hard to use, some would-be users won't take a second look.<br />

Chat channel<br />

BSP is sufficient to implement the rules of Battleships and to make the game playable. But a<br />

game of Battleships played between two players in a room, using old-style paper-and-pencil<br />

methods, wouldn't be simply a set of hit requests and responses. There would be comments,<br />

taunts, discussions about when to play the next game, and so on. Chat adds to the<br />

psychology and interest of a real Battleships game, just as much as user-controlled fleet<br />

layout.<br />

It would be nice to build in a chat channel to Battleships to support this kind of chat.<br />

However, BSP is built on RGCP – a conversational protocol in which players take it in turn to<br />

send and receive messages. That's basically unsuitable for chat.<br />

My favorite scheme to implement a chat channel would be to implement it at the GSDP level,<br />

so that the Battleships game has another connection to the GSDP server. That's easy – the<br />

Symbian OS client-server architecture supports multiple independent connections from any<br />

thread.<br />

At the UI level, there would be no need to alter the start-new-game dialog (chat initiate/listen<br />

details are the same as for the game). The view would have to be altered to include chat<br />

data – or, as in tp-ships, a multiview approach could be used. The persistent form of the<br />

game would have to be altered to include a log of chat – perhaps on a different stream from<br />

the main game data, so that chat could be added optionally without breaking the format of<br />

existing games.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!