COMPETITION ENTRY #37: CODENAMES
|AN ENTRY FOR THE MAGENTA CHALLENGE|
"Some more moderately glossy crap for you to pick your way through. I'm pleased with some of the stuff going on in the background here, but the resultant game is a bit pointless."
- Andy Jenkinson
Not content with trying to grab next year's Iron Throne with throwing weird dice, Andy has turned his hand to a card-based board game. Codenames was invented in 2015 by Czech game designer Vladimír "Vlaada" Chvátil, and Andy and his friends found themselves whiling away the hours of Coronatarianism-enforced house arrest last year playing it over Zoom. Which, of course, led Andy to think "wouldn't it be useful if we could all play this via Spectrum emulators instead?"
And that's how we find ourselves here, a year and a half later, with another gloomy autumn and winter of more of the same looming large over us, and another five or six of those to come - and that's if we're lucky.
The presentation is everything I've come to expect - starting with a loading screen, which is only compromised by the lack of POKE 23739,111 so the woman at the left of the screen gets her left foot amputated. I know the Tokyo Paralympics are about to start, but that was unnecessary. At least the title screen has no problems - you'd expect to see something like this on any commercial game of the 1980s, and all it took was seven UDGs. From here you can select which of three card decks you want to use, and which game seed you want - the idea is that everyone playing selects the same number and the RANDOMIZE seed ensures that the game board is the same for everyone, without there having to be any link between the Spectrums, such as the Interface 1 network (which I've only ever seen used on Overlords). You can get on-screen instructions as well, which explain the game far better than the Wikipedia entry.
I have used seed 13258 to illustrate the game in the screenshots (so don't use this if you're playing for real). The screen shows that the Blue Team will play first, so the Blue Spymaster should press R to reveal which of the 25 words belong to the Blue Team, which words belong to the Red Team, which are neutral (white), and which is the Assassin (black). The Blue Spymaster will then give a clue word to the rest of the Blue Team which will help them identify their words, not their opponents', and certainly not the Assassin. In this case, if the clue was "WATER, 2", the Blues are looking for two words associated with water - i.e. SPRING and WELL, and there aren't any Red-owned or neutral words that could intervene. "ROUND, 2" is not such a good clue as it identifies Blue-owned PLATE and RING, but also Red-owned PAN. Caution should be taken to avoid both neutral and opposition-owned words, as this ends that team's turn. Identifying the Assassin's word loses the game immediately!
I should point out here that the game is adjudicated entirely by the human players; the Spectrum acts solely as an electronic game board. It keeps the score as Blue and Red words are uncovered, declares the winner when all of one team's words are identified, and ends the game if the Assassin is found. It does not keep track of which team is playing, neither does it generate clues for the Spymaster, which would be far beyond the Spectrum's capability. The game also relies on the honesty of the players not using the reveal key if they are not their team's Spymaster; one quick fix would be to have two versions of the game, one with the reveal key deleted, so that only the Spymaster could ever use it - and if everyone's using emulation, loading either version of the game can be done instantly.
One thing to note is that Andy has gone in hard on the Magenta Challenge with this game. When displaying the instructions, there's a neat use of INPUT AT to clear parts of the screen and leave the title intact, but all over the game, Andy's used his own 42-character print routine which uses streams to direct the characters into the right place and in the right colour. He's going to publish the routine separately with a demonstration program so I need not explain it further; suffice to say that a bizarre-looking line such as PRINT #7; AT 23,39; INK 114; PAPER 255; BRIGHT 11; FLASH 28;"BOB" is perfectly acceptable. There's no OPEN # or CLOSE # to be seen anywhere, because the machine code routine deals with opening the stream, but other than that I commend Andy for bending BASIC to his will in this way!
A .BAS listing is provided, but be warned it won't work on BASin as the machine code will not be present. But you could send the .ASM listing through an assembler, convert the numbers to DATA statements and paste them in...
This is a hard game to judge; necessarily it has to be lower than Zombie Dice as I can't actually play it properly on my own, but I think it's a four-mask score for Attainment, just based on how I can estimate it would work given three other people with Spectrum emulators and Zoom to play with, which is a pipe dream. For effort, though, it'd be four Ricks for the game itself, plus one for the loading screen and two for the Challenge entry, one of which is a bonus for that ingenious 42-character routine. And for the record, I'm writing an entry for next year's competition that will require more than 32 characters per line.
Now, who's up for a Zoom meeting some time?