Musing: Text to Speech to Text

Comments Off on Musing: Text to Speech to Text

Originally posted July 2007

So I was playing with this text-to-speech demo earlier. Then I was thinking about this Richard Bartle article on how cool it would be to have an MMO that could use voice chat to do speech-to-text, transcribe it to the chat window, and also text-to-speech it to change your voice chat to sound like your character.

Then, I remembered this neat video. It’s apparently a face rendering program where they made a big average face composite out of a lot of different faces, and tagged it with the different ways it might deform when deviating from the average. Apparently, they can come up with fairly accurate looking 3D models of faces from single 2D images, by mapping the deviation from the average and then applying that to the model and extrapolating from there.

So, I’m wondering if the same type of thing could be done with voice recognition. Record a lot of random people reading through a long series of text, and split out their recordings into pitch, tempo, inflection, and all of that and create a tagged average voice. There might be some underlying constants you could find across all speech, or you might have to tie it to ways of phrasing individual words.

Then, someone takes the system, reads some standardized text to establish a baseline, and the system maps that person’s vocal deviation from the average voice. When the person chats online, the system has a tagged way to do speech-to-text. Additionally, the system can take what was said, remove the user’s deviation (leaving the average voice plus unusual stresses and pacing) and then apply the deviation of another voice that represents your character. By keeping the inflections and stresses that were unusual to the user’s normal deviation, and applying them to the synthesized voice, you might come up with a much more natural sounding text-to-speech/voice-masking output.

Stephen’s Theory of Good Gamer Scarcity

Comments Off on Stephen’s Theory of Good Gamer Scarcity

Originally posted June 2007

Based on the latest 20 sided blog post, and having dipped my toes in the murky waters of the real-world Looking For Group channel a lot lately, I have a theory.

Good Gamer: Any roleplaying gamer with a minimum level of social skills and hygiene that is fun to game with.
Bad Gamer: Any roleplaying gamer that, through dint of poor social skills, poor hygiene, or other factors is simply not fun to game with for a large portion of the gaming population.

Good gamers will tend to stay in their gaming groups until outside forces make that impossible (e.g., have to move, group disbands due to family pressures, group can’t meet often enough to sate one person’s gaming need, etc.).

Bad gamers will only join a group for a few sessions until they help the group tear itself apart or simply cease to be invited to games while the group carries on. Bad gamers only stay in a group long term when the rest of the group simply has no other option but to keep the gamer or be unable to game at all (sometimes, the latter is preferable). In this case of extreme scarcity, there probably isn’t a local gamer pool to speak of anyway.

When good gamers look for a group, they will either:
A) Join an incompatible group (possibly with bad players) that is likely to tear apart, or
B) Join a compatible group of other good gamers

When B happens, the good gamer will be off the “gaming market,” possibly for years.

Given an equal mix of good and bad gamers, grouped at random, breaking up if there are too many bad gamers in the mix, chance alone will eventually result in most good gamers being grouped with other good gamers. The number of ungrouped bad gamers will stay consistent.

Therefore: In any pool of gamers looking for a new gaming group, bad gamers will be drastically over-represented at any given time, even if they make up a small fraction of the total ungrouped gamers over the course of a longer period.

Conclusion: For any organized attempt to match gamers, the chance that you will wind up gaming with bad gamers will rise dramatically in relation to the chance that you will wind up gaming with good gamers.

In other words: Game matching services are doomed from the start to only really be useful to cat pee men that you’d never let into your house otherwise 😀 .

Modular Game Idea: The Star that Burns Brightest…

Comments Off on Modular Game Idea: The Star that Burns Brightest…

Originally posted January 2007

Applicable To: Any massive multiplayer game that wishes to implement permanent death (PD) as a check against players ultimately clustering at the level cap/unsatisfying endgame, but doesn’t want to drive off newbies who are afraid that they’ll get killed.

All player characters have a flag that defaults to enabled, but can be disabled at will. When disabled, it can be re-enabled at will, with a slight delay period.

When the flag is enabled, the character is in safe mode (“insured,” “resurrectable,” “registered at the cloning facility,” or whatever else the world fiction is for recovering from losing a fight). The player plays the game normally.

Each time the flag is disabled, the player is warned that the character is now vulnerable to permanent death. Individual games may decide whether or not to allow some benefits to roll to a new character after a character dies permanently. When the flag is disabled, the character is deleted from the server on death, and the player must switch to an alternate character.

Additionally, while the flag is disabled, the character accrues intangible game rewards (exp, skill increases, etc.) at an X% greater rate. This percent increase can be tweaked to whatever provides the greatest risk/reward proposition to players. While the flag is disabled, the character’s level cap is Y% greater than the normal level cap; if the flag is re-enabled while the character is beyond the normal level cap, the extra levels are temporarily lost until the flag is once more disabled.

Disadvantages of this MGI:

  • Unflagged players will complain when they die
  • Flagged players will complain that they don’t receive the same leveling benefits as unflagged players
  • Add-ons and strategies will be developed to unflag the player for the optimal periods to still make use of the safety net when in actual danger (the reason for the delay on re-flagging, to prevent a mod that re-flags at the instant before death)

Advantages of this MGI:

  • The endgame can be tweaked to be difficult but possible for flagged characters. Unflagged characters gain a benefit of increased levels to tackle endgame challenges at the risk of permanent death. Outleveling the endgame becomes an ongoing risk commensurate with its rewards.
  • Those adamantly against PD regard the game as having no PD by default. Those most likely to outlevel content, for whom PD is a typically touted balancing mechanism, will be more likely to enable it for themselves.
  • Players can disable PD when they are in situations where PD would be unfair: when idle in a dangerous area, when engaging in unregulated PvP, when there is above average lag, etc.
  • Even in open PvP situations, griefers have no way to tell when most players are unflagged, so will not know who can be attacked in order to player kill (PK). The only players that are obviously unflagged are those beyond the level cap; these targets are both the hardest for griefers, and griefers will generally have to open themselves to PD to have a shot at killing them.

Modular Game Idea: Diminishing Return Cooldowns

Comments Off on Modular Game Idea: Diminishing Return Cooldowns

Originally posted January 2007

Applicable To: Any massive multiplayer game with abilities (especially buff/healing potions) that need to be put on some kind of arbitrary timer so all challenges can’t be overcome by spamming a button/item. This has probably been implemented before, but I don’t have an example so I’m putting it here for my own memory 🙂 .

All consumable healing/buff items display a colored background that defaults to green. This may also include powers/abilities with a negligible resources cost to the player that are normally limited by hard cooldowns.

Each such item can be either diminishing or damaging. Diminishing items are never harmful to the character, but become increasingly less effective when used repeatedly in a time period. Damaging items may or may not damage attributes with the first use, but they become increasingly damaging with each additional use in a time period. Damaging items may or may not be diminishing (particularly potent buffs should probably diminish and damage).

Each such item has a percent effectiveness/damage rating, a use modifier, and a recovery rate.

Diminishing items start at 100% of their full potential. Their use modifier is the percentage reduced with each use, and may be a compounding percent (e.g., each use may remove a flat 20%, resulting in 5 uses to 0%, or a relative 20%, resulting in 80%, 64%, 51%, 41%, 33%, and so on, never actually quite reaching 0%). Their recovery rate is expressed in percentage recovered per second until returning to 100%, and may also be a compounding percent (with a flat recovery rate, there is a chance of a sweet spot where it’s advantageous to use the item every second rather than waiting for it to return to 100%, with a percentage recovery rate it may be harder to visually track how much time is left to return to full potency.).

Damaging items that are safe on their first use start at 0 damage/cost to a specific attribute. Damaging items that exact a penalty even on the first use start greater than 0. Their use modifier is the percentage the damage is increased with each use, and may be a compounding percent, or may need to be an actual number if starting at 0 (since it’s not useful to increase 0 by a percent). Their recovery rate is expressed in a percentage reduced per second until returning to the original percentage, and also may be a compounding percent.

For diminishing items, the colored background for the item begins green, and shifts to yellow and then red relative to the current percentage effectiveness. There may be a WoW-style visual clock-wipe timer to indicate when the item will return to a higher level of potency.

For damaging items, the colored background for the item begins green if there is no initial penalty or yellow if there is a small initial penalty. After the first use, the background becomes yellow or red, depending on the severity of the second-use penalty. The item then goes in the red to indicate that continuing use will have continuing penalties. As with diminishing returns, there may be a clock timer to indicate when the penalties will be gone.

Disadvantages of this MGI:

  • Harder to code than a simple cooldown period for items, and requires the server to track cooldown at a variable rate (however, WoW already does most of this for every character power with a cooldown, so it’s probably not that intensive)
  • Players may feel obliged to use more consumables, since there’s no hard cooldown to indicate how frequently a consumable is supposed to be used
  • Inattentive players may wind up seriously injuring their characters by using damaging consumables too frequently in a period
  • It may be less intuitive to balance the effects of cooldown items/abilities than with a hard cooldown; does the 100% effect need to be reduced to compensate for more uses in the period, or can the same effect be achieved by tweaking the modifier and recovery rates?

Advantages of this MGI:

  • Players are not arbitrarily limited by a bad timing choice with a consumable (e.g., a healing potion can be used at reduced effectiveness as a last measure to cheat death even if it was used for a big heal recently)
  • Players (like me!) that are disinclined to use consumables/cooldown abilities for fear that they will be unavailable due to cooldown when they’re really needed can risk a diminishing return instead of total inability to use the item/ability.
  • Players gain an increased feeling of choice regarding their use of cooldown items/abilities

Modular Game Idea: the Post

Comments Off on Modular Game Idea: the Post

Originally posted December 2006

I got Designing Virtual Worlds for Christmas, so these armchair game-design thoughtlets may crop up with increasing regularity as I read it.

The Post

Applicable To: Any massive multiplayer game with a setting that expects travel and communication between cities/population hubs to be potentially dangerous and slow (fantasy, post-apocalyptic, space, etc.). Eve may already do something similar, from what I’ve heard.

There is no instant mail communication between players in game, particularly when sending items or money. There is no game-protected, reliable mail, either, such as WoW’s one hour delay post.

To send a letter or ship money or goods, players place the intended correspondence in an envelope/box, seal it (giving it the Sealed flag), and address it to a city and player name (automated functions selected from a drop-down).

Players deliver this mail to the local post office. If the mail is going to a recipient in the same city, the player pays a small fee and the postmaster NPC holds the package for the recipient (potentially alerting the recipient as necessary to other design goals). The recipient picks up the package at his or her leisure, and there’s no risk to the package unless the game also features the ability to attack NPC vaults.

Individual players or guilds can register with different post offices as mail carriers. They pay a fee to register, and the postmaster takes a portion (maybe 10%) of any wages earned by carrying mail. They set their own fees for different categories of packages to different cities.

If a player wishes to mail a package to another city, the postmaster displays a (slow and expensive) NPC carrier as well as all the PC carriers registered with the office, and their relative rates for the package in question. Carriers are sorted to the top of the list based on their number of packages delivered and their success rate. The postmaster might also display an average time to deliver a package, based on previous experience.

Players can choose to pick a reliable carrier near the top of the list, but may wish to choose a less reliable carrier due to price or speed of delivery. Top mail carriers will likely compete on prices, driving down the rates, while a particularly infrequent delivery route may become increasingly expensive.

Based on other design goals, player mail carriers may be automatically flagged for PVP when carrying a certain value of shipped items, with an additional option of looting the mail from slain carriers. NPC carriers may be killable as well, and will definitely be killable if PC carriers are flagged. In this variation, sending mail is not made dangerous just by monsters and untrustworthy carriers, it also risks delay and loss of the mail due to PVP. Particularly difficult trade routes may become cash cows for the mail carriers brave enough to run them (this is where I think the idea intersects with Eve).

Based on design goals, PC carriers may be offered a skill that lets them tamper with sealed packages with a decreasing risk of detection, allowing them the ability to skim with less chance of being noticed.

Disadvantages of this MGI:

  • Players lose reliability of mail delivery time
  • Players may lose mail shipped to other cities
  • Players may wind up paying unreasonable amounts for delivery if a competitive market fails to develop

Advantages of this MGI:

  • Player economy gains a structured, competitive market
  • Players can earn money for a non-traditional role (traveler)
  • Players can send mail within the same city without an arbitrary delay
  • Time and difficulty to deliver mail aids in world verisimilitude/suspension of disbelief
  • If the PVP flag is enabled, PVP-minded players gain a structured, obvious opportunity to benefit from PVP, while PVP-unfriendly players can stay away from it by keeping their mail deliveries under the PVP threshold
  • An alternate, purely PC-driven market may develop where PC postmasters establish themselves with competitive fees and percentages for mail delivery at the cost of decreased reliability