Improvisation is important

Barbara and I are now in Boston for a business trip of mine, so what do we do on our first day in town?  Play D&D online with our friends in Florida, of course!  Hey, we’re all on the same time zone now, so we might as well.

At 11:00 AM, we all met online to play.  I called Zach and Lane via Skype, which worked great.  My maps in Gametable were ready to go, so I loaded up a map and hit Host.  I checked my IP address and told it to Zach… and realized that we can’t use Gametable when the host doesn’t own the internet router that they’re connecting to.  As you may recall from my earlier article about connecting to your players via Gametable, I had to go into my router settings and forward internet traffic that came to my IP address to my computer in particular, rather than to Barbara’s computer or some other device on our network.  Since I didn’t own the hotel router that I was connecting to, I couldn’t go into its settings to forward internet traffic to my computer.  Zach and Lane could host on their computer, but that wouldn’t work since they’re not the DM.  I could send them the complete map with all of the monsters revealed and everything, but that’s a less fun experience for them.

So, I improvised.  Back in the earliest days of my blog, I thought we were going to be using OpenRPG rather than Gametable for running our online games.  Gametable is far easier to build maps in, but OpenRPG is easier on the networking side.  As long as everyone can connect to the same server, OpenRPG is good to go.  So, we could play via OpenRPG – but all of my maps were in Gametable.  What to do?

I started by asking Lane and Zach to give me 20 minutes to get everything set up.

  • I then opened up Gametable, set the view to show the first area of the Keep on the Shadowfell (the entry chamber guarded by goblins) and took a screenshot.
  • I pasted the screenshot into Photoshop Elements.
  • I trimmed the canvas so that the top left corner was on the top left corner of a grid square, and the same for the top right.
  • I resized the map image so that the grid squares were 64 pixels wide (that’s where they started, but I had to zoom out in order for enough of the map to show up on my screen shot).  In order to do this, I counted the number of squares across in the image, multiplied that number by 64, and resized the image (keeping the proportions constant) so that the width equaled the number of squares times 64 pixels.
  • I erased the areas of the map that weren’t part of this first encounter.
  • I saved this image file on my Dropbox public directory (more on Dropbox in a later post).
  • I opened OpenRPG.
  • I set the General property of the map so that the map was plenty large enough for my new image.
  • I set the background color of the map to gray (not necessary, but nice).
  • I set the grid size to 64 pixels and made the grid lines invisible (since my image file had the grid lines from Gametable).
  • I loaded my new map image as the background, using the public URL from the Dropbox directory.
  • I also copied all of my Gametable character and monster pogs to my Dropbox public directory so that I could load them into OpenRPG. (I suppose I could actually do the same with environmental pogs… hmm…)

Once I had this set up, I opened a new room on an OpenRPG server, called Lane and Zach back and told them how to connect to my room in OpenRPG.  I assigned them the role of Player, and they could then move their minis around the map.  Huzzah!

The map image I created is below.  It’s messy, because I had to manually erase the parts of the map that I didn’t want the players to see, but that’s okay.

Entry chamber

We played through the entry chamber and the torture chamber (which I created in the same manner and had to load as a separate background image when they went into that area), and I have to say that it all went pretty well.  I had to manually add each monster as they encountered them rather than revealing them from the private map as I would have done in Gametable, but that was easy enough to do.

It’s worth mentioning that the party ripped through the bad guys like a knife through butter!  Zach’s rogue successfully stealthed down the stairs and got a sneak attack with a sling on the first goblin warrior, then rolled the highest initiative and finished the warrior off with more sneak attack damage before he had a chance to warn his friends.  I had already removed the pit trap and the swarm of rats from the encounter in order to level it down for a party of three PCs, and I was planning to remove one of the goblin sharpshooters as well.  But since the party was handling everything so skillfully, I left the second sharpshooter in the battle, and the PCs had no trouble at all.  The torture chamber was a little more challenging, but it was awesome when Barbara’s swordmage shoved a goblin into the iron maiden and slammed it shut on him to start the battle.  I removed just one goblin from the battle, and that was all I did to level it down (well, I also forgot about the daily power of the hobgoblin’s magic armor, but oh well).  After the two battles, we had played for two and a half hours (including technical difficulty time) and decided to call it a day.  The party did decide to release Splug, cautiously, which should be interesting!  Best of all, they were still excited about the game and want to get together tomorrow evening to continue!  I’d call that a success.  They were within a few XP of leveling up, so I awarded them a few extra points for good roleplaying and general cool moves so that they could begin tomorrow with level 2 characters.

Since I’ve now had a little more time to prepare to run the game in OpenRPG, I’ve figured out the fog of war function and decided to use it for tomorrow’s battle.  I created an image of the entire first level of the Keep on the Shadowfell (even though there’s no way the party will get to all of it tomorrow), loaded it into OpenRPG, and used the fog function to hide everything that the players haven’t discovered yet.  This is a little imperfect, as Barbara can see my screen (we only have the one laptop here in the hotel room), but that’s okay – she’s good at playing based on what her character knows rather than what she as a player knows.  Tomorrow should be even smoother!

Success with networking

As I mentioned in my last post, I first thought that OpenRPG would be the tool that I would use to run my online D&D game, but then discovered Gametable, which I absolutely loved.  The only problem with Gametable is that I couldn’t connect my wife Barbara’s computer to mine with it, which I could easily do with OpenRPG.

Fortunately, one of the players in the game, Zach, is a computer pro and was able to help me set things up so that I could host a game that both Zach and Barbara could connect to.  (We can presumably connect more people, too, though we haven’t tried yet.)  Let me share my new knowledge with you.

First, I’ll say a few words about connecting to your players via OpenRPG (since I never addressed this in my earlier posts).  In this program, you start by connecting to one of the servers out there for OpenRPG (you could also run your own server, but that’s beyond my needs).

OpenRPG Server Menu

To start networking, go to Game Server - Browse Servers

One you’re browsing the servers, you’ll want to pick one and join its Lobby. I’ve tried creating a room before joining a lobby, but for some reason it didn’t seem to work properly.

OpenRPG Join a Lobby

Double click a server on the left, then click on the Lobby on the right

Once you’re in a server’s lobby, you can create the room for your game at the bottom right corner of this window.  Give it a name, and then a password if you wish (this keeps other people from taking over the room, though I’m not sure I’d be too worried about that) and an admin password – then click Create Room.

After that, you need to tell your players what server you’re on and what room you’re in (and the room password, if you’ve assigned one).  They’ll need to go to the Lobby, then click on your room and “Join Room.”  They’ll show up on the Player List in your room, and you can right click on their names to assign them the role of Player, which will let them interact with their minis.  By default they will be Lurkers, who can’t affect the game.  Only the GM (the person who started the room, or anyone who is assigned the GM role) can do things like changing the background to bring up the next map.

So, connecting to other players via OpenRPG is easy.  With Gametable, it could be a little bit harder.  I’ll lay out my experience, though yours may vary depending on your setup.  I’m using a Dell laptop running Windows XP.  Barbara has a Dell desktop, also running XP.  We have cable internet service, which comes out of the wall and into our cable modem, then into a Netgear wireless router.  From there, an Ethernet cable connects to Barbara’s computer, while my laptop connects to our secured network wirelessly.

The reason I go into all of this detail is that I had to mess with some settings to make everything work properly.  First, let me explain the steps within Gametable to start an online game.  If you’re hosting, start by going to the Network menu and selecting Host.

Gametable Network Menu

To host a game, go to Network, then Host.

From here, you’ll be prompted to enter your name, your character’s name, a password (entirely optional – I don’t think I’ll bother) and a port (I use the default of 6812).

Gametable Host MenuEasy enough.  For your players to connect to your game once you’re hosting it, they’ll go to the Network menu and choose Join, where they’ll be prompted with this screen:

Gametable Join MenuYes, it’s the same as the Host screen, except it’s asking for the host address.  As the host, you’ll have to tell your players what your IP address is.  The simplest way to find this is by going to http://whatismyipaddress.com/ (pretty obvious, I know).  It’s entirely possible that this is all that you’ll need – your players will enter the IP address you tell them, they’ll join your game, and you’re off and running.

I had two issues to deal with.  First, and I’m not absolutely certain that I had to do this but I thought I should mention it, I opened port 6812 in the Windows Firewall.  This involved going to the Control Panel, opening Windows Firewall, clicking the Exceptions tab, then the Add Port button.  I named the new port Gametable and had it open port 6812.  Maybe that port was already open, maybe not, but it definitely is now.

Firewall SettingsNext, I had to mess with some settings on my router.  This may not apply to most of you, but in my case I had two router issues to deal with.  First, since there are multiple devices on this IP address (including my computer and Barbara’s computer), I had to make sure that anyone connecting to this IP address would be routed to my computer.  Second, I needed to figure out how to have Barbara’s computer connect to mine, since they have the same external IP address.

I’ll take the second issue first, since it helped me address the first one.  It turns out that my computer has both an external IP address and an internal IP address.  The external IP address is the one other computers on the internet would use to connect to me, while the internal IP address is what the router assigns to my particular computer among the devices in the house.  To get the internal IP address, I went to the Run menu in Windows and typed cmd to bring up a command prompt (ah, the good old days of DOS – such memories).  From that prompt, I typed ipconfig.  This brought up information showing me, among other things, my internal IP address.

Running IPConfig

The steps I used to get to my internal IP address - click to enlarge

Now that I know my internal IP address (192.168.1.5), I could enter this into Barbara’s Gametable program to connect to my computer – success!

In order to get computers on the internet to connect to my computer, I needed to set things up so that anyone connecting to my external IP address would be forwarded to my computer and not Barbara’s, which meant that I needed to change some router settings.  To get to the router settings, I went to 192.168.1.1 in my browser and entered my login and password information for the router (I’m very glad that I remembered to write this down when I set up the router!).  From the main router settings menu, I clicked on “Port Forwarding / Port Triggering.”  On the next screen, I clicked Add Custom Service, then set things up for Gametable with the appropriate port (6812) and internal IP address to forward that port to (192.168.1.5).  Voila!

Router SettingsThis might sound like a lot of effort, but honestly, once I knew what I needed to do it hardly took any time at all.  And the upshot is that now I can use Gametable to host games!

Since it looks like I’ll  be abandoning OpenRPG before I even got a chance to really use it (which, I’ll admit, makes me feel a little bit sad somehow), I’ll shift to talking more about Gametable in future posts.  It’s extremely user friendly, so I doubt if I’ll need as much detail on the basics as I provided for OpenRPG.  My friend Zach, who helped me with the networking issues, got a chance to try out Gametable and seemed impressed.  I think this is going to be a winner!