During development I've been using Cspect and for certain bits like yesterday's Fisher-Yates shuffle, I'll use
% RND to get random numbers.
However, I also want to prevent my game from being repeatable so I use
RANDOMIZE as a standalone call which is supposed randomly seed the random functions:
RANDOMIZE on its own (and RANDOMIZE 0 has the same effect) is different, because it really does randomise RND and % RND
And with any basic understanding of random numbers, they have to be seeded from something in the real world, so time is used:
RANDOMIZE uses the time since the computer was switched on. Since this has gone up by the same amount each time RANDOMIZE is executed, the next % RND does more or less the same. You would get better randomness by replacing GO TO 10 by GO TO 20.
…and of course, when Cspect launches into my code to immediately run it, the time is exactly the same on each start up, so the seed, is also exactly the same! 🤦
I've been avoiding the details of gameplay until I got some of the core basics working - specifically the status of the tombs and when they were open or not.
But now I've got that working, I decided to revisit the game and play it looking at how the mummy's behaviour works.
A few observations that I'll need to add:
- Mummy's can't walk past each other (currently mine can slide under each other)
- The level difficulty applies to the AI in the mummy - current mine are turning entirely random. I suspect if I want to add AI, I'll need to decrease the random effect as difficulty increases
- Mummy's revealed in a tomb follow you to the next level, and if you don't lose a life from a mummy (or kill a mummy using a scroll), the in game mummy number increases quickly, so the game needs to work with 5+ mummy's in play (currently adding mummy's has a direct impact on game speed)
I've also been reviewing how I'll unveil the tombs. Currently I'm throwing on a
LAYER ERASE (which has glitches in Cspect) but this won't fly when I want to draw on the scroll etc. So it's likely I'll create a tile map for these areas at some point soon.