Frequently Asked Questions

Does ChatBlade support Voice Chat?
ChatBlade does not include built in support for Voice Chat.

Does ChatBlade include Networking?
It is envisioned that each Game shall use their own Network code or product.
ChatBlade only includes sample Networking, not intended for production use.
Game Developers shall need to hook ChatBlade up to whatever Networking is used in the Game.

Does ChatBlade include a Chat Server?
ChatBlade is a Client-Side Middleware Chat SDK designed to handle Chat processing in a MMOG Game Client.
While ChatBlade does ship with a rudimentary sample pseudocode Chat Server, it is not intended for production use.
Game Developers shall need to create a Chat Server which talks to their Network Code and their Game Database.

Does ChatBlade support E-Mail?
ChatBlade does not support in-game E-Mail.

Does ChatBlade support external Chat programs?
While external Chat applications such as a Web based form or Instant Messaging may work with ChatBlade, ChatBlade was not designed with external Chat Tools in mind.
ChatBlade is designed for use in a Game Client.

Does ChatBlade work in Linux clients?
ChatBlade is implemented using standard C++ and the STL.  It is likely that the core ChatBlade classes shall work under Linux, but this has not been tested and is not supported.
ChatBlade sample Classes and Applications are Windows only.

What is included in a License?
Generally ChatBlade is Licensed on a Per-Game basis.
A single Game title and its Expansion packs may include ChatBlade.
A Full License covers the game across all platforms (PC, Mac, XBox One, Linux, etc.).
ChatBlade may also be Licensed for an unlimited amount of Games from a single Game Studio, or it may be Licensed for use in a Stable of Studios under a Game Publisher.
ChatBlade may not be resold or distributed outside of the Game or Studio it is Licensed for.
ChatBlade ships with fully commented Source Code, HTML Documentation, and Sample Applications.
Each ChatBlade License comes with a specific level of E-Mail and Phone support.
A Full ChatBlade License includes free upgrades to future released versions of ChatBlade for 1 year.
ChatBlade comes with a 30 day money-back guarantee.

Does ChatBlade charge Royalties?
ChatBlade is Royalty-free.
No Royalty is charged after the initial License purchase.

Does a ChatBlade Logo need to be displayed?
No, there is no requirement to display a ChatBlade Logo on any packaging, advertisements, or web pages.

Is the Source Code included?
ChatBlade includes heavily commented C++ source code.  Nothing is hidden.
In addition, extensive SDK HTML documentation is provided.

Are Expansion Packs included in a License?
Yes, all future Expansion Packs for a single Game Title are included for free in a ChatBlade license.
A License only needs to be bought once for a Game and its Expansion Packs.
Any separate Games from a Game Studio would require a separate ChatBlade License, but the cost for additional Licenses is reduced.

Does a License cover all Platforms?
Yes, a single ChatBlade License covers the Game across all platforms (PC, Mac, XBox One, PS4, Smartphone, Linux, etc.).
A License only needs to be bought once for a Game under any platform.

Is ChatBlade flexible on pricing for Studios with limited funds?
ChatBlade can work with Studios which lack initial funds and we can make flexible arrangements with such Studios.

What Language is ChatBlade created in?
ChatBlade is written in C++ using the STL.
Sample files make use of XML.
The sample Chat Server is written in Java.
ChatBlade sample Applications make use of MFC.

What are the Requirements for ChatBlade?
In order to incorporate ChatBlade into a Game the Game needs at least rough versions of the following parts:
  The Game should have at least a rudimentary GUI Text Window capable of displaying Text.
  The Game should have at least a rudimentary GUI Edit Field to enable Players to type in Chat.
  The Game should have a Networking Component, so that ChatBlade may talk to a Chat Server.
  Eventually the Game shall need a Game Database and a Chat Server which talks to that Database.

Does ChatBlade support Unicode?
ChatBlade includes full support for Unicode.
Players can chat in any Language.
ChatBlade is ready for distribution World Wide.
All Documentation and Source Code is in English.

What is Chat History?
Chat History is a term ChatBlade uses to describe the ability to repeat Chat a Player had previously typed in.
ChatBlade supports Players cycling through previously typed Text so that they may repeat Chat.
Similar to DosKey.

What is a Quick Command?
A Quick Command is a single Character command used to speed up common Chat Communication.
Players can start their line of Chat Text with a Quick Command and ChatBlade shall deliver the Text to the appropriate Chat Channel.
ChatBlade ships with support for the following Default Quick Commnds:
  ':' Expands to /emote
  ';' Expands to /emote
  '!' Expands to /say
  '@' Expands to /guild
  '#' Expands to /group
  '$' Expands to /auction
  '^' Expands to /raid
"! Where did you get that weapon?"  expands to "/say  Where did you get that weapon?"
"# Incoming Magnapard!"  expands to "/group  Incoming Magnapard!"

What is a Slash Command?
A Slash Command is a Player typed in Chat Command which typically starts with a '/' character.
Common Slash Commands include:
ChatBlade allows for Player Customization of the Slash Commands to whatever they are used to.

What is an Alias?
An Alias means a couple things in ChatBlade.
Primarily an Alias is a new Slash Command created by a Player using the /alias Command.
For Example:
  Players may type in "/alias /backflip, /emote backflips" which creates a new Alias called /backflip.
  When the Player types "/backflip" ChatBlade shall expand that to "/emote backflips"
This is the second way that ChatBlade allows Players to customize their Slash Commands.
An Alias is also used to refer to any Slash Command on occasion.

What is a Nickname?
A Nickname is a short, Player created name for another Character made with the /nickname Slash Command.
Nicknames are designed to facilitate /tells by creating an easy to remember or type name for another Character.
For Example:
  "/nickname Pal, Palladia Delfin" would create a local Nickname of Pal that expands to Palladia Delfin when used in /tells.
  "/nickname Mike, Torillion LightBringer" might create a Nickname for ones RL friend.
  Typing in "/tell Pal, Where you at?"  would expand to "/tell Palladia Delfin, Where you at?"
  Typing in "/tell Mike, Lets hit the movie after this Quest"  would expand to "/tell Torillion LightBringer, Lets hit the movie after this Quest".
Nicknames are local to the client and are not shared amongst Players.
Players create local Nicknames for other Characters and not for themselves.
Nicknames are exceptionally useful for Characters with long or hard to type names.

What does ChatBlade mean by a Macro?
For ChatBlade a Macro means a % Macro such as %T or %L.
%T might expand to the name of the Players current Target, while %L might expand to the Characters current Location.

What does ChatBlade mean by HyperLinking?
Hyperlinking in ChatBlade means the ability to drag an item onto a Chat Bar and have the stats of the item be viewable by other Players if they click on the linked text in the Chat.
While ChatBlade includes underlying support for Hyperlinking, much of the Hyperlinking implementation shall need to be done in a Game GUI.

What is a Default Slash Command?
A Default Slash Command is a Slash Command that is prepended to Player typed Chat when no initial Slash Command is included.
Each Edit Field may have a different Default Slash Command which can be changed at any time.
Typically one might be set for "/say" while another might be "/group" or "/tell Irridia".
If a Player types a line of Chat that does not already start with a Slash Command, ChatBlade shall prepend the Default Slash Command for that Edit Field onto the Chat text.

What is a Command Map?
A Command Map is an instance of CBCommandMap.
It matches up an OnCommandXXX() function with the typed Slash Commands which might invoke that function.
For Example a Command Map made to support replying to a /tell might include:
  CBSlashCommands::OnCommandReply() function pointer and the strings

What is TextWindowData?
Text Window Data is all the Chat Messages for a Text Window and a list of all the Chat Channels that that GUI Text Window is Monitoring.
Text Window Data is implemented by the CBTextWindowData class.
Each GUI Text Window or Chat Tab should have an associated CBTextWindowData instance in ChatBlade.
This class keeps track of the Chat Channels to Monitor, and contains all the underlying Chat Messages for a Text Window.

What is EditFieldData?
Edit Field Data is the Chat History and Default Slash Command for a GUI Edit Field.
It is implemented by the CBEditFieldData class.
All GUI Edit Fields should have an associated CBEditFieldData instance that assists them and keeps track of their Chat History and stores the Default Slash Command for the Edit Field.

What does ChatBlade mean by Monitoring?
Monitoring means to listen for Chat Messages on a certain Chat Channel.
One Text Window may want to Monitor the Group and Say Channels, while another might be configured to listen to Chat on the Auction and OOC Channels.
If a Text Window is Monitoring a Chat Channel, ChatBlade shall send all Chat Messages on that Chat Channel to the Text Window.  More than 1 Text Window/Tab may Monitor the same Chat Channel at the same time.

What does ChatBlade mean by a Raid?
A Raid is a Group of Groups.  Typically 2 or more Player Groups banded together to tackle challenging Game content.
ChatBlade includes support for a Raid Chat Channel and a Raid Priority Chat Channel to ease Raid communication.

What does ChatBlade mean by an Alliance?
An Alliance is a Group of Guilds.  Generally 2 or more Guilds of Players working together.
An Alliance has its own Chat Channel and Priority Chat Channel.

What is Chat Animation?
Chat Animation is the silent automatic Emotes which might occur based on keywords in Player typed Chat.
For Example:  If a Player types "No thanks", his Character may Shake their head in an automatic Chat Animation.
ChatBlade provides a stub which Developers can use to implement Chat Animation according to Game Design.

What is Chat Intoxication?
Chat Intoxication is the modification of Player typed Chat to make it sound Intoxicated.
Chat Intoxication is designed for Games which support in-game Drinking.
ChatBlade shall alter the Chat more drastically based upon how Drunk the Game reports the Player to be.

What is Language Conversion?
Language Conversion is the modification of incoming Chat to an in-game artificial Language such as Elvish or Klingon.
Each Chat Message includes a Language Field.  If the receiving Player is not fully fluent in the Language, ChatBlade shall convert portions of the Text into the artificial Language based upon how well the Character understands the Language.

What is a Chat Bubble?
A Chat Bubble is a single Chat Message designed to be displayed above a Characters head when they Chat.

What is a / Command?
A / Command is another way of saying a Slash Command.
A / Command is an in-game Command that typically starts with a '/' character.
Common / Commands include:

What is an OnCommandXXX() function?
An OnCommandXXX() function or OnCommand() function is a static member of the CBSlashCommands class which is designed to be invoked in response to a Player typed Slash Command.
Examples of OnCommandXXX() functions are:

What is a Chat Statement?
A Chat Statement is an alternate way to send Chat to those in the vicinity of the Character.
There are around 70 initial Chat Statements including /declare, /grunt, /ask, /proclaim, /grumble, and more.
Players can add in any additional Chat Statements that they see fit, by modifying the initial Slash Command Interface.  If they want to add in /joke, or /blurt it is quite simple and trivial.
Chat Statements are sent to the same Players that /say Chat Messages are, but the displayed verb is changed from "say" to "ask" or "concurs" or whatever Statement is used.
Examples of Statement Use (/vow, /concur, /disagree):
  /vow We shall kill him next time       Displays as
  Vanadia vows, "We shall kill him next time"
  You concur, "We shall finish him off fast"
  Irridia disagrees, "I think we need another Healer to have a chance"


ChatBlade Copyright © Flex Dolphynn