Virtual Mat
Blog located at:
http://blog.virtual-mat.net
Some time ago, I have decided to try writing online rpg table program, similar to Maptool. I actually did consider starting from Maptool, as I used to work on it a bit in the past, but it is very much 2d oriented, while I wanted to try something 3d (actually, it is more like 2.5d)
Trick which allowed me to bootstrap development is to reuse NWN (Neverwinter Nights) models and animations. Both me and my players have original version of NWN, so we can use the models for our play. There is also quite a lot of free models created by fans, so even without NWN, there should be enough content to get something working (said that, full version of nwn with all extensions costs few dollars in bargain bins...).
What is already implemented:
- a lot of framework code which is the foundation for later extensions
- client/server communication allowing to broadcast events between client machines
- model display and animation, partial implementation of particle system (visible in fire elemental for example)
- walk/run around action
- dice rolling using physics, properly displayed on all the clients (physics libraries are NOT deterministic...)
- basic big-jpeg-as-map display, with per-square height levels (editable online)
- shadows, bloom, glow, metallic reflections etc (jme3 engine provides this almost for free)
- basic footstep sounds synchronized to animations
To be implemented:
a LOT of things. It doesn't really make sense to list all the details, just few ideas I'm playing with
- PC model composition from equipment pieces (NWN way)
- movement acknowledgment mode - players are just drawing the path and sending to do GM for validation and execution
- targetting templates - shapes for spells/etc which will automatically highlight friends/foes in the range
- placeables - non-animate objects to be put on the map to make it bit more 3d
- macros - possibility to script certain sequence of actions
- Maptool-like walls/FOV? Only monsters in FOV would be visible to players
- possibility to compose maps out of smaller pieces connecting together
- proper walk path calculation, taking terrain into account (this means also possibility to define terrain types)
- per-model states/effects, to indicate conditions/spells active
- fight/charge/die animations connected to proper actions
- etc, etc, etc
What is NOT in scope:
- full implementation of any particular ruleset. Roll 1d20+modifier, compare versus static number, perform another roll if greater-or-equal -> possible, as script action, but not built-in assumption
- public servers/game finders/etc
- real-time mode
- any kind of AI/versus computer play
Teaser video
Youtube