2016/03/09, 16:25 by checker

One of the mechanics SpyParty shares with poker is the concept of a tell. In poker, a tell is when a player has some behavior that gives away information about their hand, like whether they’re bluffing. In SpyParty, we use the word tell to indicate something that implicates a character as the Spy; we have hard tells, which are things like animations only the Spy will do, so if you see one of these, shoot the person, soft tells, which are more deductive, like an audio cue that somebody in a conversation is the Spy, and behavioral tells, which are characters acting in a way that raises suspicion.

We also have anti-tells, which is what we call things that only an NPC can do, so if you see one of these, you know you can safely lowlight that character. Hard anti-tells are always high-priority bugs that need fixing relatively quickly, because a good Sniper can get a lot of 100% safe lowlights over the course of a game if there is an extant anti-tell.

These tells and anti-tells are usually very subtle, as this post about a walking anti-tell demonstrates. The finder of that anti-tell, canadianbacon, has become known for finding these, and today’s examples are no different.

So Rude!

First up, sometimes when the Spy would talk, and an NPC would interrupt the Spy, the other people in the conversation would not look at the interrupter. What should happen is the latest person to talk always gets looked at, and I was never able to figure this one out completely, but I think I fixed it anyway, along with three other bugs that popped up along the way.

In this example, the Spy is “yellow Danger”, and “Blondo” interrupts while the Spy is talking, but you can see everybody is still looking at the Spy.

This is the kind of subtlety we’re talking about. In the bug report thread for this anti-tell, even other elite players were impressed by canadianbacon‘s observation skills. Here’s kcmmmmm, one of the top players, commenting in the thread:

So I fixed this, and while I was in there, I added a long-requested feature. In live games where you’re the Spy, you get to see arrows in the conversations that tell you who is talking, who the previous talker was, and who is going to be next. This lets you exactly mimic the NPC conversation etiquette. These arrows were not shown in replays, though, which made bugs like these hard to narrow down, and also made closely studying the conversation flow harder, so to help debug this problem while I was doing it, and to help with problems like this in the future, I added the conversation arrows to replays and spectation:

I’m a little nervous this is going to get more Spies shot as players like canadianbacon make a study of NPC conversation behavior, but we shall see…

In adding the arrows, I found and fixed a subtle timestamp bug in the replay events, so hopefully those will be a bit more accurate in the future, it turns out they could drift a bit if a bunch of events happened close together. And then there was another bug where the talk spawned by contacting the Double Agent wasn’t changing the previous talker arrow, and potentially didn’t get recognized as a full talk, and that’s fixed too. I’m sure there are more in there that players will find.

Pick a Direction

The second tell canadianbacon reported recently had to do with differences in the way Spies and NPCs stopped when they weren’t stopping on ground pads, so for example to pick up the briefcase in the middle of the party, or stopping before entering a conversation because it became full while you were walking towards it. The (kind of crappy) SpyParty pathing system uses a grid and characters can only path along the 8 cardinal directions (North, Northeast, East, etc.), but in some circumstances when stopping in the middle of nowhere, or in the middle of a turn, the Spy character could stop non-cardinally, and sometimes NPCs could. Hopefully now everybody will always either use the pad orientation, or adjust to a cardinal direction when they stop. Hopefully.

We Fear Change

Finally, I updated this build to fix these tells and anti-tells, but the main thing I’ve been working on has been the new User Interface update, which is going to be huge and buggy and has a ton of work left to do on it. But I needed to fix these bugs now, so I disabled most of what I’d been doing so I could ship the update. I could have branched the code from the previous update, but I don’t like to do that if I can help it, and so some of the new UI work leaked into this new build in the form of the new font system.

You can see it in a few places. First, the action UI has a new look because I needed it to be scalable and anti-aliased. I tried a bunch of different typefaces:

Choosing typefaces is hard, especially for body text, but I settled on Open Sans Condensed Bold, which is free, has really amazingly good hinting for small letter sizes, and has a really pleasant weight. Sadly, it doesn’t have an italics or oblique, but it looks pretty good with synthetic oblique so unless I can convince Steve Matteson to make an oblique face, synthetic it is.

The other place you can see a change is in the game timer. I am using the same typeface for the clock, Digital-7 (mono) by Style-7, but it looks slightly different than before because of the anti-aliasing, and when a “green time-add” splits the clock, I’m temporarily using Open Sans Regular for the “Spy:” and “Sniper:” labels, mostly because the old aliased text looked out of place and was using different measurement units next to the clock. I need to figure out this UI a bit more, but here it is for now:

Okay, back to making the UI pretty! I will show some screenshots of the new UI design at some point soon!