Realm Speak FAQ

I'm starting this FAQ, because I feel that Realm Speak has matured enough to warrant one. I'm starting it off with a topic list, and a list of several of the questions I've fielded recently. I plan to add much much more, but I definitely welcome additions/input to this Wiki. If there is a question you have, add it here. If there is a question you had, that you figured out, post the answer.

The only thing I ask, is to stay away from questions/answers about the Magic Realm ruleset. That should be a FAQ on its own, and doesn't really help the Realm Speak beginner.

Thanks,

Robin


Topics

  • 1.0 - Game Play
  • 1.1 - Day Actions
  • 1.2 - Combat
  • 1.3 - Spell Casting
  • 2.0 - Networking
  • 2.1 - General
  • 2.2 - Running RealmSpeak
  • 2.3 - Firewalls
  • 2.4 - More About Routers
  • 3.0 - OS Troubleshooting
  • 3.1 - Windows
  • 3.2 - Mac OSX
  • 3.3 - Linux

1.0 - Game Play

1.1 - Day Actions

1.1.1 - How do I view the other side of a tile on the map?

Hold SHIFT down, and move your mouse over the tile of interest on the map.

1.1.2 - I hired the Lancers and moved the Druid away from the clearing. How can the Lancer underlings follow LHQ?

Go to the hireling panel on the Druids window (2nd tab on the right). Select the underlings, and press the "Assign Underlings" button. Choose the Lancer HQ.

Remember:

  • You can only do this during Birdsong
  • The underlings can only be assigned to follow a character or hired leader
  • The character or hired leader must be in the same clearing during birdsong (ie., you can't move to a clearing, and then assign them in the same day)

1.1.3 - What's the difference between the Gold listed on the top left and the Gold listed in the Victory Requirement section?

The gold listed on the top left, is the total amount of gold you are carrying. The gold in the VR section represents your total gold, minus the value of your starting equipment so you know how much you will be credited for at the end of the game. Remember that your starting value is equal to the value of all your equipment, plus 10 gold.

1.1.4 - I just looted a treasure. How do I activate it?

In the character window, there are several tabs across the bottom. To activate a treasure, you have to click on the treasure tab (picture of a treasure chest). There you will see activated treasures (left), and inactive treasures (right). To activate a treasure, select it on the inactive side (click once with the mouse), and then press the "Activate" button (across the bottom). If you are looking at a non-character (like a hired leader), you will not be able to activate a treasure, because this is only allowed for characters.

1.1.5 - The activate button is disabled, even when I selected a treasure? What is going on?

The rules of Magic Realm state that you can only rearrange belongings during your turn, or during rounds of combat. If the activate button is disabled, you are likely still recording your turn in BIRDSONG, and thus cannot activate/deactivate items in your inventory. There is a house rule ("Birdsong Rearrangement") in the settings dialog that will allow you to turn this restriction off.

1.2 - Combat

1.2.1 - How do I target an opponent that is on another sheet? Where the heck is that Giant?

On the right hand side of the combat window, is a list of all combatants that are on their own sheet. If the opponent you are looking for is listed there, select the combat sheet, and then you should be able to click on the sheet owner. If the opponent is not visible, then it probably is an attacker on another sheet. Simply click through each sheet until you find the opponent you are looking for, and target them that way.

1.2.2 - How do I charge another character?

During the Charge/Deployment phase of combat, you need only click the "Charge Character" button, and a list of characters you can charge will appear. Select the character you wish to charge, and then you will need to choose an appropriate MOVE chit (see the rules for more details about charging).

1.2.2 - How do I look at the back of monsters during combat?

1.3 - Spell Casting

1.3.1 - Why isn't the Cast Spell button enabled? Why can't I cast a spell?

You need three things to be true before you can cast a spell:

  1. You must have a spell to cast that isn't already active. You cannot recast an inert permanent spell, for example. (note: there is an optional rule in Magic Realm that actually allows this, but Realm Speak doesn't handle it just yet)
  2. You must have a source of color magic that coincides with the spell you are trying to cast. This source of color can come from an enchanted color chit, a treasure item with a constant source of color magic, the Chapel (WHITE), or from the calendar (every 7 days).
  3. You must have an available incantation that coincides with the spell you are trying to cast. Incantations can come from unenchanted/active MAGIC chits, artifacts, or books. Remember too that artifacts and books can only be used once per evening, so if you already used a spell from one, all of the remaining spells will be unavailable until the following evening.

1.3.2 - What Cast Spell button?

The Cast Spell button is on the combat frame, during the encounter phase. If you end a turn in a clearing with no enemies (other characters, monsters, natives), and your "Daily Combat" character option is disabled, then the combat frame wont even pop up, and you never have a chance to cast your spell. This can be a problem if (for example) you are the White Knight, and you are trying to cast "Make Whole" to fix your armor, and heal your wounds. If you are a spellcaster of any level (even the White Knight), I recommend leaving the "Daily Combat" checkbox checked, so that the combat frame is available every day.

1.3.3 - Where can I get more information about the spells?

Double-clicking the spells in your character spell window will bring up a dialog that has lots of information about the spell itself, including the text from the rulebook, and the target/caster of the spell.

2.0 - Networking

2.1 - General

2.1.1 - How do I play a game with my friends over the internet?

Under the "Network" menu, choose "Host a new game", and complete the option dialog that pops up, choosing a password you'll remember. After a few moments, the game will start as usual, with the following exception: it is listening for incoming connections. Inform your friends of your IP address, and optionally the port you chose, if you modified the default. Your friends will choose "Join game" from the Network menu, and will be required to enter an IP address and a port. They will also choose a name, and must enter the same password you used when you started. If the information is correct, they will be able to connect to the game, and will immediately (few seconds) have the game pop up. If they are unable to connect, check the IP address, port number, and password. If you have a router, see the section on firewalls below.

2.1.2 - How do I find my IP address?

Unfortunately, there isn't a single reliable way to do this. If you are connected directly to the internet (no firewall/router), then you can go to the command line, and type "ipconfig" to get your IP Address. If you have a router, this address is merely the address of the router (usually something like 192.168.1.100), and completely unhelpful to your friends. Instead, you'll need to log into your router and get the information from there. Since there are so many types of routers out there, I cannot really provide details on how to do this for every router. There are several websites that are devoted to telling you your "real" IP address, for example http://www.whatsmyip.org/.

2.1.3 - I've done everything right, but people still cannot connect to my server!

Make sure that the main Realm Speak window has "Hosting" in the title bar. If you started the game locally by mistake, the title bar will read "Local", and is the reason for your problem. Another possibility is that you haven't setup your router correctly to allow communication through the port you are using. See the section on Firewalls below.

2.1.4 - How do I restart a networking game?

Under the "Network" menu, choose "Load a host game".

2.1.5 - I restarted a network game, but my friends aren't seeing their characters from last time!

Realm Speak tracks characters by player name, so if anyone is logging in under a different name, the character panel will not be loaded on their client. The host can resolve this problem by transferring the character (see below). Another way this can happen, is if the host opens the save game first as a local game. By default Realm Speak transfers ALL characters to the host when opened locally. If the host then saves the game (directly or via autosave), the character assignments stick. The solution here is also to transfer the characters. You might ask...

2.1.6 - How do I transfer a character from one player to another?

Only the HOST is allowed to transfer characters, so the following only applies to him/her. On the character list window (upper-left, if you haven't moved things around), there is a button with a blue arrow on it. Select the character you want to transfer, and press the blue arrow. You are given a new dialog asking for a player name. Type the name of any character (case-sensitive), and the character will immediately transfer to that player. This function can also be used to take over a character for someone that is leaving, or has fallen off the network. If the character doesn't seem to belong to any player, you may have incorrectly typed the player name, and should transfer again. (yes, this is clumsy, but that's how it is for now).

2.2 - Running RealmSpeak

2.2.1 - I'm getting an error: "Windows cannot find javaw..."

You don't have Java installed. See section 3.0 below.

2.2.2 - I'm getting an error: "Could not find the main class. Program will exit."

This happens when you double-click the RealmSpeak.jar file. Though Sun does provide a mechanism by which java applications can be launched by double-clicking the jar file, I have opted not to use it here. Why on earth would I do that? You see, Realm Speak requires more than the default of memory provided by launching from the jar (64 MB). The individual tiles, the background drawing, the pieces, the logic: it all takes up memory. To keep from running into the game ending "Out of memory" error, I need for Realm Speak to allocate more memory for itself at the beginning. As far as I know (and I've done my research), the only way to accomplish this is with a script. That is why you must launch the game by clicking on run.bat (Windows XP) or the MacRealmSpeak applescript (Mac OSX), which is contained in the sit file that comes with the application.

2.2.3 - I've checked everything in 2.2.2, but I'm STILL getting this error!

I've found recently that this error can be generated if you are using an older version of Java (version 1.4 or older). What's that you say? You know for sure that your Java install is current? You might be surprised to learn that though your Java install is current, there may yet be an older version of Java lurking on your system, and your system is defaulting to that older version when trying to run RealmSpeak. Let's see what your system is really running:

  1. Click on your START button (lower left hand corner)
  2. Choose "Run..." from the menu
  3. Type "cmd" without the quotes and press the OK button (you'll get a DOS window)
  4. type "java -version" without the quotes, and press ENTER

If you don't see Java version 1.5 or better, then you have a problem. One way that this can happen, is if your system PATH variable is modified by another program to include directions to the older Java, and the directions to the newer Java are never getting read.

Specifically, I've seen this happen time and again with the Oracle installer. Depending on the version of Oracle you install on your system, the installer will put Java 1.4, 1.3, or in some cases (gasp) 1.1.8!! What you want to do, is look at your PATH variable:

  1. Click on your START button (lower left hand corner)
  2. Choose "Run..." from the menu
  3. Type "cmd" without the quotes and press the OK button (you'll get a DOS window)
  4. type "path" without the quotes, and press ENTER

For example, my own PATH statement looks like this:

C:\Program Files\CVSNT\;C:\Program Files\Java\jdk1.5.0_10\bin\;C:\svn-win32-1.4.3\bin\

Yours will likely look a lot longer than this, but the point I'm trying to make is the same. Notice that my path contains directions to three different apps: CVSNT, Java, and SVN. Suppose it looked like this instead:

C:\Program Files\Java\jdk1.4.2\bin\;C:\Program Files\CVSNT\;C:\Program Files\Java\jdk1.5.0_10\bin\;C:\svn-win32-1.4.3\bin\

Even though Java 1.5 is in the path, the processing logic sees the "bin" folder for the older version of java 1.4, and uses that instead. Ouch! Of course, all you need to do to fix this problem, is to change the PATH variable so that your newest version of Java is the only one, and all will be well. How do I do that, you ask? I did a quick Google search for "win xp changing path", and found this.

2.2.4 - I'm getting an error that includes this strange word: "ClassNotFoundException"

This happens because Java is not finding the RealmSpeak.jar file. How can this happen?

  • Your script (run.bat or MacRealmSpeak) is not sitting in the same folder as the RealmSpeak.jar file.
  • You've modified the script to change directories. Don't do that.
  • You deleted RealmSpeak.jar, thinking it was unneccessary.

2.2.5 - What's the difference between run.bat and runHere.bat?

run.bat will run RealmSpeak, but will store all your configurations and Hall of Fame on the computer you are running it on. It puts that info in the user folder, which on Windows XP is:

    C:\Documents and Settings\Rwarren\RealmSpeak\

runHere.bat will run RealmSpeak, but will store all your configurations and Hall of Fame in the same folder you are running the program from. I added this file to allow people that wanted to play RealmSpeak off of a USB Drive, without cluttering up the computer they were using (like your work computer).

2.3 - Firewalls

2.3.1 - I have a router. How do I set it up to allow me to host a game?

When you host a game on Realm Speak, you specify a port. By default, this port is 47474. That number is arbitrary, and can be changed, though I've never had any trouble with it. You'll need to make sure that that port is open in your router, which by default, it likely isn't. Open your router admin page (details are beyond the scope of this FAQ), and look for "Port Forwarding" or "Gaming". You should be able to locate a section that allows you to specify a port or range of ports, as well as an ip address. In short, you want to make port 47474 forward to your local machine (something like 192.168.1.100). Your local machine address should be visible in the admin page, but if not, you can always type "ipconfig" on the command line to get this information.

Unicom 801.11g (WEP-72104G-1) link

[McKnight added]: On my el cheapo router, a Unicom 801.11g (WEP-72104G-1) setting up the router for Realm Speak requires two things:

  1. Under ACCESS > Virtual Server you need to identify Port Range 47474-47474 with the Local IP on your router (192.168.1.xxx) where xxx is the IP address that the router assigns to your computer. (Check with "ipconfig.")
  2. Under ACCESS > Special AP (Special Applications?) you need to identify the Trigger Port Range (47474-47474) with the Incoming Port Range (47474-47474).

LinkSys WRT54G link

  1. Log into your router by opening a browser, and going to URL 192.168.1.1 (login as admin/admin if you've never done it before)
  2. Go to the "Applications & Gaming" tab.
  3. Find an empty row, and fill in the boxes:
    • Application - Enter a name for your entry like "RealmSpeak"
    • Start - Enter the port you are using. If you haven't changed it in the game, you are using port 47474
    • End - Enter the same as Start (47474)
    • Protocol - Select "Both"
    • IP Address - Enter the forwarding address of your computer (probably 192.168.1.100 if you have no other computers on your router).
    • Enable - Check the box
  4. Click "Save Settings" button

2.3.2 - I have a router. How do I set it up to join a game?

I'm fairly sure there is nothing special you need to do to join a game.

2.4 More About Routers [added by mcknight]

Here is the content of a Boardgamegeek thread related to a player who was having trouble connecting to a host from a computer on the same router.

2.4.1 Router:

My router is a Unicom 802.11g Model No. WEP-72104G-1. I previously had the earlier "Rev. 2" model and had a terrible time with having to restart the router once or twice a week. I finally called Unicom, and they gave me a return authorization number for the new "-1" model, which has worked pretty well. With other routers, the procedure will be different, but what you have to do will be similar.

2.4.2 Router Setup for Host:

I have found that I need to do two things with the router setup to be able to host a Realm Speak game.

1) I have to identify the Realm Speak port (default port=47474) with my internal LAN IP address (192.168.1.108 in my case). I do that with a tab called "Virtual Server" in my router setup. The LAN server is my local LAN IP address (192.168.1.108), the public port and private port are both the Realm Speak default (47474), and the protocol is TCP (although Robin Warren uses the "Both" option - both TCP and UDP - on his Linksys router). If it requires a "Port Range" (two fields for the port), use 47474-47474.

2) I have to go to a tab titled "Special AP" - presumably for "Special Applications." Other routers may have this under "Games" or something like this. In this tab, I have to set up a "Port Trigger Range" as 47474-47474 and the "Incoming Port" as 47474. Again, I use the protocol as TCP, but "Both" may work as well. I assume that what this is doing is identifying an incoming port with the actual game port.

Robin Warren's Linksys server allows both of these steps under a single tab called "Applications and Gaming." Other routers may have different terminology, but as Robin wrote me: "It's usually called 'Port Forwarding', and almost always has a Start Port, End Port, and IP Address to forward to."

This process above is what I had to do to my router to enable players from outside to join a game. I didn't have to change anything enable a computer on the same router to join the game. To start the game, fire up Realm Speak and, under the "Network" menu, click the "Host New Game" item, select your options, including port (leave it set to the default 47474) and password (the default is "pass"). The default host name is "Game Master" - change it at your own risk.

2.4.3 Client Login:

You don't have to do anything special to the client computer whether you are logging in from outside the LAN or from another computer on the same router. Start Realm Speak, under the "Network" menu select "Join Game" and then fill in the "IP address," "Port," "Name," and "Password" as below:

IP Address: If you are logging in from outside the LAN, use the outside (WAN) IP address, (for example, 76.19.xxx.xxx - you should find this somewhere on the host's router setup screens). If you are logging in from a computer on the same router, this will be the LAN IP address (192.168.1.108 in my case). If you're not sure, use Start > Run > "cmd" to open a Command Window on the host, and then type the command "ipconfig /all". This should identify the host's local IP address.

Port: The default is 47474. No reason to change it that I've found.

Name: This is the name that you will be identified in the game, "Steve M" for example.

Password: Use whatever the host used. The default for Realm Speak is "pass".

2.4.4 Trouble Shooting:

If you've done everything correctly, the host should see the client logged in by selecting the "Window > Show Connections" menu item. The client should get a message "Connected - Receiving Data" followed by "Data Loaded - Building Map View." Once the map appears, you're in!

When the client gets hung on the "Building Map View" step (no map appears), I've found that it is related with the second part of the host router setup - the identification of the "Trigger Port Range" with the "Incoming Port" or maybe the protocol selected.

I've used this process to host games with players from three continents, and the game plays very well. The "Trade/Share" interface is still buggy, and the program seems to hang about once every three or four times we try this. My advice is to always let the moving player initiate the "Trade/Share" activity before he pushes "Play Next" at the beginning of any phase of his turn. (The rules actually say that only the moving player can Trade or Share items or information and only at the beginning of a phase of his turn.) When the moving player initiates a trade/share activity, he gets a window to select who he will trade/share with and then a window should open in the other player's screen. Never let two players push the "Trade/Share" button at once!

Even using these precautions, we sometimes have the game freeze up on us in the middle of the Trade/Share activity. In this case, you have no choice but to shut the game down, restart, and have the host select "Restore host from autosave." If the clients rejoin the game with the same player names, they should automatically take over their characters starting at the beginning of the day in which the crash occurred. If you leave the "Autosave" option on, you shouldn't lose more than one day to any crash.

The other thing that sometimes happens is that the host router will change the LAN IP address of the host computer. In this case, your have to go back through the router settings to re-identify the 47474 port with the right local IP address. If this happens a lot, you may want to go into the Windows Control Panel and, under Network Connections > Local Area Connect > Properties > TCP/IP > Properties, set a "Fixed IP Address" somewhere in your router's valid IP Address range. You'll need to identify the "Gateway" and "DNS Server" which you can find by typing "ipconfig /all" in a Windows Command window as before. I found that it helped to select a LAN IP address that was reasonably far down in the address range - away from the IP addresses that the router assigned to other computers on the LAN.

3.0 - OS Troubleshooting

3.1 - Windows

3.1.1 - Where do I get the latest Java install for my Windows XP machine?

As of 1/17/2007, here are links to Java 5 and Java 6.

3.1.2 - How do I launch the game?

Double-click on run.bat to play Realm Speak. To play a simulated battle, double-click on battle.bat.

3.1.3 - 64-bit versions of Windows have a different default path for javaw:

c:\windows\SysWOW64\javaw -mx384m -cp mail.jar;activation.jar;RealmSpeak.jar com.robin.magic_realm.RealmSpeak.RealmSpeakFrame %1

I'm running Windows 7 and just downloaded Java 6 (32 bit). I get the message "cannot find javaw" when I double click on run.bat and then tell the computer to run the program. I also get a c:\Windows\system32\cmd.exe window with the following text: " c:\users\my name\Realmspeak\Realm Speak Jar_v1.0.10.0>echo off " If I single click on the run.bat file, I do get the default path above as a preview, but don't know how to use this information to get Realm Speak to run

3.1.4 - Windows 7 installation

To successfully install Realm Speak on Windows 7, you have to edit the run.bat and runhere.bat files as follows:

run.bat:

echo off
"C:\Program Files (x86)\Java\jre6\bin\javaw.exe" -mx384m -cp mail.jar;activation.jar;RealmSpeak.jar com.robin.magic_realm.RealmSpeak.RealmSpeakFrame %1

runhere.bat:

echo off
"C:\Program Files (x86)\Java\jre6\bin\javaw.exe" -Duser.home="." -mx384m -cp mail.jar;activation.jar;RealmSpeak.jar com.robin.magic_realm.RealmSpeak.RealmSpeakFrame %1

If you like, get rid of echo off altogether: it's not really needed anyway. If you are still having problems, try adding a pause line like this:

run.bat:

"C:\Program Files (x86)\Java\jre6\bin\javaw.exe" -mx384m -cp mail.jar;activation.jar;RealmSpeak.jar com.robin.magic_realm.RealmSpeak.RealmSpeakFrame %1
pause

What this does, is keep the DOS window open so you can see what the error is. Then you can send a screenshot to the developer (contact Robin through his Realm Speak contact page ) and he can help.

3.2 - Mac OSX

3.2.1 - Where do I get the latest Java install for my Mac/Power PC?

As of 1/17/2007, here is the link to Apple Java Downloads.

3.2.2 - How do I launch the game?

Unpack the MacRealmSpeak.sit file. Double-click MacRealmSpeak to play Realm Speak. To play a simulated-battle, double-click on MacRealmSpeakBattle.

3.2.3 - Why do I get a ClassNotFoundException error when I try launching Realm Speak with the apple scripts?

This error can happen when you have a finder window open, but it is not the window that actually contains the Realm Speak.jar file. Apparently the apple script that starts the program points the terminal to the top most open finder window, if no window is open then it returns an error. If the wrong window is open then the script has no idea something is wrong, but java chokes.

3.3 - Linux

3.3.1 - How do I launch the game?

At the time of this writing, there is no provided shell script, so you'll have to create one of your own. (Note: if someone wants to send me a shell script that will work on any Linux machine, I'll include it in the next release) Go to the linux prompt, and make sure you are in the same directory as RealmSpeak.jar. In other words, if you type 'ls', you should see RealmSpeak.jar in the resulting directory listing. Once you are in the correct directory, type the following:

java -classpath RealmSpeak.jar -mx256m com.robin.magic_realm.RealmSpeak.RealmSpeakFrame

If you prefer, add this text to a shell script, and then run it that way.

3.3.2 - Is there any other way?

Here are some step-by-step instructions from a RealmSpeak/Linux user (Tim H):

  1. Download JRE (or JDK) from Sun's homepage
  2. Set an alias from java to /home/tim/javawhatever/bin/java (rather do it cleanly by setting the correct path etc.)
  3. Download RealmSpeak
  4. Change run.bat to runlinux.bat
  5. runlinux.bat (just a single line) looks like:
    java -mx128m -classpath RealmSpeak.jar com.robin.magic_realm.RealmSpeak.RealmSpeakFrame
  6. Make the script executable:
    chmod 744 runlinux.bat
  7. Start RealmSpeak:
    ./runlinux.bat