mailto: blog -at- heyrick -dot- eu

Navi: Previous entry Display calendar Next entry
Switch to desktop version

FYI! Last read at 18:52 on 2024/11/21.

Advent 2021 day 14

 

Mamie Fletcher's House 14

Those little extra touches

Psychology is a funny thing. It's those little things that you don't even consciously notice that can make all the difference.
Other extra touches make for a more playable game, and better user experience.

Here's a non-exhaustive list, starting with the really obvious ones that you'll have come across whilst playing the game.

Skills

I suck at playing games. I say that a lot, because I really suck. Therefore, why not have different skill levels? That way, the game can range from "fairly easy to play" to "freakin' hell!".
Of course, there is some built-in sarcasm, should you choose to play the simplest level. I can get by on Normal, and I think I might have mentioned my competence as a gamer!

 

Lives

It is quite unrealistic to have a player character that can 'die' a certain number of times, however mistakes happen. The ledge was there for falling off, you didn't see that ghost, Oh Crap I'm Outta Film, and so on.
While it might be good for hardcore gamers to have the challenge of completing an entire game without "losing a life", it's not at all helpful for the rest of us that play for fun. Therefore, you get three "lives", so there's a certain amount of tolerance for mistakes. Because there's little more annoying than "oops, you're dead, back to the beginning with you".

Speaking of which...

 

Restartable level

If you 'die', you can pick up the game and begin playing from where you left off, with the amount of film that you had from the previous game.
This isn't a proper restart, if you go to complete the game it'll not award you any sort of score because of restarting, however if there's a level that you're stuck on, you can go and play it a number of times as you wish, in order to crack it. You won't be thrown back to level 1 and have to play your way up from the very beginning.

 

Redefinable keys

In the tech world, there's only one question: iOS or Android.

In RISC OS, the question is: Zap or StrongEd (or maybe Ovation or Impression).

Before all of that, the question was Q A O P or Z X @ /.

Yup. The keyboard mapping. Some games only support one. Some games try to support multiple common types (but this falls apart if you're the sort of person that would pick Q W P L).
Better games are configurable, so you can choose which keys you want to use.

It's not actually that difficult. Rather than having code for "is Down pressed?", you just have code for "is Key[Down] pressed?", and allow the key array to be modifiable, so then the user can choose which key represents which action.
Having redifinable keys in Mamie required minor changes to the game code. Most of the work went into creating the user interface to make it happen, and also building up a lookup table with the (UK QWERTY) names of all of the keys so pressing "Enter" would say that, rather than something dumb like 73 (the internal key code for the Enter key).

Sadly, RISC OS does not have any form of API for translating between internal key codes (which are always the same) and what it says on the key (which depends upon the language); so I have had to assume the UK QWERTY layout (as clearly indicated in the game). People using French keyboards, or German, or even American (the '@' is a double quotes) won't see the correct indications in the game. Their chosen keys will still work as the key codes are always the same regardless of how they are otherwise interpreted, but a Frenchie moving left and right with A and Z will see Q and W reported.
I believe this to be an omission in the OS itself (as the OS needs to know how to map keys to characters), so it's something the OS needs to fix, not my code. But I have ranted for more than long enough elsewhere about the horrible mess that is the internationalisation support within RISC OS, so I won't repeat it all here!
Anyway, keys can be redefined. It wasn't hard, but it adds a lot to the flexibility of the game.

 

Joysticks

I, personally, don't much care for joysticks. I can see their utility in removing the complications of a keyboard and slimming it down to just the necessary buttons to poke, however... maybe it's the cheap controller, but I just don't find it as reasonsive or intuitive as using the keyboard.

However, that being said, Mamie is a game. People play games with joysticks. Not having it as a supported option seemed a lot like biting off my nose to spite my face.

The joystick isn't redefinable. There are only two controls other than the four way movement, therefore a lot of the joystick buttons duplicate each other. In this way, it is envisaged that a player can pick whichever combination they feel works for them.

 

And now for a few of those other little touches that can make a difference.

 

More natural walking

As mentioned (on day 5), the little bounce as Lucy walks.
Lucy walking
Lucy walking.

 

Headstones

Did you ever bother to look at it, like properly?

The top, obviously, says "Lucy". Below that, two dates. The lower date is today, and the upper date is about sixteen years, three months, and twelve days ago. Which is how old Lucy is.

Headstone detail
Headstone detail: born 13th August 2005, died 25th November 2021.

 

Samhain!

A little easter egg. On Samhain (or Halloween) for the entirety of the 31st and up until 6am on the following day (for those late night gamers), not only will there be an animated pumpkin design on the sides of the main menu, also all the teapots will turn into pumpkin teapots!
The teapot changes
The teapot changes.

 

Flickering candles

This was really easy to do. There are three candle sprites. The left candle is drawn as "sprite X", the middle is "sprite X+1", the right is "sprite X+2" (this wraps around if necessary). The value of 'X' is decided randomly for each candle set. Which means they will always be slightly different and hence will appear to flicker like a candle would.
Simple candle example
Simple candle example.

 

More use of randomisation

Something that is disappointing (to me) in a game is when everything follows a scripted set of movements. Run up the stairs, this character is always walking to the left. This person is always waiting by the bus stop at this time to give you this object or piece of information. And so on.

I feel that it is much better to introduce elements of randomisation into things to help keep the game interesting.

For this reason, while the ghosts have defined starting positions, whether they begin moving to the left or the right is random.

Likewise, the length of time that a spider sits in its web is random. The pause time can be up to eighty spider-ticks, with a minimum of forty spider-ticks. A spider tick is three frames.
Therefore, spiders will sit on the web for up to ((80 ticks ÷ 50 fps ) × 3 frames) which is a shade under five seconds, with the minimum time being half that. So there's a guaranteed 2.4 seconds in which to pass under a spider once it reaches its web.

And, finally, the key in the teapot. Levels can be defined with multiple teapots which might contain the key. When the level begins, these will be enumerated, and one will be chosen to actually have the key. As this happens when the level starts, each time in it may be a different teapot. So strategy for working through the level can only depend upon getting a key from a specific teapot if there's only one teapot.

Making use of ranomisation, even in a fairly simple game like Mamie, helps to keep things varied and more interesting.

By way of an example of how not to do things, I discovered with the game After Burner on the Sega Master System, that if you push the controller up and left and leave it there, you won't gain many points (you can't shoot much and most missiles will miss), but on the other hand you'll be completely impervious to enemy missiles. They'll just fly past.

After Burner - Sega Master System game
After Burner - Sega Master System game (as played on my phone!)
Plus, of course, like with Space Invaders and the many many clones, the aliens come in defined waves and formations, one following the other. It's almost always the same pattern each time. So those who excel at such games, is it because they have better reflexes at mashing the controller, or do they have better memories so they know what will be where on the screen?

Shaking things up a little helps break the monotony.

 

Tomorrow? Some hints and tips for you.

 

 

Your comments:

VinceH, 15th December 2021, 01:41
A good example of that lack of randomness with Space Invaders. When I was a teenager, my uncle had a two player/seated Space Invaders arcade machine. 
 
Somewhere down the line (though I can't remember *how* we found this out) we discovered how to guarantee getting the maximum 300 points for shooting the UFO, *every time*. 
 
It was down to the number of shots fired at the Invaders. When starting a level, you had to count your shots - and once you'd fired 23, wait for the UFO and shoot that with the 24th. Thereafter, every sixteenth shot had to be at the UFO. 
 
As you might imagine, we used to get very high scores. :) 
 
I don't know if that pattern was unique to his model/version, or others as well - I've never tried it on another. If I ever get the chance, I should. 
 
 
 
 
 
 
 
 
J.G.Harston, 15th December 2021, 03:08
I only got competant at Repton and Jet Set Willy through repeated learning of the game state. Enter room, wait for blob to reach top of cycle, start running, don't stop, will get all the jewels. The skill was being at exactly the right pixel to match the game state.
VinceH, 16th December 2021, 01:06
Of those two, Repton in particular I consider more of a puzzle game, so it makes sense to me for things to work to a defined pattern rather than be random. 
 
Perhaps surprisingly, I never played JSW very much. Platformers, IMO, need a bit of both - if very precise timing is required to get past a certain set of obstacles, randomness ruins it, whereas in many cases if an obstacle is too predictable that also ruins it. So they need a good mix. 
 
 

Add a comment (v0.11) [help?]
Your name:

 
Your email (optional):

 
Validation:
Please type 64528 backwards.

 
Your comment:

 

Navi: Previous entry Display calendar Next entry
Switch to desktop version

Search:

See the rest of HeyRick :-)