project-image

d20Pro Unlimited Virtual Tabletop

Created by Mesa Mundi Inc.

Reforging the d20Pro virtual tabletop; adding the Unlimited Rules Engine, Native multitouch support, Shadowcasting fog of war and more.

Latest Updates from Our Project:

March Update
over 7 years ago – Thu, Mar 09, 2017 at 09:47:23 PM

 

Hello Backers and followers.

We are closing in on a massive beta release which will include the feature library, equipable inventory, automated spells, template triggers, and a whole lot more.

There's a lot of work left to do to close up the bugs, and outstanding UI issues, so let's just jump right into the thick of it!

The Feature/Rules Library

The new Feature System and the subsequent libraries it introduces are set to greatly improve the flexibility of D20PRO and enable support for entirely new ways to interact with your game worlds.
Since the original library was getting a little crowded with the new tabs, we decided to break out the new libraries into their own window -- the Rules Library. The original library was renamed to Content Library to give it top billing right under Active Effects.

The Content Library includes Maps, Creatures, Items and Handouts -- common items a GM is likely to access during game play as well as while setting up.

The Rules Library contains (WIP, needs icons and some additional functionality) Features, Spells, Properties, and Triggers -- tools predominately used to set up a game or rule system between sessions.

To help explain some of these concepts, I've asked Leonard to join us...

Leonard the awkward Juvenile Red Dragon
Leonard the awkward Juvenile Red Dragon

So Leonard is suffering from a bit of an identity crisis and looking for some companionship. In order to help him we're going to have to define his character a bit better.

Enter the Rules Library! We're going to look at Rules that help us define Lenny so he's able to find the perfect mate... or snack.

Below you will see a list of Features which are used to define our earst while dragon. These are general rules which can be programmatically altered by number of hit dice, class levels, creature size, or by various aspects of a creature's character sheet.. The point of Rules is to provide abstract, on-demand elements. I've gone into this area a lot in previous updates so I won't delve too deep today.

Feature Library Example
Feature Library Example

The newest elements of the Features System is the attacks option. See the example below for a sample Attack Node set up.

Attack Node WIP
Attack Node WIP

 An attack feature allows for setting up all of the various damage bits that are normally handled by the Attack Tab of a creatures character sheet. The advantage of the attack node, is that attacks defined this way can be attached to items, spells, feats, and traits to provide an entry on the attack tab describing the feature!

There are a few major bugs and obviously the UI is no-where near ready for general consumption.

However, with this attack configured, Leonard is starting to feel a little more confident! Bite for 2d6 + Str. Wait, what? Yeah, the current system mimics the existing D20PRO system so the 1.5 x Strength option isn't live yet.

That's where these changes really start to shine though. What we have above is the default Attack model which is "built-in" to D20PRO. Like other features, however, the Attack series of nodes can pull from your rules to provide additional options or completely different unique options!

Okay. so that's cool, but how do we use it? This is still being fully vetted, but here's the rough skinny on the 4 seashells, er.. 4 tabs.

  • Features & Spells define a specific effect or collection of effects
  • Properties define usage pools and containers for Features/Spells
  • Triggers & Items define attachment points to a creature or the game world

Now Lenny is growing up fast and has gained his first spell and has a fairly substantial breath weapon! To represent these, we define spells. The breath weapon could be a Feature and still use the Spell/Ability decision to create an in game effect.

 And while Locate Object is a very abstract concept, we add the spell as a container so we can track his per-day usage.

Since other creatures might have a cone of fire breath weapon, we built an abstract Cone of Fire spell effect and then remember that this is actually a supernatural ability and not a spell. Because features and spells are virtually identical, we can simply change Cone of Fire from Feature to Spell in it's definition and it'll switch to the previous tab. 

UI wise, the purpose of the Spell tab is to provide a cleaner view of Features which are tagged as Spells.

Now let's define some properties for Lenny. Again these are more abstract than specific. Before looking at the next image, please keep in mind this is work in progress so to handle more than one attack I had to create a series of "attack #" properties. this should be fixed in the actual, eventual, release.

These properties act as containers for things and set up default values like Charge, Recharge, At Will and what not. Generally, the property containers shouldn't contain any actual definitions or associations yet.

That happens in the triggers and/or items!

 So all of that comes together to give us the above panels. A trigger (actual name tbd) and item definitions allow us to attach a number of properties to a specific thing and then each property lets us attach one or more spells or features.

You can also use this system to create items which have more than one spell with variable charge amounts.

Again, the UI is crude and has some significant visual errors, but here's the an example item with charge values.

 And in action!

Wait! Leonard! All you wanted was company but instead a cone of fire! Well, fortunately you're willing to have a like snack before your date.

While Leonard has his adventurer snack, let me go into some of the other bits and bobs that got the update and add during the last dev cycle...

List of February Updates

  • consumable inventory Items via pools
  • recharge properties
  • reworked and rebuilt item drop and pick up flows
  • massive changes to the player client to include
          - player feature library access
          - player controlled items and inventory
          - player controlled pools/properties
          - sync of player changes for traits, items and more
          - player feature creation!
  • introduction of a new HTML5 engine in D20PRO
  • update REST API to support additionally external app support
  • continued work on Rules API in response to Feature Library changes (also close to release on this one)
  • additional tuning of the new networking engine
  • (html) updated srd integration and work on Paizo store integration
  • D20PRO Live Server updates to migrate to SSL and enable remote logins (store related / world engine related)
  • Integrated WebGL/Canvas tests -- successful!
  • added Equip/Enable for items and traits
  • added functional on-equip trigger for properties
  • built the initial attack node library
  • rebuilt the item data model from the ground up to support feature embedding

So what's next...

Next we fix a ton of bugs and update all of the new UI elements so they are more user friendly. There are also a few lingering not-quite-features-but-more-like-complicated-bugs items on the list, the complete list is as follows:

  • Workflow refinement
  • Rework creature sheet to allow "temporary" reflection of equipped/unequipped items actions
  • Work with the web-app team (World Engine folks) to build a better node editor UI.
  • bug fixes for saves, dice rolls and a few other core rules elements
  • correctly attach the Rules API definitions to the node editor (under new UI)
  • build out a full upgrade path for D20PRO 3.x installs to the new Feature Library/Rules Library enabled release -- i.e. upgrade campaigns
  • release this sucker!

So yeah, a good amount of work to do, but this is what we'd like to call the home stretch. It's exciting, scary and has a lot of small parts to manage and resolve. Despite the flack I'm sure to invite, I still don't want to put a date on the release. We're working as hard as we can to bring it to you and the rest of the community; However, rushing to beat a deadline when there are still many unknowns to contend with is only inviting more aggravation for all parties.

When will you have the new and improved D20PRO?  As soon as it's ready! Sooner if you want to try out the beta which will launch before the full release -- we definitely want folks to test, so please, please jump into Beta when it launches.

- owlbear

and now....

The Elephant in the Room

Right, so Mesa Mundi has this other, entirely different product that they've been sitting on for a long time (almost like they've been waiting for this kickstarter to resolve as long as you have). Well, the cat and software is literally out of the bag. MM is gearing up to launch a kickstarter for their new online RPG mapping tool. 

You can jump straight to the preview by going here if you'd like or you can visit the landing page over here. I'm going to take a few moments now to talk about the app and where it sits in our ecosystem as well as give you a brief history to help folks understand our answer to the "Why now" question.

The Answer

As some of you may recall, a while back MM was not of D20PRO but only a fan. We met the Mindgene folks, brought hardware to their software and life was good. Then we joined forces, and despite some rocky times, life has still been pretty good -- just a little less hardware. Well, along the way, Mesa Mundi had been working on touch based software to build maps using tiles and such. World Engine is the child of that work brought forward into the current HTML5/Canvas arena.

World Engine is designed to be a VTT map creator first and foremost. The intention has always been to provide a set of tools that surround the table top -- be it physical or digital. World Engine does that. The software is designed to produce print quality maps as well as digital, VTT ready maps.

We did some poking around to find out how tile vendors would feel about such a tool and found that they were extremely stoked. 

Back in GenCon we showed a sneak peak of the tools to folks who stopped by the booth and they were extremely stoked.

Still we sat on it, poked at it, and made promises to it,"one day you will have life." Well, that "one day" has come.

Due to a series of unfortunate events involving economic downturn, MM found itself with some extra hands in need of work but who have zero to no java experience. Rather than turn them away, we've handed World Engine to this group of close friends and associates and now colleagues to be the ones to bring this to the rest of the world.

In summary, the "Why now" is because not only is the time right, but the right people are available to do the work without causing significant distraction or disruption to our D20PRO project team. Not only are these folks people I trust completely, they are people who have worked with Mindgene and Mesa Mundi in various ways for a fair number of years. We've built a number of commercial applications for contracts as a team in the past and know how to work alone and in groups. All good traits!

Additionally, they are gamers who understand what our objectives are for building a better mapping tool. I couldn't ask for a better group to take over this project.

The bigger picture

Now, for the most part, we're keeping World Engine and D20PRO separated for the time being. But, as a developer, I want to make it completely clear that this tool set is and was built to be integrated into the virtual tabletop experience directly. When will that happen is unclear. It is neither part of the current D20PRO kickstarter nor is part of the World Engine kickstarter specifically. There are some "way out there" stretch goals that would include tighter integration, but they're intentionally out in the "Super Fund" range so as to not tempt/distract either team.

Unlike the D20PRO kickstarter, the World Engine kickstarter will not try to squeeze stretch goals into the go live timeline. Go live for World Engine will be clearly defined with even clearer objectives. Any stretch goals will reside outside the go live date and be features or services which are added after the core of the kickstarter is fulfilled.

Now, where the two kickstarters are similar is that the products are ones we're very serious about. Why? Well, mapping and playing on maps can be streamlined. Streamlining this experience is one of the major objectives of both projects.

In D20PRO we have a shift in the next development phase to introduce a polygon based map system. This is part of the design plan to build out free movement, hex and other grid style movement types. Additionally, we're already working on re-writing the items and creature token code so they interoperate with map markers.

World Engine at it's core is a polygon mapper. Freedraw tools in World Engine generate polygonal shapes which are then stroked, filled, or otherwise treated using the polygon data as a basis. This means that the technology within D20PRO and the technology at the heart of World Engine will be extremely cross compatible.

To broaden the horizon, World Engine will eventually offer API level access to it's map model allowing for external applications (including D20PRO and other VTT or campaign managers) to pull map data and operate on said data remotely.

World Engine and D20PRO will share an accounting system. Having an account on D20PRO is the same as having a World Engine account. We're still working on how purchase will translate between platforms, but generally we're looking for a method that this can happen cleanly.

That is already likely to be more than I should have said :P

However, you folks deserve it. Thank you all so much for your continued support and even for just keeping an eye on us over the years.

We're excited to have the chance to broadening gaming once again. 

To stay up to date on World Engine you can bookmark: http://d20pro.com/world-engine

The D20PRO and World Engines team, signing out.

Oh, and Leonard says thanks too!

Feature Library release is coming!
over 7 years ago – Sat, Feb 25, 2017 at 04:08:05 PM

First of all I wanted to thank the early access folk for the testing on the new networking system. It's been a massive success! The few reports we had of slow connections or sluggish response have completely evaporated. With a little tuning and love on the fabric side of the network we were able to speed things up and allow thousands of messages to pass freely and simultaneously across our new system.

 

As you can see, we've established a single fabric node for testing. The beauty of this system is expanding the node pool is both dynamic and requires zero downtime. When we add a node, the fabric just balances across nodes.

Looking good!

Feature Library Progress

Friday marked a major milestone on the Rules/Features development path. During my usual meeting we were reviewing the project and going over the developments from this week.

The way this normally plays out is that the team and I go over changes introduced to the code and compare the results against the spec and the intended behavior.

Normally the result is that we have to add Feature X or remove Feature Y in order to achieve these goals. Friday was the first of these meetings in which the task list included only a single feature improvement and the rest of the tasks were bugs/UI refinement and more testing!

What this means is we're really close. I'm going to be conservative and forego tossing a date out there. 

Keep an eye out for another beta in the next couple of weeks!  This will be a release candidate round so it should handle import of old campaigns.

For a teaser, below is a quick gif showing a character picking up a wand from the ground (icons pending) and then tossing a fireball from it using the wands caster level and assigned class.  Bugs which are discernible in this gif are most notably the math is wrong. The number of dice rolled are increased by caster level of the wand, but then the result was multiplied by the same number... (oops!) Still these kind of math bugs are a joy to fix because they're "home stretch" material.

D20PRO Items with associated Features
D20PRO Items with associated Features

Not to throw a wrench in our own works, but I feel it is important to mention there is one more feature to be added to the Item system which we hope to have ready in time for the RC release. We've been working on a mechanism to allow an item to carry a full attack definition. The result would be a long sword which grants you long sword as an attack type when it's equipped but not otherwise. The trick here is to offer a fast means for the player/GM to switch between equiped items or the system would cause undo stress and actually slow down play. While we're working on an "item sets" UI, we'll likely launch the RC with a General Option to "show all item attacks" which would ignore the "equipped" check to show item based attacks on the attack panel.

More to come as it's ready!

- Owlbear and team.

New Networking and Betas
over 7 years ago – Mon, Feb 06, 2017 at 08:41:18 PM

Hello Everyone,

Just a few updates to keep you all in the loop.

We're really close to launching our early access then public access betas for the new networking model. This is a publish/subscribe system which is a key part of the remote character and lobby/game finding solutions we've been working on. 

The initial deployment of this system will be similar to the existing TCP/IP and be accessed through D20PRO's launcher system.

new launcher menus for join and host
new launcher menus for join and host

We expect to be able to release an early access beta with the new networking and early access to Features and Pools later this week. Pools may not be fully function at the time of launch. In either case, I'll send out another notice detailing what elements are live in the early access release and what to be careful of.

Please check out the forum post here for additional details about the networking update.

As we get closer to the launch, I'll send out details to the early access folks regarding how to access this release.

Barring any major setbacks, bugs or other issues, we'll move to public beta for networking the week after the early access launch!

More to come soon, as well as some additional licensing and partnership news!

- Owlbear and team.

Jan. 2017 Update
over 7 years ago – Fri, Jan 27, 2017 at 10:56:31 PM

Hi All,

This is a fairly short update to give you a sense of status. I, myself have been laid up for most of January with some form of walking pneumonia. This is the bad news. 

The good news is that the team has been making great headway anyway! As we were working on Pools (mentioned in the previous update) we came to realize that the actual functionality for these things was far greater and a bit wider spread than the original conception. 

As such we've moved directly into the Item Library updates which will grant Feature usage through items. The basic result is that any Item or Trait can have an arbitrary number of what were originally "pools" attached to them. Since the nature of the pool system has changed to more of a "Properties" system. We'll be refactoring the UI to reflect this after we're done with the logic.

So here's the run down:

The Library is being split into two systems -- The "Content Library" which will contain the usual suspects; Maps, Creatures, Items, and Handouts. The "Rules Library" will contain the following sections; Traits, Spells, and Property Templates.

Rules, Traits and Spells are logically separated areas which function nearly identical as follows:

  • Rules - Contains rule definitions for Items, Mechanics and other non-creature specific elements.
  • Traits - Contains rule definitions for Special Abilities, Feats, Class Features and Racial Features.
  • Spells - Contains rule definitions for all Spells and Spell-like effects.
  • Property Templates - Contains collections templating common usage types and rules specific Rules, Traits and Spells collections.

In addition to the updates to the library concepts, we're nearly done working on the local Properties system which resides on a creature or item. 

"wait, what?"

Let me explain. So with the property templates and new item system we're finally bringing equip/unequip status to items, feats, traits and other "feature driven" aspects of a creature. When you have a suit of chainmail in your inventory and opt to equip it, you're AC will change appropriately.

If you equip a Wand of Fireballs with 20 charges left, you'll have the ability to use Fireball 20 times before the item is consumed and removed from your inventory.

So yeah, in addition to equipping gear, we've also added Consumption and recharge. If you have an item with a usage tracker (i.e. Pool) property, then that item can also be set to be consumed when the pool is exhausted.

To go hand and hand with this, we've also fixed the quantity system to let you split stacks of items, selectively drop and pick up more than one item at a time and even "toss" an item to an arbitrary point on the map.

"Gimme!"

We're close on these. In order to complete the feature work, we needed to address these concerns BEFORE handing over the feature library as we're updating the game model to support a more verbose Item model. If we handed this over prior to completing a refit to the item system, we'd have ended up with a 1 - 2 month legacy version problem for text-only items which all had to be retro fit.

As it is, we're building the updater for existing items so they will automagically gain the new properties of the enhanced system.

Yay!

Okay, this has gotten long winded again.  I have one more piece of good news before I sign off for a bit again.

NON-TCP/IP NETWORKING is coming to D20PRO

Okay, back to normal text. We have been working since late December to proof and develop a means to remove the TCP/IP and Firewall woes from the D20PRO experience. This work has born some great fruit and even opened up new avenues of possibility with some partnerships we're still in progress on (so going to play it tight to the chest for a bit on details there).

The new network model is rocking it in internal testing and will go live with the upcoming early access beta (hopefully 2 weeks if everything goes as planned).

The new system uses a publish subscribe model to manage data passing. A GM/DM creates a channel which players subscribe to. All of this occurs over standard HTTP ports and pathways resulting in a system which has the same basic requirements as a web browser.

In addition to this new networking model, we're building a game lobby on top of it which will let hosts advertise games and player browse advertised games. You'll still be able to host a private session which is not advertised, and like the TCP/IP version of things, you'd have to share your channels log in credentials (name + password) to your players through another means -- which we have a solution in the works for as well but this gets into the aforementioned partnership arena I'm going to skirt.

Suffice it to say, you could always start using our Discord channel for such syncing until the lobby is live and ready.

The D20PRO Discord channel can be found here: https://discord.gg/2Jgkd

In closing, we've been super busy and have some great and existing things to share in the upcoming weeks!

Oh, for the API folks, this is also getting really really close. The API work is wrapped up in the feature stuff fairly tightly as features are changing a lot of the underlying game model and methods.

Stick with me and I'll get you bitbucket access to some buildable API source in the very near future as well.

If anyone is interested in helping code up the rules for 5e using the new API, give me a shout out via discord username "Owlbear" attached to my email and we can see about getting the API rolled out sooner, maybe.

- Owlbear and team!

Final note!  our friends over at Arc Knight have a kickstarter down in it's last 6 days for round 2 of their great Flat Plastic Miniatures system. These are great for traditional table top play as well as the source of some great token art for our beloved VTT.

and show them some love!

End of year Pool Party!
over 7 years ago – Fri, Dec 30, 2016 at 10:24:59 PM

This is just a quick update to wish you all a Happy Gametastic New Years and give you a quick overview of the subsystem we've been working on this week.

We have been focused on refining the Feature Library and adding a managed Pool system to D20PRO. The great news is that we're pretty far along with the pool manager now as well. Integration and expanding to system so it is utilized in the right places will take a bit of work still, however.

What is this and how does it fit into the Kickstarter?

Well, a lot of D20PRO's stats and abilities are locked into named structures which makes it very, very difficult to expand the system for other games or uses.

A Pool, in game terms, is not a swimming apparatus. Instead it's a managed collection of objects or elements in the data model. For instance, in 5th Edition, spell casters use a spell slot pool to cast spells. This pool is broken up into spell slots for a given level (depending on the class) however, the resource is shared between spell levels. A 5th Edition Wizard is a good example of a complex Spell Pool.

A stack or quiver of +1 Arrows is an example of a simple pool. Fire an Arrow from this stack and the pool diminishes by 1.

Where things get fun, is when you apply the logic from the Feature Library to a Pool Library. The combined system allows for us to create Pool Templates -- like Wand, or Staff, or Arrow -- then apply these to Traits, Abilities or Items (more on Items soon).

Pools play a major background role in the system agnostics plan allowing for everything from Blood Pools to Sorcery Points. 

I'll send out a full write up on Pools as we move a bit further along in the process. As we're still working on the integration, I don't want to commit to explaining methodology until after we've completed the integration.

Happy New Year to everyone and we'll be kicking it into high gear for 2017!

Game safe (or at least safe enough to game again),

Owlbear and the D20PRO Team.