TTopRPG 2.0
Welcome
to my TTopRPG 2.0 page. Here, you'll find links for updating your machine
to run TTopRPG 2.0 as well as the download EXE.
Click
to find latest version
What
is TTopRPG?
TTopRPG
is a free virtual tabletop that can be used to play various RPG's online using
a PC with XP or Vista (or a Mac running a Windows emulator). I designed it
around the minimal utilities I considered necessary to run an RPG game. It
isn't yet in an officially released form, as I continue to tweak, rearrange
and add new functions as I find them necessary. I primarily use it to run
DnD 3.5 games.
Here's
what the running application looks like from the DM's side. This screenshot
uses the map from Paizo's free GameMastery
module D0 - Hollow's
Last hope. The PC portraits are the iconics they featured in their first
Pathfinder Adventure Path, Rise
of the Runelords.
(Click for larger image)

Requirements
TTopRPG
2.0 runs using the .NET 3.5 framework and was developed using Visual C++ 2008
Express Edition. It's expected to run on Windows XP and Vista (no support
for Windows 2000 at this time, even SP4). Currently, it uses GDI+ to render
its images, but I'll be updating eventually to OpenGL or DirectX.
It
is apparently also possible to get this application working on Mac OS X 10.5.4
using the Parallels virtual Windows environment. I haven't seen this myself,
but the user said it works well. So, bonus!
Caution:
I've had one report of an XP machine that still failed to run my app even
after running the 2008 Redist and .NET 3.5 installs. I have also read reports
of other machines having more severe problems attempting to install the packages.
I assume these circumstances are rare, but I thought it only fair to warn
you. As with anything, installing these are at your own risk. But they should
be reasonably safe, since Microsoft provides them with the intent to update
XP and Vista.
Updates
To
run the program, you'll need to update your machine to run .NET 3.5 as well
as acquire the VS 2008 distributable package:
NOTE:
These are now Service Pack 1 versions. If you already installed the older
versions, you may not need these, as I have tested the new application with
the old versions of these updates and the program still ran fine. However,
if you encounter strange behavior, you may want to go ahead and install these.
Visual
C++ 2008 Redistributable SP1 Package (required) - usually installs quickly
.NET
3.5 framework SP1 (required) - This can be a longer install - 52 MB download
plus up to ~25 minutes of update time with a reboot, depending on the overall
speed of your PC/laptop. I recommend you close all other apps while it installs
(possibly including AIM), since it may pause during the install and ask you
to do so anyway. It starts as a small EXE that you execute, which then connects
with another server to download the necessary files. One user from Mexico
reported that this application repeatedly failed to connect to the download
server, preventing him from updating. I will report a workaround here when
one is found.
As
of a latest test, the required packages to run TTop will NOT install on Windows
2000, even SP4. The user I spoke with couldn't get the VC install or even
.NET 2.0 SP1 installed after updating to Windows 2000 SP4.
After
you get the required packages installed, you may want to run Windows Update
and grab any latest files your machine might need as a result of installing
these packages.
When
you're finished updating, you just need the single TTopRPG 2.0 EXE to run
the program. Make a folder for it, put it inside, and you're set to go.
Here's
the app: TTopRPG.zip (200KB) (v 0.99.026, 11/18/2008
4:06pm)
Just
unzip it into an empty folder and run it from there (or create a shortcut
for it, just make sure its starting directory is the one you unzipped the
file to, since all the campaigns and graphics will be stored there). I DO
NOT recommend running it from inside the ZIP file. The program will work,
but the files downloaded from the host will end up in a temp folder somewhere,
and it's unlikely that running it again from the ZIP file will allow you access
to those files, so everything will be downloaded again. Extract it to its
own folder!
WHEN
UPDATING AN EXISTING EXE: Usually all you need to do is make sure the new
EXE from the zip file overwrites the older EXE in your folder. If you are
concerned about possible data loss, then I recommend you zip up the ENTIRE
folder (campaigns, portraits, old EXE and all) before attempting the update.
That way, if something goes wrong, you'll have all of your old data and old
version of the program. I usually try to load old campaigns with my latest
version to make sure it doesn't mess anything up. But I can't be held responsible
for user error, and using TTop is at your own risk.
Here
is a sample campaign that illustrates the basic ideas behind setting up a
campaign: Sample 1.
Unzip this into the campaigns folder of the TTopRPG folder (you may
have to run TTopRPG once to generate the campaigns folder). The Sample
1 Details.pdf file contains the details of the campaign itself. You should
have the latest version of TTop before loading this campaign.
No
portrait or map graphics are provided with the application. Eventually I will
provide some sample graphics (free to use, since they are mine) and a campaign
that will help to introduce you to the app's functions.
NOTE:
For testing purposes, you can run a single host and single client using the
same exe. But DO NOT run two hosts or two clients from the same folder, or
file conflicts will occur and one app will likely bomb out!
If
the program fails to run at all, the problem could be a number of possibilities:
- If you get
an error saying the application failed to start because its configuration
is incorrect, then it's likely you still need to properly install both the
VC 2008 Redistributable package and .NET 3.5. See above.
- If the application
simply refuses to run with an exception error, there is another problem that
at this point is beyond my control. I've run into this problem a couple of
times on some machines and I believe I've fixed the problem. Recent experimentation
has revealed that it is related to some machines immediately calling the SizeChanged
routine for the main form once it is initialized with all its controls. The
SizeChanged routine adjusts all the controls as the form resizes, including
an override for the chat entry control to allow up/down recall of what you
type. This control isn't there yet when these machines call SizeChanged immediately,
so the application would crash.
- I recently
upgraded my 2008 Express development environment to Service Pack 1. I tested
the newly compiled application on a machine with the original VC++ 2008 and
.NET 3.5 framework, and everything appeared to work fine. However, if you
get odd behavior, you may need to grab the SP1's. The new VC Redistributable
and .NET 3.5 SP1 downloads are above.
If you Host but
no one can connect:
- The application
exclusively uses port 26010. Make sure you are allowing that port through
your firewall. The application also exclusively uses TCP, but you may want
to enable both TCP and UDP through the port, just in case.
- Your anti-virus
software may also be blocking ports. Kapersky prevented this app from hosting
during some testing. Try disabling your anti-virus software or configuring
it to allow port 26010 TCP/UDP.
- Visit http://www.whatismyip.com/
to see the IP address for your machine. Provide this address to the players
to use as the connection address.
- Separate "channels"
for file downloads and game events. This means that while your client is requesting
graphic files from the host, you can still chat, roll dice, move figures and
play the game. High-speed internet users won't see much of a gain, but those
still on dialup won't have to wait for a long map download to see game events
taking place.
- Add figure
portraits and maps while you play! The application supports BMP, JPG and PNG
graphics for now. Small graphic files are preferred for all the figures. Maps
are expected to occasionally be large. Clients receive new PC portraits in
their selection screen as you add them! Extensive use of PNG and BMP files
will require longer downloading. JPG recommended mostly.
- Uses GDI+ to
render graphics. For now, no special 3D card requirements are necessary to
play, although slower machines with slower graphics cards may notice some
slowdown, especially on very large maps.
- Displays PC
portraits along the bottom row of the graphics area, showing current and total
hitpoints as well as indicators for nonlethal damage and temporary hit hoints,
and health status (color). Mousing over figures on the map itself also shows
health status without revealing hit points on creatures.
- Move figures
around the playfield to show their position to other players.
- Additional
indicators like a movement path with a distance value (supports x2 difficult
terrain movement), attack arrow, markers, and spell effect areas help provide
vital information for the game.
- Host can hide
or reveal any part of the map using a path tracer that allows any size or
shape (up to a certain complexity, more than enough for what you need).
- Clients keep
a binary archive of downloaded files for each campaign so they won't have
to request the files the next time they connect!
- Optional 5'
square grid system that is adjustable while everyone is connected.
- Figures track
name, armor class, speed, hit points (and temporary), damage (and nonlethal),
initiative modifier, visibility, and graphic for the figure's appearance.
- Sketch mode
for drawing lines on a blank map. This allows setting up on the fly maps in
case you don't have a particular map graphic ready.
- A combat tracker
allows you to advance the turn automatically. It reports a new round and expired
spell effects which you can add. It allows you to set the status of a figure
to normal, readied, delaying or out of combat (automatically skipped). It
also allows a figure to be set to go just before the current figure (to trigger
a readied action) or to go after the current one (to stop delaying). You can
also move figures in the combat order as you wish, but setting a particular
icon as the current one without treating it as a triggered action or ended
delay is not supported. Icons are displayed along the top of the map to show
initiative order.
- Icons now have
"feature" and "locked" options, allowing you to put dressing
on maps at the floor level.
- Icons now update
4 times a second on other machines when being dragged. A dragged distance
path persists on the dragged icon for 4 seconds.
- Table lookup
now supported. Here's a sample table. Place
it in the scripts folder (run the program once to see it) and call with /table
"Confusion 3.5" d100 (macro also supported). A hosted session will
use the host's files only.
TTopRPG was designed
around what I wanted in a tabletop emulator. Hit point statuses of creatures
are available at a glance, and combat tracking is fairly complete. An older
version of this application was used to track the combat involving the defense
of a keep. The fight lasted 30 rounds in total, and the application handled
it very well. The same combat was attempted using this latest version, and despite
one strange lockup which the application fully recovered from (allowing everyone
to reconnect and continue), it ran fine. As you conduct your campaign, you'll
still be required to have your own mastery of all the participants and spells,
since the application won't handle all of the deeper details for you (resistances,
damage resistance, spell results, etc.).
That said, using
the emulator will make it clear that it is very geared towards combat, and there
may be a degree of pulling people out of the roleplaying as the emulator keeps
combat variables very visible. So far, my players haven't noticed a real problem
with this, so it really depends on the users.
Other notes
Sharing your
campaign with others
If you want to
share your campaign with others, you usually just need to zip up the folder
with the campaign's name, and have others unzip it into their campaign folder.
This of course assumes that they don't have any campaigns by that name already.
A couple of important notes about this, however:
- Even though
all campaign specific monster graphics and macros are stored inside the campaign's
folder, the common Character and Monster portraits and saved Character macros
are not. So, if you plan to share a campaign with others, make sure you are
using only campaign specific monster graphics for all your icons (using the
portrait manager, Copy all the common portrait graphics you used on icons
into the Campaign Monster list, and assign all of the icons in the campaign
to use those instead). You could send the other users your portraits folder
as well to make this easier, but this will overwrite the index files in their
portraits folder, causing them to in effect lose their common portrait library!!
- In order to
share Character macros, you're probably best off just loading those into the
Character slots on the macro control in the program, then saving the campaign.
That way the PC macros will load when the other user opens the campaign.
- If you've tested
the campaign by Hosting and Connecting to it from the same folder, you'll
have archive.idx and archive.bin files in the campaign folder. Delete these
before you zip it up.
- Older versions
of TTop will refuse to load campaigns saved with a newer version. TTop will
tell you what version you need (that version or later) if this happens.
Re-using a
campaign
If you are setting
up a campaign and you plan to use it multiple times, here's how you can re-use
it:
- After you get
the campaign ready to run, Export it. It will create an Exported campaign
with the same name (you can make modifications and export it again later to
overwrite the earlier Export, but don't do this if you have started your actual
campaign!)
- Every new campaign
you want to use it for, create the new campaign from the Export
OR
- Set up the
campaign for running, but just save it off
- Every new campaign
you want to use it for, create the new campaign off from the existing one
(Copy Campaign)
Sadly, if you've
set up a campaign and have started using it in an actual session, there is no
way to restore it to its original form, short of going through every map and
changing everything back.
Dial-up users
I've tested TTopRPG
2.0 with my own secondary dial-up connection, and it seems to work fine. However,
there seems to be a repeated timing out problem, but I've added some wake-up
messages that help jiggle the connection when it happens. Usually, the connection
recovers during the second timeout.
A typical 1 meg-size
map with all relevant data usually arrives to dial-up users in about 5 minutes
with a decent 50k connection. Most maps are smaller than that.
I do NOT recommend
that dial-up users host with a large jpeg map. You have to send that map data
down to all users, and that would take a while on a dial-up hosting connection!
Sketch maps should be fine. And make sure your icon graphics are decently sized
(no larger than 10k each or so).
Current bugs
- Some machines
exhibit inadequate region rendering, meaning the fog of war (occlusions) can
appear corrupted. This is being looked into.
Coming soon
- Sketch erasing
splices line segments instead of only dealing with points (so far dealing
with only points has been enough)
- Multiple icon
selection and moving (including toggling visibility and possibly setting other
values)
Things you
might not know
- If you set
an icon's total hit points to zero, it will appear as a normal object with
no hit point status when highlighted. This works well for showing NPCs, pit
traps or corpses when you don't plan to track any damage to them.
- Making an icon
invisible is the best way to hide it from the players. Players would still
be able to highlight a visible icon that is completely hidden in an unrevealed
part of the map. Also, if your intent is to show an icon moving out of the
visible battlefield into a hidden area, trace the visible path out of combat,
but don't automatically move the icon there. Instead, make the icon invisible,
then drag it to the end of the path. This way the players know the icon has
left the area, but they can't tell where it went by highlighting.
- Hold SHIFT
to show the hp status of all visible icons (host or player)
- If you are
hosting and want to conceal an icon's drag path while moving it, hold SHIFT.
- Invisible icon
drag paths will not be visible to players (even if you make the icon visible
while the last dragged path is still there), nor will plotted paths started
on an invisible icon. When the path is partially transparent, it's invisible
to players.
- There are a
number of keyboard hotkeys on the map:
- When nothing
is highlighted:
- A places
an attack arrow
- M places
a marker
- P or
S begins a path plot
- R starts
Reveal Mode (host only)
- H starts
Hide Mode (host only)
- When laying
an attack arrow:
- Esc
will cancel it, as will right clicking
- When an
icon is highlighted:
- Double-click
will modify it
- Enter
will modify it
- A will
place an attack arrow beginning on the icon
- P will
begin a path plot with the icon highlighted (see below)
- I rolls
initiative
- F will
find it (as a player, you can highlight a PC portrait and hit F -
it will find your icon on the map as long as it's visible)
- Delete
or R will remove it (host only)
- V will
toggle its visibility (host only)
- H will
heal it (host only)
- D will
damage it (host only)
- E will
access its Effects list (host only)
- When a
marker is highlighted:
- When in
plot path mode:
- S starts
over
- Esc
or C cancels
- Backspace
or B backs up one segment
- Enter,
P or D finishes the plot
- When
an icon was highlighted at the beginning, M, space, Z or X will finish
the plot and move the icon to the end
- Holding
shift will cause the next segment to represent difficult x2 terrain
(purple)
- In Reveal
or Hide mode (host only):
- R and
H will switch modes
- D,
Enter or Esc will leave Reveal/Hide mode and return to normal
- When an
infobox is highlighted (host only):
- Enter
will modify it
- Double-click
will modify it
- When a
spell effect is highlighted (host only):
- Enter
will modify it
- Double
click will modify it
- Delete
will remove it
- V will
toggle its visibility
- While drawing
out a region to reveal or hide (host only):
- Right
Click will cancel the draw (in case you make a mistake while drawing
it out)
Most recent changes:
- v 0.95 (7/6/08)
- supports 1 decimal of accuracy for object positions, allowing smoother placement
on low res maps
- v 0.96 (7/11/08)
- supports sketching and creation of blank maps (no erasing yet, that's coming)
- v 0.97 (7/14/08)
- added password support
- v 0.98 (7/15/08)
- whisper support
- v 0.99 (7/16/08)
- sketch erasing support
- v 0.99.001
(7/19/08) - pings and dice stats
- v 0.99.002
(7/20/08) - correct version number shown in wrong version message from host
- v 0.99.003
(7/24/08) - added quick reply (/r), small bug fixes
- v 0.99.005
(8/5/08) - turn roller, minor bug fixes on campaign create and load (no longer
allows you to copy a campaign that has no index file), port switched to 26010
- v 0.99.006
(8/7/08) - supports icon and campaign exports, hyperlinks supported in chat
- v 0.99.007
(8/8/08) - hide all function, fixed minor artifact error on blank map, shows
maps added so far on New Map screen
- v 0.99.008
(8/30/08) - fixed bug with loading character file on a client while connected
- v 0.99.009
(9/2/08) - allows conditions on icons outside of combat now
- v 0.99.010
(9/8/08) - optional snap icons to grid and hide monster init order from clients,
fixed X and O thickness on low grid size maps, fixed extra space on in-character
emotes
- v 0.99.011
(9/11/08) Fixed grid-snap shimmer, cleaned up mouse selection (now infobox/effect/marker/icon),
adjust grid by moving two points, fixed crash that occurs on DrawArc. Changed
to DrawEllipse
- v 0.99.012
(9/18/08) Fixed remaining shimmer, hopefully fixed locked map graphic resource
problem (occasionally caused an interruption when you tried to load a map
that you just added).
- v 0.99.013
(9/26/08) Init order list now displays as a player correctly when asPC checked
(when hosting). Capture all / commands for errors, #, /tell added for whispers,
broadcast infoboxes in host's color, inform clients of timeouts, added some
guaranteed wakeup messages and increased guaranteed re-send to 3 seconds to
help dial-up clients
- v 0.99.014
(10/10/08) Explicitly populate playerName in normal MSG_CHAT and MSG_CHATREQUEST
packets to prevent InvalidatePacket errors on clients, added feature option
to icons (no outline, drawn under grid, sketches and normal icons, lockable)
- v 0.99.015
(10/11/08) Included Feature and Locked attributes in exported icon files (oops),
no more placeholder rectangle for unloaded feature graphics (makes unloaded
popup maps less obtrusive), fixed icon arrangement bug introduced by feature
changes
- v 0.99.016
(10/17/08) Fixed rare bug involving altering icon PC flags between maps resulting
in duplicate PC icons, cleared PlaceIcon form graphics selection when load
a new campaign, bad packets received and reported from clients are now saved,
dragged icons leave paths behind them with player color (disappears after
4 seconds), dragged icons update 4x a second on other machines, improved timing
of map redraw to help prevent client timeout on slow machines while scrolling
or dragging (still a problem on large maps), host no longer echoes path requests
back to requester -making pathing less confusing for dial-up clients (end
of path no longer sometimes erased if click too fast), clients now notify
that someone has joined
- v 0.99.017
(10/21/08) Dragged icons now show distance in white box, further improved
timing of scroll and drag redraws, syntax errors in dice rolls echo back the
command with the error, icon drag paths are hidden when visibility toggles,
feature icons leave no drag path, SHIFT will conceal icon path when dragging
(host only), fixed minor bug with spell duration timers, chat messages now
logged in .txt files in campaign folder of both host and client, made markers
more apparent (added circle), fixed small exported icon selection bug
- v 0.99.018
(10/25/08) Version checking when loading a campaign (older versions of TTop
can no longer load campaigns saved with a newer version)
- v 0.99.019
(10/28/08) Ctrl-select multiple icons for moving, visibility toggle, deletion
and modification, optimized download remaining calculation on players (host
only), removed repeated repair of player list (sometimes typing icon would
not function, was a simpler error than I thought - this may change back),
added cancel option to Save Campaign query on load map and close program to
cancel the operation, ctrl-C (copy) and V (paste) work on single icons and
selected icon groups (host only)
- v 0.99.020
(11/3/08) Fixed infoBox close window ordering problem (only happens when I
run it with VS 2008 up), fixed minor difficulty with ctrl key being held as
mouse leaves chat control (control continued to believe the ctrl key was still
down after it was lifted), host's response to CHAT_REQUEST changed to SendNow
so the result is immediate for users suffering poor download speed, added
GIFs to supported graphics to load, added portrait manager screen
- v 0.99.021
(11/6/08) Host now sends markers in bulk to new joiners instead of one at
a time, when objects are deleted next object underneath will be highlighted,
F key now finds icon (highlight portrait, hit F to find your icon), you may
no longer highlight markers that are not yours (host can still highlight all),
new icons will cause highlight if they are under your mouse, Ctrl and shift
operation cleanup, fixed small bug with coordinate snapping to grid with large
icons (were being placed wrong and drag path would appear after modifying
the size), improved appearance of plotted path distance, improved captions
slightly, portrait mgr supports managing any campaign portrait, even while
hosting, now validates large multi-packets as well, mode indicator (path/reveal/hide),
path plot menu no longer permanently shows ", Move Figure"
- v 0.99.022
(11/6/08) Attack arrow not from an icon now requires 2 full clicks to place
again, first click of plot path can highlight an icon to bind it (SHIFT prevents),
first plot point on icon sent to other machines, all forms of pathing (plot,
drag) now count squares instead of showing accurate distance, supports 4e
as well
- v 0.99.023
(11/8/08) Supports 4e marking (multi-icon support), when multiple players
are attempting to path, each path is preserved (although still temporarily
erased when other player submits a path), can hold or lift SHIFT while dragging
path point to change terrain difficulty, markers now colored properly for
host when maps loaded, color changes and when disconnect
- v 0.99.024
(11/11/08) Fixed bug with Path Move Figure when two or more users are pathing
(could use other user's path to move), fixed minor visual bug when rectangle
selection of icons begins (only area under disappearing tooltip would update
on the first animation), feature icons no longer display hit point status
or AC/Spd when highlighted (host only), when host snaps to a position, player
dragging map is cancelled, further simplified non-icon attack arrow placement,
portrait manager no longer bombs out on missing graphic file, improved appearance
of combat screen (and corrected spell timer additions - valid init range of
spell timers and combatants now -200 to 200), 4 levels of transparency on
effects
- v 0.99.025
(11/14/08) When ctrl-Ving to place more icons, now highlights the new one
under the cursor, added campaign and common pic button to multiple Icon mod
screen, corrected portrait names in multiple Icon mod screen, marked (4e)
icons now show orange borders when not highlighted
- (v 0.99.025)
(11/16/08) New version number not required. Context menues disabled when dragging
icons infoboxes and effects, Heal message and icon reporting still take place
even when the only healing is to nonlethal damage (bug fix), DeleteSketch
messages remaining fields explicitly populated to prevent validation errors
on client, Rclick menu on player list added (Send Tell option), Current combatant
indicator thickness for small icons now adjusted for icon size to be less
obtrusive , X's on icons set to a minimum thickness for easier visibility
when zoomed out, Disable context menu while dragging path point (prevents
index out of range error as well)
- v 0.99.026
(11/18/08) Move caret to end of command instead of highlighting it all when
click Send Tell menu option, Text entry gains focus when move mouse into chat
output or text entry, Table support in /scripts folder (// comment or ##;result
or ##,##;result for each line - syntax /table ["]filename[.txt]["]
dieRoll), Supports effects list on icons, Corrected clients snapping every
time host does (should only happen when host selects Snap To Here)