alan-mj-lin / Mafia

mafia
1 stars 0 forks source link

ideas for more engagement/playability #25

Open hchiam opened 4 years ago

hchiam commented 4 years ago

To really give more hints as to peoples' identities during the day/night, beyond reaction times and the sound of your voice over skype/webex/etc. I thought of 4 different options:

1) Animations? We could animate (shake?) the card of the imposter/detective/nurse, but also randomly animate a few of the other cards at the same time.

2) Name hints? Instead of an animation, we could have hints as to the username of the current person's turn. Again, this would have to be carefully done to not give it away. Maybe just only show a letter that is present in the imposter's username but has to also be present in others' usernames? Maybe this is too silly and feels more like hangman/scribblio.

3) Audio hints? We could use binaural audio and randomly assign each player a "2D note", which plays when they make an action (imposter/detective/nurse, but also each townsperson when they vote). What do I mean by binaural audio? It's when you have headphones, and the output makes it like sound the sound is coming from closer to the left/right of you (some YouTube videos do this). What do I mean by "2D note"? For people who don't have headphones, we can instead play a specific note/volume to simulate that same idea. I've played with binaural audio and "2d notes", so I know it works on the web: https://github.com/hchiam/_2dnote

4) Spatial hints? Or we could anonymously show where everyone's mouse positions are with dots. This would be showing during the night and during the day. It'd be especially interesting during the night, since you can imagine people trying to fake each other out as to who they're clicking on. Implementation thoughts: We might have to undo the one-liner CSS that puts the user's card at the top. And to keep it simple and to avoid overload, we could poll every 2 seconds, which would add to the mystery anyways. Maybe add random movements to the cursors, so it's not obvious who's keeping their mouse still. Or just not show the cursors every 2 seconds. Or add a fake/NPC cursor that moves around randomly during imposter/detective/nurse turns. If we want to be fancy, the next step would be to randomly assign colours to each player's cursor.

alan-mj-lin commented 4 years ago

I like 1, 3, and 4. I don't like 2 because I feel like that will be too obvious and will make it so that people choose their display names more carefully which is not a behaviour that I want to encourage. For all the other options, I like them, but I don't know how obvious they will be. I think some testing and demonstration is required for what you have in mind.

alan-mj-lin commented 4 years ago

so another thing I have a concern with for 4 is will the doctor be able to use the spatial clues to know who to save every round? That should not happen.

hchiam commented 4 years ago

I plan to make some drawings of 1/3/4 before I commit to making any working demos.

For 4: it's not really a concern, because the impostor knows that the doctor is watching, so they'll try to fake them out when moving their cursor around. We could force everyone's cursors to move if they're still. Or just make the refresh rate low enough that you don't see continuous motion (like you're blinking). Or maybe it's fine already, since the impostor can try to put their cursor to overlap with other people's cursors to trick people.

alan-mj-lin commented 4 years ago

ok yeah good idea, i'm looking forward to this hahaha

hchiam commented 4 years ago

Ideas 1, 3, and 4: (not 2) rough-ideas-134-sketch

hchiam commented 4 years ago

For idea 3, you can read more about 2D notes and binaural audio here: https://github.com/hchiam/_2DNote (also has code examples, etc)

alan-mj-lin commented 4 years ago

So for 1) do you think that maybe if I was an important role (mafia, detective, doctor) the person I pick will be a little more obvious to everyone? In your drawing it seems that 3 cards are animated at the same time. So then as a a civilian I can then deduce that whoever you picked is one of the 3 that shook. So for each important role, I've now narrowed down who you've picked, thus giving me more information on who you actually are? As doctor I could have a 1/3 chance of picking the right person to save. I have that concern.

For 3) and 4) I think I have to experience it to give further comment.

hchiam commented 4 years ago

For 1) we could increase the ratio. Maybe more than half or 2/3 of the players. The intent was to make it a little easier than what could feel like very random guessing. Also, 1) is easier to implement than 3) and 4), but it's not as interesting as the other options.

Options 3) and 4) will require BE work to generate either random 2d positions or collect/send cursor positions.

I'll work on interactive demos for 3) and 4), but for now you can play with this: https://codepen.io/hchiam/full/eYYdVeX

hchiam commented 4 years ago

@alan-mj-lin here are some interactive demos:

For 3): audio hints:

3 A: https://codepen.io/hchiam/full/OJXJzKb

3 B: https://codepen.io/hchiam/full/WNxNMbZ (click on the toggle button to switch players)

(if you listen carefully, you can hear that the notes are also binaural: it gives the illusion of sounding like it's physically coming from your left/right side - we can tweak that setting to make it more obvious, but considering some people may not be wearing headphones, it's better to make use of pitch)

For 4): spatial hints:

4 A: https://codepen.io/hchiam/full/XWKWEWb

4 B: https://codepen.io/hchiam/full/BazarZv


(all of these demos are still only facades/mocks for now, not fully implemented, and will need BE work)

hchiam commented 4 years ago

And here's another idea: 5) Darkness around you. Range of sight. Kinda like Among Us. Demo of this idea 5: https://codepen.io/hchiam/full/mdEJpPj (The range of sight is made wider for exaggeration, but I think for the real thing, smaller would be more interesting.)