View Full Version : Smart Role documentation
ALL HAIL CTHULHU
August 4th, 2012, 06:36 PM
So Mafia is confusing, especially to new players. With new roles, it's also confusing to casual returning players. This isn't helped by the fact that all all the rules are hidden away in a tome-like list that is hard to navigate (the starcraft UI scrollviews are TERRIBLE)
http://www.ocamagazine.com/wp-content/uploads/2010/07/4-turkmenistan-to-publish-big-turkmen-russian-dictionary-in-two-volumes.jpg
Now, this is a familiar pattern in game design. You have a whole bunch of information that is required before you can play and you may only play properly if you know ALL the knowledge beforehand (since going back and forth through the tome is not feasible). If you attempt to play with only partial knowledge, your play experience will be diminished.
Now, the normal approach taken in game design to combat a front-heavy knowledge requirement is a progressive learning/difficulty scheme. Basically, what most games will do is limit the play experience to a subset of the game rules at first and teach the player about new rules as they play, rather than making them go through a tutorial. This is highly effective and used in many games (i'm sure you can think of examples)
It may seem like this doesn't apply to mafia... but consider the following....
Each game of mafia uses a subset of the roles. Players only need to know about the mechanics of these roles
You normally don't need to know the details of a role until it enters discussion; You should know what a role is as soon as it enters discussion (ie, once someone mentions arsonist, you must be able to know what an arsonist is to play)
You need to know the roles that cause an effect when you see it happen. For example, when you get roleblocked, you should be able to access the docs on escorts and consorts.
So, the system I propose is very simple: whenever a role (in text) or role effect becomes visible to the player, give some means by which the player can explore in detail the role in question.
METHODS BY WHICH TO ENABLE ROLE EXPLORATION (ordered from easiest to implement to most effective):
------------------------------------
1. Put in the command -info <role>
Usage:
-info escort
-info GF
-info SK
Takes in: full name or most common abv. of role name
Effect:
Pops up a dialog that contains information on that role
OR
Dumps role info into that player's chat (would be annoying because it would push a lot of chat away)
------------------------------------
2. Make roles in role list clickable
I looked into galaxy scripting and there is no way that I could tell to make a text span clickable (somebody prove me wrong!). The age old work-around for this is to put an invisible button over top the text.
Clicking a confirmed role should pop up a dialog that explains the role or dumps it into chat.
OPTIONAL: clicking a role such as "random mafia" should display a list of all possible roles (though this would be harder)
------------------------------------
3. Parse player chat and find instances of role names/abv.
The most important part is to highlight all role names/abv. in a different color from normal text. This helps distinguish roles and lets players know they are something that are game mechanics. (and could be looked up through -info ### if implemented)
OPTIONAL: provide a means by which players can click on a role that has been mentioned. If you could set clickable string spans (think hyperlinks) this would be best. I think that's impossible in galaxy script and aligning buttons over player text is impractical so what I'd like to suggest is a queue of clickable roles. Put a third expandable dialog beside the graveyard and role list. Every time somebody mentions a role, put it in the list. If the dialog fills, pop one off the list. In this fashion, you can have a list of recently mentioned roles that can be clicked on by players who want to look at the details of that role.
Of course, if you only highlight the text and implement the -info call... that still allows players to explore roles. It's just less friendly.
------------------------------------
4. Detect when a player knows they are affected by an ability (easy) then let them look up what can cause that to happen (hard)
Could be as easy as keying each effect with a -info ### key and then telling the player "You have been roleblocked, type -info roleblock for more info"
Actually.... that's probably the best way period.... I was going to suggest other means of displaying this but fuck it... that works. And this is totally out of order now but I don't care.
------------------------------------
So, yeah: implementing some/all of these makes the game more accessible to new players, gives older players the ability to easily double check info, gives re-joining players the ability to look at new roles and last but not least:
MAKES DETECTION BY ASKING FOR ROLE CARD READ IMPOSSIBLE
Anyway, comments? I'm miffed I can't post this to R&D but meh... You guys are gonna do with it what you will anyway. I just hope DR gets a chance to read it.
Comments?
Raptorblaze
August 4th, 2012, 07:10 PM
Sending this link to DR, I'm curious how difficult this would be on the technical end.
JoeyButler
August 4th, 2012, 07:17 PM
I agree with the 3 role explorations, it would dramatically improve the game for beginners.
ALL HAIL CTHULHU
August 4th, 2012, 07:35 PM
Sending this link to DR, I'm curious how difficult this would be on the technical end.
Thanks.
Inside, I'm REALLY hoping that someone will pop out of the woodwork and go "HEY! clickable text spans is possible!" Because that would be a holy grail. I tried looking up the scripting reference documentation but there... doesn't really seem to be any? I looked decently hard and got no real API spec or language reference so... worst reference documentation ever...
CortoMontez
August 4th, 2012, 09:12 PM
I think another somewhat related addition could be a 'possible roles' list, which states all the roles which can potentially be alive at that time. This list would be updated with each death. For example, if there was a random neutral in a game, then an arsonist got lynched, all other neutral roles would be removed from said list. I'm not sure how feasible this would be from a technical stand point (namely janitors), but I think it would significantly increase the amount of actual detective work in mafia (which is the point of it), rather than having most of the defences/accusations being based off people interpreting/misinterpreting the rules.
Dark.Revenant
August 4th, 2012, 10:50 PM
1. Put in the command -info <role>
A popup box that displays a role card is certainly possible. Hell, it's not even that hard. I could probably do it in an hour. All I'd really have to do is copy the role card code that already exists, hook it up to a chat command, and move it to a different part of the screen, and make the button hide the dialog instead of shrink it.
The problem: How the fuck are new players going to know to type -info Serial Killer? It's yet another thing to learn. If we want to make it worthwhile it has to be something onscreen and visible, else it won't be used in the first place.
2. Make roles in role list clickable
Aside from the fact that lining up all those buttons is a gigantic pain in the ass, how would the players even know that the roles are clickable? SC2 has no practical method of turning the mouse into a hotlink/hand cursor when over a button, so UI psychology fails there too. Another problem is that most of those roles are just Random slots, anyway. On top of that, most newbies have the roles list closed.
3. Parse player chat and find instances of role names/abv.
This will just spam the players a lot. Plus nobody really uses the full names these days. SK, invest, arson, maf, bus... The list goes on.
4. Detect when a player knows they are affected by an ability (easy) then let them look up what can cause that to happen (hard)
Damn right it's hard. The UI widget is not that much trouble; just a box with text in it. But making it pop up in the first place is harder. Should the game pester the player to type -what is this? or something? Plus, taking into account the game's setup to spit out an accurate description is really hard. Context-sensitive text is a programming nightmare, trust me.
Rev's Proposition: A row of icons on the top of the screen, EpicMafia style, corresponding to each role. Mouse over to get that role's card. Game will only put up icons of roles that are possible in the setup. It pops out and draws the attention of new players because it looks different. As soon as the mouse comes over one of the icons, a huge tooltip will show up, cluing the player into what it's there for.
Problem: I need a decent-looking custom icon for every single role, no more than 50x50px each.
Lazers
August 4th, 2012, 10:58 PM
Rev's Proposition: A row of icons on the top of the screen, EpicMafia style, corresponding to each role. Mouse over to get that role's card. Game will only put up icons of roles that are possible in the setup. It pops out and draws the attention of new players because it looks different. As soon as the mouse comes over one of the icons, a huge tooltip will show up, cluing the player into what it's there for.
Problem: I need a decent-looking custom icon for every single role, no more than 50x50px each.
oops_ur_dead is a master at graphical design. I mean, look at my signature. Just ask him!
ALL HAIL CTHULHU
August 4th, 2012, 11:42 PM
Hey DR! Thanks for taking the time to read my suggestion and commitment to keep improving this game!
Rev's Proposition: A row of icons on the top of the screen, EpicMafia style, corresponding to each role. Mouse over to get that role's card. Game will only put up icons of roles that are possible in the setup. It pops out and draws the attention of new players because it looks different. As soon as the mouse comes over one of the icons, a huge tooltip will show up, cluing the player into what it's there for.
Problem: I need a decent-looking custom icon for every single role, no more than 50x50px each.
I was hoping you'd come up with your own flavour of solution, especially since you're the one most acquainted with the scripting and game setup (part of the reason i spent so long explaining why I was suggesting this =D). This sounds good. How many roles we have tho? 30? that's 50x30=1500px width before padding =/ Might need smaller than that. Or multi-line... which I assume is brainfuck
If you want art icons, I'm sure we could get somebody here who can art =P (if all else fails, putting a request for an artist in the loading screen will get some artist's attention)
Also, just clarifying some things:
The problem: How the fuck are new players going to know to type -info Serial Killer? It's yet another thing to learn. If we want to make it worthwhile it has to be something onscreen and visible, else it won't be used in the first place.
Agree. Something with no UI is an improvement but not much of one.
2. Make roles in role list clickable
Aside from the fact that lining up all those buttons is a gigantic pain in the ass, how would the players even know that the roles are clickable? SC2 has no practical method of turning the mouse into a hotlink/hand cursor when over a button, so UI psychology fails there too. Another problem is that most of those roles are just Random slots, anyway. On top of that, most newbies have the roles list closed.
No mouseover hand X_x dammit. Underline+Bold usually is a good click indicator but I feel your pain with the positioning.
How hard is compiling a list of possible roles for, say, a basic town slot in a given setup and throwing that in a dialog? Just for discussion's sake.
3. Parse player chat and find instances of role names/abv.
This will just spam the players a lot. Plus nobody really uses the full names these days. SK, invest, arson, maf, bus... The list goes on.
Meh, I find all the roles have only 1 common abv. if one at all
investigator, invest
escort
doctor, doc
Serial Killer, SK
Arsonist, arson
Forget the other bullshit and let me try to demonstrate what I was imagining:
"Hi, i'm invest. Purple is the GF"
I love the fact that you gave each role it's on slight shade of color and I think it helps players conceptualize and categorize the roles better in their head. Colouring names like this helps players understand that the player just claimed town and accused the other player of being mafia. (green vs. red)
"invest here, Yellow is the escort/consort/BG"
From far away, you can see exactly which roles are being talked about. Anyway, that's just what I was envisioning ^_^, just to be clear
I have no idea how easy string parsing would be tho... might be horrible. Anyway, here's the algorithm for it if this is implementable:
1. turn nonalpha-numeric to whitespace then convert to lower case (XX/YY/ZZ = xx yy zz)
2. split on white space ["xx", "yy", "zz"]
3. word key lookup vs every word
4. wrap the word in the real string with color tags (ugh, re-indexing would be a pain, traverse backwards?)
EDIT: IGNORE THAT ALGORITHM, IT SUCKS.
-greedily consume alpha-numeric characters until you hit a non-alpha numeric character
-keep track of your start index
-check against that word then optionally wrap it in color tags
-repeat
4. Detect when a player knows they are affected by an ability (easy) then let them look up what can cause that to happen (hard)
Damn right it's hard. The UI widget is not that much trouble; just a box with text in it. But making it pop up in the first place is harder. Should the game pester the player to type -what is this? or something? Plus, taking into account the game's setup to spit out an accurate description is really hard. Context-sensitive text is a programming nightmare, trust me.
Oh, I hear you. Fuck context sensitive.
Roleblock:
Roleblock will prevent you from doing your actions at night
Roles that can cause roleblock: consort, escort
Notes:
-Some classes can be immune to roleblock
-etc...
Guardian
August 5th, 2012, 01:41 AM
A guide for newbie players at last!
As for the Icons, I think adding in Role Effects along with tooltips might be nice.
Ex: Roleblock would be a giant X over the word "Action"
@Rev
Perhaps option 4could be some sort of:
Night Results
You have been role-blocked
You have been Bus driven
type -help for more information
then, -help would spit out info on what just happened to you.
Example:
You have been attacked and left for dead, but a doctor nursed you to health. Type -help for more info.
then, it would pop up something like:
When you have been attacked, it means that a role(Vigilante, Godfather, Mafioso,Serial Killer...) has attempted to kill you.
When you have been nursed to health, it means that a doctor has healed you.
The algorithm for -help wouldn't be that hard.
Just make it list down all (visible) actions that occur to the player, then erase every night.
ALL HAIL CTHULHU
August 6th, 2012, 09:29 PM
A guide for newbie players at last!
As for the Icons, I think adding in Role Effects along with tooltips might be nice.
Ex: Roleblock would be a giant X over the word "Action"
@Rev
Perhaps option 4could be some sort of:
Night Results
You have been role-blocked
You have been Bus driven
type -help for more information
then, -help would spit out info on what just happened to you.
Example:
You have been attacked and left for dead, but a doctor nursed you to health. Type -help for more info.
then, it would pop up something like:
When you have been attacked, it means that a role(Vigilante, Godfather, Mafioso,Serial Killer...) has attempted to kill you.
When you have been nursed to health, it means that a doctor has healed you.
The algorithm for -help wouldn't be that hard.
Just make it list down all (visible) actions that occur to the player, then erase every night.
Yeah, I was basically thinking this but -info healing
CmG
August 6th, 2012, 09:46 PM
Graveyard and Roles list should be opened from start. I think 33% don't even know that they exist.
You could put the -info command on the loading screen like 230912414 times. Also let it just auto pop up at Day 1 /night 1 or something. If the newbs don't bother reading the auto msgs at start, then they are in the wrong game anyway.
Chane
August 7th, 2012, 05:20 AM
Graveyard and Roles list should be opened from start. I think 33% don't even know that they exist.
You could put the -info command on the loading screen like 230912414 times. Also let it just auto pop up at Day 1 /night 1 or something. If the newbs don't bother reading the auto msgs at start, then they are in the wrong game anyway.
this. the first thing I do in every game of mafia is click those 2 buttons to open them. why would you not have them open?
Antithese
August 7th, 2012, 06:33 AM
I got another idea while reading this interesting thread.
We could limit role descriptions to roles available given the setup in help section. This could free some space. And less scrolling.
We could also get 100% sure role descriptions on the top of the help section given the setup, so they can be easily found by beginners.
And if they need informations about roles who aren't in the actual game, maybe we could have 2 sections : 1 with all roles, and 1 with possible roles in the actual game.
Raptorblaze
August 7th, 2012, 08:21 AM
I got another idea while reading this interesting thread.
We could limit role descriptions to roles available given the setup in help section. This could free some space. And less scrolling.
We could also get 100% sure role descriptions on the top of the help section given the setup, so they can be easily found by beginners.
And if they need informations about roles who aren't in the actual game, maybe we could have 2 sections : 1 with all roles, and 1 with possible roles in the actual game.
This has been in the game for a LONG time, any roles you see in help menu are possible roles.
Unentschieden
August 7th, 2012, 08:57 AM
I think he meant in context of the current game. The help menu lists all roles in the map, even if they are impossible due to settings. Regarding that, could they be split up into Townbasic, Townadvanced, Mafiabasic, Mafiaadvanced, Randombasic and Randomadvanced? Makes it a lot faster to find and easier to figure out which category contains what.
Cryptonic
August 7th, 2012, 08:59 AM
Help does not show impossible roles
Dark.Revenant
August 7th, 2012, 01:05 PM
Help shows all roles only because every fucking setup has 8 randoms.
A context-sensitive "-help" command is NOT happening, by the way.
I still think the best learning method for a game like this is visual / pictographic. ie the guy who said "roleblock should be represented by ACTION with an X through it" is absolutely right. The help menu should be moved on-screen so people can check role cards at a glance/mouseover. Small graphics representing each role should be made to make this more apparent: each role card would show the icon, the setup screen would show the icons in the description, and the help bar would have a list of all the icons on the top of the screen to be moused over for info.
Cryptonic
August 7th, 2012, 01:10 PM
Too bad the load screen can't be made more dynamic. Then it could have a different role explained on the load screen for new players. Oh well.
Lazers
August 7th, 2012, 02:24 PM
Is it possible to periodically change messages in the loading screen automatically?
Cause a tip system would be cool
Gingerape
August 7th, 2012, 02:45 PM
Is it possible to periodically change messages in the loading screen automatically?
Cause a tip system would be cool
DR had a tip system on the loading screen, but it never changed unless he updated the version.
My favorite was the win order one.
it was like
Arsonist>Serial Killer>Mafia>Cult>Town>Survivor>Amnesiac>etc
it actually cleared up a lot because it's mentioned nowhere else and then got replaced with
"Citizens are important!"
...
if DR can give a random loading screen with like 10 or so different tips then that would be cool if it's possibru.
Cryptonic
August 7th, 2012, 02:47 PM
Do I hear an echo? :smile:
Raptorblaze
August 7th, 2012, 04:11 PM
I think he meant in context of the current game. The help menu lists all roles in the map, even if they are impossible due to settings. Regarding that, could they be split up into Townbasic, Townadvanced, Mafiabasic, Mafiaadvanced, Randombasic and Randomadvanced? Makes it a lot faster to find and easier to figure out which category contains what.
If you don't believe me host a setup with all veterans and one sk and see what help says
ALL HAIL CTHULHU
August 7th, 2012, 10:23 PM
Help shows all roles only because every fucking setup has 8 randoms.
A context-sensitive "-help" command is NOT happening, by the way.
I still think the best learning method for a game like this is visual / pictographic. ie the guy who said "roleblock should be represented by ACTION with an X through it" is absolutely right. The help menu should be moved on-screen so people can check role cards at a glance/mouseover. Small graphics representing each role should be made to make this more apparent: each role card would show the icon, the setup screen would show the icons in the description, and the help bar would have a list of all the icons on the top of the screen to be moused over for info.
Alright, you have your heart set on this. This thread has served it's purpose so lets discard it and move onto the the next stage, sourcing some graphics.
Either you or one of us can make a thread to try and gather art. Or, you can advertise in the loading screen and make it a competition (a' la "submit an icon to be selected as an icon artist"). We can sit here talking about it forever, without anything being done. You have a clear vision of what you want, lets do it =D
Also, tips would be fucking awesome on the loading screen. Without that arson > SK > cult > mafia > witch > town one, many of us would be lost
Powered by vBulletin® Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.