Opened 10 years ago

Last modified 5 years ago

#2273 new enhancement

[PATCH] taunts 1 to 20, implemented prototype

Reported by: alkazar-ipse Owned by:
Priority: Nice to Have Milestone: Backlog
Component: UI – In-game Keywords: patch
Cc: Patch:

Description (last modified by AlThePhoenix)

Type a number from 1 to 20 as chat message (or /taunt + #1-20") in order to trigger a SHORT sound along with the visually displayed "<bob> (taunt 7)" for example. As also mentioned in the code comment: TODO a check box to en/disable the sounds for players who dont like it. For now I used quotes from the movie Monty Python The Holy Grale. This is just a prototype!

Attachments (2)

taunts1to20prototype.patch (47.9 KB ) - added by alkazar-ipse 10 years ago.
0AD_Taunts.patch (3.8 KB ) - added by AlThePhoenix 8 years ago.
Implement taunt functionality. Taunts are put in simulation/data/taunts and can use any sound in the game. Includes a sample taunt.

Download all attachments as: .zip

Change History (25)

by alkazar-ipse, 10 years ago

Attachment: taunts1to20prototype.patch added

comment:1 by leper, 10 years ago

Keywords: wip added
Milestone: Alpha 15Backlog

comment:2 by historic_bruno, 10 years ago

Keywords: patch added
Summary: taunts 1 to 20, implemented prototype[PATCH] taunts 1 to 20, implemented prototype

comment:3 by Stan, 9 years ago

Any news on this ?

comment:4 by leper, 9 years ago

Owner: alkazar-ipse removed

by AlThePhoenix, 8 years ago

Attachment: 0AD_Taunts.patch added

Implement taunt functionality. Taunts are put in simulation/data/taunts and can use any sound in the game. Includes a sample taunt.

comment:5 by Itms, 8 years ago

Keywords: rfc added; taunt wip removed
Milestone: BacklogAlpha 22

comment:6 by wraitii, 7 years ago

Keywords: review added; rfc removed

This was working when I tested it in a real situation, would like another look.

comment:7 by elexis, 7 years ago

Keywords: review removed
  • I don't think so, not with taunts in the simulation directory, especially when named asd.json and having asd? as the title.
  • Shouldn't we advertize them in the GUI, making them a clickable list for example?
  • Object.keys(taunts).indexOf(currentTaunt.Name) !== -1 should be foo[bar]
  • L491 uneeded variable

comment:8 by elexis, 7 years ago

Milestone: Alpha 22Work In Progress

Moving to the Work In Progress milestone, since there is a patch asking for feedback, but since it is not strictly bound to a specific release.

comment:9 by AlThePhoenix, 6 years ago

Description: modified (diff)

I've been working on this right after your input but I didn't get around to finish it. I'll work on it and I'll be submitting a patch in the near future. Can't exactly say when as I have to sort my computer out.

comment:10 by Stan, 6 years ago

Nice to know you are still around :)

comment:11 by alkazar-ipse, 6 years ago

yeah thanks.

comment:12 by alkazar-ipse, 6 years ago

Not playing that much anymore. Tried latest alpha, cav-raid got super OP. Are those taunts getting in? =))) They are really useful and fancy for team-play experience. It's using the audio channel for passing information from player to player without having them type or read. Instead of typing "i need wood" or "one moment I'm coming to help", just type some predefined number, you save some typing time, your co-players saves some reading time

comment:13 by elexis, 6 years ago

Milestone: Work In ProgressBacklog

The idea is nice, the patch itself looks remotely ok, besides that the JSON files shouldn't be in simulation/ but gui/session/somewhere/.

What the patch misses is a way to inform the player which number corresponds to which taunt. It should be ingame, not only in some textual page elsewhere. A tooltip couldn't hold 20 taunts. I'm thinking of a tab in the chat page. I guess it could be implemented in two patches (one for the basic functionality, one for the GUI implementation).

comment:14 by Stan, 6 years ago

That option page could also allow one to replace one taunt by another with a default button to revert back. This way people could configure the twenty messages they use the most. Dunno if we support editing translatable fields.

comment:15 by elexis, 6 years ago

But then you have to send /taunt filename via chat, otherwise the other clients don't know what you have configured.

comment:16 by alkazar-ipse, 6 years ago

no, there is no /taunt and no filename, that kills the entire point of speeding up and encouraging communication. Clearly none of you has ever played Age of Empires 3 online. The taunts are not documented, like... anywhere! There are about 30 per default installed with the game as an easter egg that one player once discovered randomly by chatting a number bellow 31, and then all other players pick it up from him, and all new players pick it up within their first few games. It's really intuitive (1=yes, 2=no, 3=need food, need wood, metal, stone, help, attack etc, 11=are you ready, spammed like crazy for people to green up their ready checkbox to start the game)

Very important is to allow the player to en/disable the audio in his settings because some people might find it annoying and would still like to to enjoy the rest of the game's audio. But documentation is not needed, really not. You talk about configuration of the 20 most used?... what more than 20 do you want to put in there? there is as many common things you want to tell your partners during a multiplayer game as there is, and that IS about 20-30, not more. If you want to talk about your cousin's wedding, call him on Skype while you play together. That is not the target purpose of taunts.

In Age3 you could download a patch with hundreds of quotes from movies, which were more funny then useful in most game situations even though sometimes convenient, but no one used them because no one knew about them, and they didn't work unless you installed that patch.

in short: taunts are caught up in no time by players, remembering a few useful numbers in the least concern (difficulty-wise) of a player to master the gameplay (remember this is just an optional feature, not needed for playing. Just used by the hardcore community. Same as with other things: I can code using vim and use all fancy keyboard shortcuts I want, my work colleague may still program using an IDE and use his mouse to change lines, no one is forbidding it). In the learning process players will just hear the audio while seeing the number chatted. No /keyword needed, an integer number without trailing characters can easily be parsed into a "/taunt #theInteger" locally on his machine if he enables taunts, and if enabled he can still write numbers as non-taunts by adding a space after it. Players who disable it will just get the plain text as message, and no audio.

Last edited 6 years ago by alkazar-ipse (previous) (diff)

comment:17 by Stan, 6 years ago

Ah yeah was not thinking about that kind of taunts :) In AOM you could use buttons for those, like there was shortcuts to request resources automatically.

comment:18 by alkazar-ipse, 6 years ago

if(_tauntsEnabled) { player types "5" -> convert to "/taunt 5";

player receives "/taunt 5" -> display "<playerName>: taunt 5", play taunt audio file _tauntMapping[5-1] saying "I need metal"; } else { player types "5" -> send "5";

player receives "/taunt 5" -> display "<playerName>: I need metal", don't play any taunt audio; }

Last edited 6 years ago by alkazar-ipse (previous) (diff)

comment:19 by elexis, 6 years ago

no, there is no /taunt, that kills the entire point of speeding up and encouraging communication.

You misunderstood my comment. /taunt filename or /taunt tauntname is what would be sent across the network, not to be typed by the player. I mentioned there should be GUI buttons so that players know about. Just because AoE3 doesn't document it doesn't mean that we have to follow that. If we add a feature, we document it so that it can be used properly. The use case for custom taunts can indeed only be a mod pack with more taunts.

in reply to:  19 comment:20 by alkazar-ipse, 6 years ago

Replying to elexis:

/taunt filename or /taunt tauntname is what would be sent across the network, not to be typed by the player.

Fair enough, if you make it configurable, which number is which taunt, true... but you shouldn't make it configurable :P sounds like a lot of effort for no reason. players will just use a couple of numbers, for me they were mostly 1,2,11, and 26

Last edited 6 years ago by alkazar-ipse (previous) (diff)

in reply to:  19 comment:21 by alkazar-ipse, 6 years ago

Replying to elexis:

Just because AoE3 doesn't document it doesn't mean that we have to follow that. If we add a feature, we document it so that it can be used properly.

I agree, do document it, but I'd rather put it in some "info/documentation" place, rather than a separate tab or in settings. At some place you describe the civilisations, right? this should go to a similar place.

The use case for custom taunts can indeed only be a mod pack with more taunts.

I agree, you can't increase the game's size with unending audio files, but 20-30 short audio clips of a few seconds shouldn't be an issue

Last edited 6 years ago by alkazar-ipse (previous) (diff)

comment:22 by AlThePhoenix, 5 years ago

Okay really now, I'm almost done with my computer and then I can finish this. Sorry for the delay.

I've already gotten the taunt GUI in which shows you which taunts there are as well as allowing you to send one. It's next to the Diplomacy button. Taunts can be disabled and they are now stored in gui/session/voicecmds. What is left to do is me having to adapt it to the newest revision if needed (it's over a year old now, lol...) and check if I forgot anything.

Maybe we also want an option to only play 'meaningful' voice commands? As in, voice commands that make you ask for resources or help, and don't play audio on commands like laughs? Should it be an extra toggle or should this be combined with 'Enable Taunts' in a drop-down menu?

comment:23 by Imarok, 5 years ago

Component: UI & SimulationIn-game UI

Move tickets to In-game UI as UI & Simulation got some sub components.

Note: See TracTickets for help on using tickets.