I wrote Spelltapper to teach myself Android development, and so I could play this game with a friend. I also found designing the UI an enjoyable challenge.
Unfortunately, my initial enthusiasm has subsided, and this project also consumes more of my free time than I had anticipated. Rather than dump it in some forgotten corner, I’m releasing this game half-finished.
Several spells remain unimplemented: Blindness, Fire and Ice Elementals, Time stop, Haste, Permanency and Delayed effect.
The network code is extremely fragile. The server can only handle a single one-on-one duel, and should be restarted if a player quits in the middle of the game.
Other unrealized ambitions: story line, so that it plays like an RPG; statistics on a victory or defeat screen showing number of spells cast, favourite gesture, and so on; lifetime statistics which can be accessed at the Academy; player customization: names, portraits, avatars; sound and music; better graphics; exhibition matches with defeated opponents in the Arena; perhaps convert the single player mode to resemble a typical head-to-head fighting game (many opponents to choose from, gain knowledge after defeating one; each possesses the same knowledge as the player but has their own favourite strategy.).
Differences from original game
My version deviates from the original game in several ways. Most noticeably, as I felt the number of spells would appear daunting to beginners, I introduced a level system to flatten the learning curve. New players are gradually exposed to the gestures and spells, as well as concepts such as targeting freshly summoned monsters.
Other modifications resolve game balance issues described by various Spellbinder websites (see the links on Richard Bartle’s page):
Anti-spell is too powerful. This is remedied by requiring one more P gesture, making its casting sequence SPFP.
Paralysis is also too powerful. Some solve this by stipulating other psychological spells are strictly stronger. I chose to implement the "paraFC" solution instead: F gets paralysed to C, rather than vice versa. In a way, this makes more sense than the original rules: one can still clap if only one hand is frozen, and one cannot wiggle the fingers of a paralyzed hand.
Confusion is random in an otherwise deterministic game. I prefer the game to be deterministic not just for aesthetic reasons, but also because it makes it easier to program. Accordingly, I substituted a variant of the "malapropism" spell: a target wizard of Confusion must gesture identically with both hands next turn, while a target monster will attack its owner next turn.
For reasons unknown to me, veterans like to add the alternative casting sequence DFWFD for Blindness, and SPPFD for Time stop. It doesn’t matter now as I haven’t implemented these spells yet, but if I ever do, I’ll support these alternatives.
Fire and ice elementals were summoned with the same sequence in the original game, but it seems players prefer them to be separate spells: Summon Ice Elemental being cSWWS and Summon Fire Elemental being cWSSW. I prefer this too as it’s easier to program. If I get around to elementals I shall also follow this convention.
I renamed Remove enchantment to Disenchant to better fit on small screens.
The program crashes if too many monsters are cast. My plan is to cap on the total number of monsters (and their corpses) due to space limitations (and justify it by claiming that too many magical beings in the same area causes instability, preventing the summoning of more monsters). In practice, this bug rarely arises as duels typically involve very few monsters.
These modified rules appear to have been playtested thoroughly. See, for example, Slartucker’s articles on opening strategies.