Header tag

Friday 2 August 2024

My Life in 10 Computer Games

During lockdown, I participated in the social media trend of posting lists of ten, one a day for ten days:  there was the list of ten albums, and the list of ten computer games.  They were posted at the time without any explanation, but now (a few years later, and now that it's the summer holidays) here is my list of ten computer games that have taken up more hours of my leisure time than they should have done --- or perhaps they're just the ones I like the most:

1.  Snapper



The first computer game we bought (as a family), on our first home computer: the Acorn Electron.  We programmed a number of games but couldn't save them as we had our Electron several weeks before we had a cassette recorder.  Once we had the tape recorder, we could save our programs and - more importantly - load purchased games as well.  Snapper is a straight rip-off of Pacman, with a few cosmetic changes, and we spent far too many hours on it.  

2. Around the World in Forty Screens (Repton 3)

 



In the 1980s and 90s, Repton was not widely known outside Electron and BBC Micro owners, which suprised me because for those platforms it was a seminal series.  I didn't play Repton or Repton 2 until years after they were released, but Repton 3 and the various spin-offs were high on our playlist, and in our house, that meant Around the World in Forty Screens.  Repton 3 is a 2D scrolling maze game, where you have to collect diamonds, kill monsters and avoid getting trapped or hit by falling rocks. 



The main aspect of Repton 3, though, was the ability to edit the characters and the maps.  You could load up the existing levels and change them, or adapt the default sprites and devise your own maps.  And we spent weeks and weeks and weeks doing this: we had Repton in Space.  This was in the era before discs and before mice, so every character or level, or both, had to be edited with the cursor keys and the space bar, and then saved to cassette.  Then you had to restart the system, load the game, load your new levels, and playtest them.  No wonder it took us weeks - but creating the levels was almost as addictive as playing the existing ones, and that's why Repton is in this list.

3. F-29 Retaliator


Eventually, we moved from the Acorn Electron to a PC.  Our first PC was a 286 with 640KB RAM, and we set about upgrading it - and the first thing was the monitor.  A colour monitor and a 1.44MB disc drive opened up enormous possibilities, including the option to play two or three different games in an hour (no more tape cassettes).  I've listed F-29 Retaliator here as it was the first game we played head-to-head:  with a serial cable, it was possible to connect two PCs to each other and play against another human being on another PC (in an adjoining room).  This was earth-shattering at the time, and that's why F-29 is on this list - my brother and I used to demonstrate this tech to any visitors, friends or family who came to watch.  And it was our first decent flight sim.

4. Command and Conquer


I received this for Christmas 1995 (my choice) in the big-box version shortly after it released and it too expanded my game-playing horizons.  I had been playing Dune 2 (its precursor) for months beforehand, and had read about the new Command and Conquer in magazines - I bought it without trying a demo. Full motion video.  A campaign that made sense.  Good in-game visuals and sound effects (especially the sound effects and voice effects).  And the ability to play head-to-head against my brother (who was Nod, and was always better than me).  It defined the genre, and I was there at the start (although I never finished either campaign).  I bought all the follow-ups, including the First Decade, and finished C&C3 (as GDI), but I still enjoy the original.


5.  Worms

This is straightforward comedy - playing computer games for fun.  After F-29 and Command and Conquer, Worms took us back to sharing a computer and taking it in turns to play, but what a crazy game.  My abiding memory of my 19th birthday is playing Worms with my parents and brother in my university room.  And then, several years later, introducing it to my kids, who love playing it with me (including the time that one of my sons deliberately took my turn and walked one of my worms straight into the sea!).  Light-hearted and crazy fun - as gaming should be.  And for me, the sequels became too complicated - the original was the best.

6.  Dark Reign: The Future of War




Command and Conquer spawned a whole range of copies and clones, and defined the Real-Time Strategy (RTS) genre.  Some were reasonable, some were clunky, and some - like Dark Reign - were actually very good.  This one had a unique (at the time) approach to the fog of war, and had a wider range of units than most games.  The graphics were a step-change higher than the original C&C, and the animation was also much smoother.  I only ever played it single-player, but it did have a long-standing online community.  

7.  Wii Sports

This is where the chronological ordering breaks down, but in around 2008 we (as a young married couple) invested in a Wii.  I'm not sure why, but we did, and we had a lot of fun with it.  You might call it a team-building exercise, or you could just call it entertainment.  We specialised in Wii Sports, and were particularly good at doubles tennis.  Nowadays, it's bowling against my two sons, and two-against-one (them against me) at doubles tennis.  They also enjoy the sword-fighting in Wii Sports Resort, but that's a whole separate game!

8. Lego Star Wars PC (2006)

Not to be confused with the various spin-offs and sequels, this was (again) the original Star Wars Lego game for PC, and I played it on PC first.  Before it was playable on any of the other platforms with their optmized-for-gaming controllers.  Yes, I've played those versions, and they are just as funny - and as always, better played with two or more people.  I never completed it (it's a long-standing trend, by the looks of it) because I got stuck with a puzzle with R2D2 who wouldn't stand where he was supposed to.  This was before YouTube really took off, and it occurred to me to watch videos of how to win the game - and the written instructions in the walkthroughs said, "Solve the problem with R2."  Yes?  How?  With the Force?  Fun, but frustrating - and then a decade later, my son solved the same game on PS3.

  

9.  Lego Jurassic World PS3

I'm probably breaking my own rules here, because I've not played this game - but it has had an impact on my life (courtesy of my son, who spent most of Christmas Day 2017 playing this on our lounge TV).  He was heavily into Jurassic World and Lego, and this was the perfect intersection.  He had the sense and initiative to consult online support when he got stuck, and he finished the game by the end of the Christmas holidays.  He then went on to work his way through the Lego Star Wars games as well.  The games are well-designed, have cute graphics and clever stories, and have lasting appeal as you try to get all the points, all the bonuses and all the characters.

I think he let me play it once! :-)


10.  Zenon  (Acorn Electron cassette)

I'm not sure how I missed this one out on my first run through, because I think this is the first co-operative game we (my brother and I) played as kids.  Zenon was a sideways-scrolling shoot-'em-up game, where you had to run to the end of each level, destroying as many aliens as possible along the way - without getting hit by them.  It was all standard arcade action, but with the (then) added twist that two players could play co-operatively at the same time.


It made my Christmas list in the late 1980s or early 1990s, and had the advantage of being only half the price of a 'normal' computer game at the time - Impact Software were onto a good thing.  The review of the game mentioned the two-player option, and that's what swung the decision for me.

Gameplay was simple and straightforward; each player lost a life if they lost all their health through collisions with the aliens or taking blaster fire from them.  There was a wide variety of power-ups to collect, including health and weapons, and if both players got the best weapon (the red laser) then they could do considerable damage to the aliens very quickly.

Now:  we completed this game.  There were around 200 levels (I can't recall), and my brother sat down early one morning, loaded the game (via cassette) and blasted our way through all of them.  We even saw the 'Congratulations screen'. But - to my frustration to this day - it came with a 'press any key to continue' so we saw the message, but because the level ended and the message showed so abruptly, we were both still pressing our gaming keys - run, jump, fire, whatever, so the message appeared for a second and then we were returned to the main menu - Level One.  Come on, game designers, do better!

Anyway, we stopped playing after that.  It's a shame really, because it was one of the best games on the Electron at the time - the graphics were above average but the gameplay set it apart (in two player).  Yes it was difficult, yes there was a high element of randomness in the game and no, there weren't any patterns - it was just run and gun.



And that's my list of 'my life in ten computer games', covering the mid 1980s to the late 2010s.  I haven't included Star Wars Galactic Battlegrounds; Star Wars Battlefront 1 and 2, or Fortnite.  Maybe another time...









Wednesday 10 July 2024

How not to Segment Test Data

 Segmenting Test Data Intelligently

Sometimes, a simple 'did it win?' will provide your testing stakeholders with the answer they need. Yes, conversion was up by 5% and we sold more products than usual, so the test recipe was clearly the winner.  However, I have noticed that this simple summary is rarely enough to draw a test analysis to a close.  There are questions about 'did more people click on the new feature?' and 'did we see better performance from people who saw the new banner?'.  There are questions about pathing ('why did more people go to the search bar instead of going to checkout?') and there are questions about these users.  Then we can also provide all the in-built data segments from the testing tool itself.  Whichever tool you use, I am confident it will have new vs return users; users by geographic region; users by traffic source; by landing page; by search term... any way of segmenting your normal website traffic data can be unleashed onto your test data and fill up those slides with pie charts and tables.

After all, segmentation is key, right?  All those out-of-the-box segments are there in the tool because they're useful and can provide insight.

Well, I would argue that while they can provide more analysis, I'm not sure about more insights (as I wrote several years ago).  And I strongly suspect that the out-of-the-box segments are there because they were easy to define and apply back when website analytics was new.  Nowadays, they're there because they've always been there,  and because managers who were there at the dawn of the World Wide Web have come to know and love them (even if they're useless.  The metrics, not the managers).

Does it really help to know that users who came to your site from Bing performed better in Recipe B versus Recipe A?  Well, it might - if the traffic profile during the test run was typical for your site.  If it is, then go ahead and target Recipe B for users who came from Bing.  And please ask your data why the traffic from Bing so clearly preferred Recipe B (don't just leave it at that).

Visitors from Bing performed better in Recipe B?  So what?

Is it useful to know that return users performed better in Recipe C compared to Recipe A?

Not if most of your users make a purchase on their first visit:  they browse the comparison sites, the expert review sites and they even look on eBay, and then they come to your site and buy on their first visit.  So what if Recipe C was better for return users?  Most of your users purchase on their first visit, and what you're seeing is a long-tail effect with a law of diminishing returns.  And don't let the argument that 'All new users become return users eventually' sway you.  Some new users just don't come back - they give up and don't try again.  In a competitive marketplace where speed, efficiency and ease-of-use are now basic requirements instead of luxuries, if your site doesn't work on the first visit, then very few users will come back - they'll find somewhere easier instead.  

And, and, and:  if return users perform better, then why?  Is it because they've had to adjust to your new and unwieldy design?  Did they give up on their first visit, but decide to persevere with it and come back for more punishment because the offer was better and worth the extra effort?  This is hardly a compelling argument for implementing Recipe C.  (Alternatively, if you operate a subscription model, and your whole website is designed and built for regular return visitors, you might be on to something).  It depends on the size of the segments.  If a tiny fraction of your traffic performed better, then that's not really helpful.  If a large section of your traffic - a consistent, steady source of traffic - performed better, then that's worth looking at.

So - how do we segment the data intelligently?

It comes back to those questions that our stakeholders ask us: "How many people clicked?" and "What happened to the people who clicked, and those who didn't?"  These are the questions that are rarely answered with out-of-the-box segments.  "Show me what happened to the people who clicked and those who didn't" leads to answers like, "We should make this feature more visible because people who clicked it converted at a 5% higher rate." You might get the answer that, "This feature gained a very high click rate, but made no impact [or had a negative effect] on conversion." This isn't a feature: it's a distraction, or worse, a roadblock.

The best result is, "People who clicked on this feature spent 10% more than those who didn't."

And - this is more challenging but also more insightful - what about people who SAW the new feature, but didn't click?  We get so hung up on measuring clicks (because clicks are the currency of online commerce) that we forget that people don't read with their mouse button.  Just because somebody didn't click on the message doesn't mean they didn't see it: they saw it and thought, "Not interesting," "not relevant" or "Okay, that's good to know but I don't need to learn more".  The message that says, "10% off with coupon code SAVETEN - Click here for more" doesn't NEED to be clicked.  And ask yourself "Why?" - why are they clicking, why aren't they?  Does your message convey sufficient information without further clicking, or is it just a headline that introduces further important content.  People will rarely click Terms and Conditions links, after all, but they will have seen the link.

We forget that people don't read with their mouse button.

So we're going to need to have a better understanding of impressions (views) - and not just at a page level, but at an element level.  Yes, we all love to have our messages, features and widgets at the top of the page, in what my high school Maths teacher called "Flashing Red Ink".  However, we also have to understand that it may have to be below the fold, and there, we will need to get a better measure of how many people actually scrolled far enough to see the message - and then determine performance for those people.  Fortunately, there's an abundance of tools that do this; unfortunately, we may have to do some extra work to get our numerators and denominators to align.  Clicks may be currency, but they don't pay the bills.

So:  segmentation - yes.  Lazy segmentation - no.


Friday 5 July 2024

What is the shortest distance from a point to a line? A spreadsheet solution

Once or twice a year, if I'm lucky, the Red Arrows will fly near my house.  They'll be flying en route to or from an airshow, or heading back to their home airbase.  I check their flightpaths on various websites (Military Airshows is my favourite, since it provides maps of the flightpaths) and then see if they'll be anywhere near me.  

Then comes the question - where's the best place to go and see them fly over?  Ignoring the lie of the land (I live near the top of a hill, with valleys and hills on almost all sides), where is the point that is the shortest distance from my house?



And, being a maths student, I generalised:  what's the shortest distance between a point and a line?

To start with, we need to understand that the shortest distance from a point and a line is the length of the perpendicular drawn from the point to the line.  In the diagrams below, A represents the point (my house), and the flight path goes from B to C.  D is the point at which the line is closest to point A.  The angle is 90 degrees, and a circle centred on A would form a tangent to the line BC at point D.






Fortunately, the waypoints for the Red Arrows flights are given as longitudes and latitudes, and I know the same for my own home.  But let's simplify to x and y co-ordinates.  We can transfer the flightpath to a straight line of the form y=mx+c, and start with some simple numbers.  For example, let's take point B above as the point (0,1) and the point C as (4,3).  Point A (my house) is (1,3).  Point D is not necessarily the midpoint of B and C.

We know (and this is maths I'm going to use without proving) that if the line BC has the slope m (in the form y = mx+c), then the slope of the line AD is -1/m because the lines are perpendicular.

The strategy breaks down into four separate sections:

1. Determine the equation of the line BC in the form y= mx + c by first determining m and then c.
2. Determine the equation of the line AD, also in the form y = mx + c.  We will know m for this line, and can use this and the values of x,y for A to determine c.
3.  Equate the expressions for y in 1. and 2. as simultaneous equations, to get the x,y values for point D.
4.  Use Pythagoras to determine the distance AD.


1.  Determine the equation for the line BC.

y = mx + c where m = (y2 - y1)/(x2 - x1).

In our example, m = (3-1)/(4-0) = 2/4 = 0.5
Substituting this value into the coordinates for point B will give us the value of c.  B = (0,1) so if y=-0.5x + c then c = y - 2x = 1 - 0 = 1.

So the line has the formula y = 0.5 x + 1.

2. Determine the equation for the line AD.

Since AD is perpendicular to BC, we know m = -1/0.5 = -2.

We have point A on this line, so we know we have (1,3)
y = mx + c
3 = (-2 * 1) + c
5 = c

And hence the formula for the 'radius' from A to D is y = -2x + 5

3.  Equate the two lines, and solve the simultaneous equation to find the nearest point

The lines are:
y = 0.5x + 1 (the flightpath)
y = -2x + 5 (the path from my house to the flightpath's nearest point)

0.5x + 1 = -2x + 5
2.5x = 4
x = 1.6

And by substitution, y = 0.5x  + 1  so y = 1.8

So the nearest point to the line, point D, is (1.6, 1.8)

4.  Use Pythagoras to determine the straight-line distance from A to D

A = (1,3)
D = (1.6,1.8)

Distance = SQRT((1.6-1)2 + (1.8-3)2)
Distance = 1.34

And next, to replicate this in a spreadsheet.  All that this requires is to translate our step-by-step thinking into spreadsheet formulae:


The key steps here are in finding the slope of BC, and then using the reciprocal to find the slope of AD.  The two constants, c, are found by substitution (i.e. rearrange y = mx + c with known y, m and x to determine c).
Then, for clarity, spell out the formulae of the two lines, and use the values of m and c to determine the co-ordinates of point D - first x, then y.

Then use Pythagoras to determine the distance from A to D.

No, it's not entirely efficient, or tidy, but a spreadsheet like this shows the entire process from end to end (and makes you think about how you actually do geometry and algebra, instead of just punching in numbers).




Friday 17 May 2024

Multi-Armed Bandit Testing

 I have worked in A/B testing for over 12 years.  I ran my first A/B test on my own website (long since deleted and now only in pieces on a local hard-drive) about 14 years ago.  However, it has taken me this long to actually look into other ways of running online A/B tests apart from the equal 50-50 split that we all know and love.

My recent research led me to discover multi-armed bandit testing, which sounds amazing, confusing and possibly risky (don't bandits wear black eye-masks and operate outside the law??). 


The term multi-armed bandit comes from a mathematical problem, which can be phrased like this:

A gambler must choose between multiple slot machines, or "one-armed bandits", each which has a different, unknown, likelihood of winning. The aim is to find the best or most profitable outcome by a series of choices. At the beginning of the experiment, when odds and payouts are unknown, the gambler must try each one-armed bandit to measure their payout rate, and then find a strategy to maximize winnings.  


Over time, this will mean putting more money into the machine(s) which provide the best return.

Hence, the multiple one-armed bandits make this the “multi-armed bandit problem,” from which we derive multi-armed bandit testing.

The solution - to put more money into the machine which returns the best prizes most often - translates to online testing:, the testing platform dynamically changes the allocation of new test visitors to the recipes which are showing the best performance so far.  Normally, traffic is allocated randomly between the recipes, but with multi-armed bandit testing traffic is skewed towards the winning recipe(s).  Instead of the normal 50-50 split (or 25-25-25-25, or whichever), the traffic splits on a daily (or by visit) day.  

We see two phases of traffic distribution while the test is running:  initially, we have the 'exploration' phase, where the platform tests and learns, measuring which recipe(s) are providing the best performance (insert your KPI here).  After a potential winner becomes apparent, the percentage of traffic to that recipe starts to increase, while the losers see less and less traffic.  Eventually, the winner will see the vast majority of traffic - although the platform will continue to send a very small proportion of traffic to the losers, to continue to validate its measurements, and this is the 'exploitation' phase.

The graph for the traffic distribution over time may look something like this:


...where Recipe B is the winner.

So, why do a multi-armed bandit test instead of a normal A/B test?

If you need to test, learn and implement in a short period of time, then multi-armed may be the way forwards.  For example, if marketing want to know which of two or three banners should accompany the current sales campaign (back to school; Labour Day; holiday weekend), you aren't going to have time to run the test, analyze the results and push the winner.  The campaign ended while you were tinkering with your spreadsheets.  With multi-armed bandit, the platform identifies the best recipes while the test is running, and implements it while the campaign is still active.  When the campaign has ended, you will have maximized your sales performance by showing the winner while the campaign was active.







Tuesday 14 May 2024

TV Review: Doctor Who The Space Babies and The Devil's Chord

Doctor Who needs no real introduction. My first memories of Doctor Who were posters of The Master during the early 1980s, and seeing episodes with the Psychic Circus during the mid 80s. It was deemed to scary for me to watch, and I wasn't ready to understand it either.

The Christopher Ecclestone series started the week before I got married. I watched it with great interest and thoroughly enjoyed it. I also enjoyed David Tennant's Doctor, and although I saw less as time went on, still saw some of Peter Capaldi's episodes.

I also watched Jodie Whittaker's Doctor, but it didn't really work for me. The first few episodes were so different from the Doctor Who I had seen before. With dramatic changes such as a female Doctor and new companions, it would have been helpful (if not essential) to have carried over more of the core components of Doctor Who into this series: things like the Tardis, the sonic screwdriver, familiar monsters or villains, or supporting characters (such as UNIT).  However, these were absent from many of the episodes, especially the first few, and it felt far more like watching a new TV series instead of a continuation of an existing story. Subsequently, I gave up and only watched the last few Jodie Whitaker episodes, which interestingly featured many of the major monsters and villains from classic Doctor Who.

So, what did I expect from the latest regeneration of the Doctor? The return of Russel T Davies to the helm meant I was optimistic, especially after he conclusion of the Jodie Whitaker series. I didn't like the Christmas special, which was a strange musical, but I very much enjoyed the first episode of New New Who, Space Babies. It was cute, it was snotty, full of bodily functions and toilet humour, and a scary monster that is saved at the end.  This is definitely Dr Who, not just a generic sci fi episode, and it's good.


The second episode stands in stark contrast to the first, as a real psychological thriller. The androgynous Maestro is stealing music from the whole world, starting with London in the 1960s. The villain in this episode is not only stealing music but is a serial killer too. And the Doctor? Hero of countless Dalek battles, winner of the Time Wars?  He is, as Ruby points out, a coward. What's going on?  Yes, he's camp, OK, but a coward? This is new, and will need some explaining.

I like the cause and effect thread running through these stories: if you do tread on a butterfly in this universe, you do change history. If you let the Maestro steal all the music in the 1960s, then the 2020s look very different. We've jumped from Doctor Who's parallel worlds (Father's Day, etc.) to Star Trek or Back to the Future, where it's one timeline with consequences for stepping on butterflies, and you'd better be more careful, Doctor.  


The Maestro is the Toymaker's child - there's some motivation for you - and is truly scary, and clearly powerful and motivated.  For most of the story, the episode narrowly manages to avoid becoming a musical, and a disaster, and genuinely piqued my interest.  That was, however, until the musical number at the end.  I suppose it was as inevitable as the defeat of the Maestro (who I was hoping was the latest regeneration of The Master, but never mind).  Even my daughter, who has seen a handful of Dr Who episodes, said, "What on Earth is that?" as the musical number played towards the end of the episode.  Not obviously Doctor Who, is the answer to that one.

So, two good episodes that could have been better with a few minor tweaks.  I am a little irked by the introduction of all the musicality - first in the Christmas special, and now in a regular episode.  I do like music, but I don't watch Doctor Who for it - and it takes up so much unwarranted time in the episode that it almost looks like padding or filler.

Allons-y!



Monday 1 April 2024

Generative AI proves the Collatz Conjecture

 It was proudly reported earlier today that mathematics' most famous and challenging problem has been solved.  A team from the UK's University of Cambridge, using a combination of classical maths and Generative Artificial Intelligence (Gen AI) have demonstrated that the Collatz Conjecture (also known as the 3n+1 problem) has been proved once and for all, using a new dynamic algorithm, similar to the type used by the Chess-playing program, Alpha Zero.

The problem is easy to state, but has confounded mathematicians for almost 100 years:  take any number, and if it's odd, then multiply by three and add one.  If it's even, divide by two.  Take this number, and repeat the operation:  if odd, then multiply by three and add one; if even, divide by two.  Continue to repeat this operation, and eventually, you reach 1.  (1 *3) +1 = 4, 4 /2 = 2, 2/2 = 1.

Mathematically:

The question, which has previously remained unanswered, is: does this apply to ALL numbers?

The team from Cambridge's Department for Applied Mathematics and Theoretical Physics worked on devising an algorithm that was able to overcome the Collatz Conjecture's key challenges.  Instead of trying to unpick the chaotic nature of the Conjecture's sequence, they embraced this using their dynamic Gen AI model.  Previously, the challenge of the Collatz Conjecture lay in its number sequence, which can grow to immense sizes swiftly, only to diminish just as quickly.  However, when they programmed their AI algorithm to map every integer in a variable 1-4 dimensional space, and plot each term in all sequences in a four-dimensional matrix, they uncovered a spherical symmetry that they had not expected.  As all real numbers are contained within this four-dimensional hypersphere, the team were able to prove the Collatz Conjecture for all real positive integers.

A 3-D visualization of the 4-D Collatz Conjecture solution
University of Cambridge

As the conjecture’s proof is tied to other mathematical domains, such as number theory and dynamical systems, it is expected that proving it will have far-reaching consequences in these areas, necessitating a profound review of these disciplines.  



A second visualisation of the 4-D Collatz Conjecture solution showing a different 'shadow'
 
University of Cambridge

The team have not yet shared full details of how the proof works, but they explained that they mapped all known sequences into the 1-4 dimensional space, and the AI algorithm then arranged them in a way that would maximise their spatial symmetry.  The next step was then to map all the odd, so-called 'April' numbers and connect them to the even numbers.  By demonstrating that any odd number would always eventually path to another point on or within the same hypersphere, they were able to prove that all numbers eventually path to 1.  The algorithm was able to plot 'shadows' of this in 3D, and the visualizations have been as beautiful as they have symmetrical.  


A close up of a 3-D shadow of the 4-D solution, showing the connections between the real integers in Collatz sequences
University of Cambridge

The team plan to publish full details of their findings and proof in an upcoming issue of the Journal of the European Mathematical Society, following a thorough peer review.  I will provide more updates as I find them; I have my own series of articles here on this blog on the Collatz Conjecture, and the variations  5n+1, 3n+3 (which is wild) and 3n+5 (which grows very rapidly).

Tuesday 19 March 2024

Rollarama World Football Dice Game

Rollarama World Football is a "shootout dice and card game", and so when I saw it on the shelf of a charity shop recently, I decided to give it a try.




The game comes with full instructions on how to play it "properly", but I just liked the idea and the packaging which clearly showed a six-sided die, a 12-sided die and a 20-sided die.

The dice values aren't 1-6, 1-12 and 1-20; instead the values are the number of goals a particular team scores in a game.  Each country (there are 30 in total) has a card which shows if it's assigned the 6, 12 or 20 sided die and you roll that die for that country when it plays a match.  For example, Canada is a D6 team, while Portugal is a D20 team and Mexico is a D12 team.  There are rules included on how to play this as a two-player game, using the dice and the cards, but I found a more interesting game for one player using the same raw materials.

The questions I was most interested in answering are how fair the game is, and if the game could be won by one of the 'weaker' D6 teams.  To do this, I set up my own World Football championship, the 2023-4 Winter World Cup.  This comprises five groups of six countries (the 30 countries in total) who will play in their own mini-league.  The top team from each group goes forward, along with the top three performing runners-up, to give eight teams. These eight will play in quarter-finals, then semi-finals and a final.  The draw for the knockout stages will be entirely random, I'm not seeding any team.

Here's the starting roster and the groups, all drawn randomly from the deck of 30 cards.  As you can see, Brazil got a very good draw as the only D20 country in a group of D6s, while Group A has no D20s.

Group A:
D12: Serbia, Denmark, Mexico
D6: Saudi [Arabia],  USA, Cameroon, 

Group B:
D12: Croatia, Switzerland
D20:  Spain, England, Germany, France

Group C:
D6: Tunisia
D12:  S Korea, Senegal, Japan
D20:  Netherlands, Uruguay

Group D:
D6:  Scotland, Ghana, Canada, Wales, Morocco
D20:  Brazil

Group E:
D6:  Ecuador
D12: Iran, Poland
D20: Portugal, Argentina, Belgium

Each team in the group plays the other teams once, so in a league of six, there are 15 games altogether.  There are three points for a win, one for a draw and none for a loss.  In the event of a tie on points, then goal difference will be taken into account.

Here are the results:

GROUP A

Serbia

1

USA

3

Cameroon

2

Denmark

2

Mexico

2

Saudi

1

Serbia

3

Cameroon

2

USA

3

Mexico

1

Denmark

2

Saudi

1

Serbia

4

Denmark

3

USA

1

Saudi

0

Mexico

3

Cameroon

1

Serbia

4

Mexico

1

USA

1

Denmark

3

Saudi

0

Cameroon

3

Serbia

1

Saudi

1

Cameroon

3

USA

0

Denmark

2

Mexico

4


GROUP B

Spain

3

Croatia

1

Switzerland

3

England

3

Germany

1

France

3

Spain

5

Switzerland

2

Croatia

4

Germany

0

England

5

France

2

Spain

3

England

2

Croatia

0

France

2

Switzerland

4

Germany

3

Spain

1

Germany

1

Croatia

2

England

5

France

5

Switzerland

3

Spain

3

France

5

Croatia

2

Switzerland

1

England

5

Germany

0


GROUP C

South Korea

2

Senegal

3

Japan

4

Netherlands

2

Uruguay

4

Tunisia

3

South Korea

2

Japan

1

Senegal

4

Uruguay

1

Tunisia

0

Netherlands

5

South Korea

1

Netherlands

4

Japan

3

Uruguay

0

Senegal

1

Tunisia

2

South Korea

2

Uruguay

3

Japan

1

Tunisia

0

Netherlands

0

Senegal

2

South Korea

2

Tunisia

3

Senegal

4

Japan

0

Uruguay

2

Netherlands

4

 GROUP D

Brazil

0

Scotland

3

Morocco

2

Canada

2

Wales

1

Ghana

2

Brazil

1

Morocco

0

Scotland

2

Wales

2

Canada

0

Ghana

0

Brazil

2

Canada

2

Scotland

3

Ghana

3

Wales

0

Morocco

2

Brazil

0

Wales

1

Scotland

2

Canada

3

Ghana

2

Morocco

1

Brazil

0

Ghana

0

Scotland

0

Morocco

2

Wales

0

Canada

2

GROUP E

Iran

3

Portugal

3

Argentina

2

Belgium

5

Ecuador

1

Poland

4

Iran

3

Argentina

5

Portugal

3

Ecuador

1

Belgium

2

Poland

3

Iran

4

Belgium

2

Portugal

4

Poland

1

Ecuador

2

Argentina

1

Iran

3

Ecuador

0

Portugal

4

Belgium

3

Poland

2

Argentina

2

Iran

1

Poland

4

Portugal

5

Argentina

2

Ecuador

0

Belgium

3

Final tables (this game is a statistician's or an analyst's dream!)

GROUP A

Team

P

W

D

L

F

A

GD

Pts

Serbia

5

3

1

1

13

10

3

10

Mexico

5

3

0

2

11

11

0

9

USA

5

3

0

2

8

8

0

9

Cameroon

5

2

1

2

11

8

3

7

Denmark

5

2

1

2

12

12

0

7

Saudi

5

0

1

4

3

9

-6

1


GROUP B

Team

P

W

D

L

F

A

GD

Pts

France

5

4

0

1

17

12

5

12

England

5

3

1

1

20

10

10

10

Spain

5

3

1

1

15

11

4

10

Croatia

5

2

0

3

9

11

-2

6

Switzerland

5

1

1

3

13

18

-5

4

Germany

5

0

1

4

5

17

-12

1


GROUP C

Team

P

W

D

L

F

A

GD

Pts

Senegal

5

4

0

1

14

5

9

12

Netherlands

5

3

0

2

15

9

6

9

Japan

5

3

0

2

9

8

1

9

Tunisia

5

2

0

3

8

13

-5

6

Uruguay

5

2

0

3

10

16

-6

6

South Korea

5

1

0

4

9

14

-5

3


GROUP D

Team

P

W

D

L

F

A

GD

Pts

Canada

5

2

3

0

9

6

3

9

Ghana

5

2

3

0

7

5

2

9

Morocco

5

2

1

2

7

5

2

7

Scotland

5

1

2

2

10

10

0

5

Brazil

5

1

2

2

3

6

-3

5

Wales

5

1

1

3

4

8

-4

4


GROUP E

Team

P

W

D

L

F

A

GD

Pts

Portugal

5

4

1

0

19

10

9

13

Poland

5

3

1

1

14

10

4

10

Iran

5

2

1

2

14

14

0

7

Belgium

5

2

0

3

15

13

2

6

Argentina

5

1

1

3

12

17

-5

4

Ecuador

5

1

0

4

4

14

-10

3



Notes:

Serbia and Mexico were first and second in Group A, as would be expected as D12s.

Group B was won by France, and there were no major upsets.

Senegal won Group C, ahead of the two D20 teams Uruguay and Netherlands.  Senegal won four of their five games, including a 4-1 win over Uruguay and a 2-0 win against the Netherlands.

In a significant shock, Brazil game fifth in Group D.  As a D20 country playing D6s, Brazil were expected to come first, but only won one of their games.  It was very tight among the other teams, as they were all D6 teams and therefore had a high probability of drawing each other.  Six of the 15 games were drawn.

Portugal topped Group E easily, winning four of their five games and remaining unbeaten throughout.  Ecuador, the only D6 team in the group, came last, winning only one game.

The group winners were:
Serbia (D12), France (D20), Sengal (D6), Canada (D6) and Portugal (D20).

The best-performing runners-up were Mexico (A), England (B) and Netherlands (D).

The Quarter Finals, drawn from the eight qualifying teams:

Serbia vs Netherlands
France vs Senegal
Canada vs Portugal
Mexico vs Ghana

Serbia       2     Netherlands     2 (Netherlands 5-2 on penalties)
France       2    Senegal              1
Canada     1    Portugal             2
Mexico     1     Ghana                1 (Mexico 11-10 on penalties)

The Semi Finals, drawn from the four winners

Netherlands vs France
Portugal vs Mexico (who have done surprisingly well)

Netherlands 4 - France 5
Portugal 4 - Mexico 4 (Portugal win 3-2 on penalties)

The Final was unsurprisingly between two D20 teams, France and Portugal.

France 2 - Portugal 1


The dice:

Although I've described the teams as D6, D12 and D20, the dice aren't normal dice with values 1-6, 1-12 or 1-20.  Most football matches don't end with scores like Liverpool 18 - Man Utd 11.  The dice have duplicated numbers - here are the values for their sides:

D6:  0, 1, 1, 2, 2, 3 --> mean = 1.5
D12: 0, 1, 1, 1, 2, 2, 2, 3, 3, 4 --> mean = 1.58 (19/12)
D20: 0, 0, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5 --> mean = 2.7 (54/20)

In conclusion - this is a great game.  I didn't play it according to the instructions, but took the raw materials from the game and made it my own - and thoroughly enjoyed it.  I didn't analyse all the maths (what's the probability of a D6 team drawing against a D12 team? Or winning?) but rolled the dice, recorded the scores, and built and Excel spreadsheet to solve the league maths for me!  Was it fair?  Yes - the D6 teams have a chance of winning (and the multiple upsets during the championship show this) and the D20s have a chance of being knocked out (Brazil in a league of D6 teams).  The values on the dice make sure that every team has a chance of winning, even if it's slim.

In a future post, I'll play a cricket-by-dice game, and compare the results!