Roll20 uses cookies to improve your experience on our site. Cookies enable you to enjoy certain features, social sharing functionality, and tailor message and display ads to your interests on our site and others. They also help us understand how our site is being used. By continuing to use our site, you consent to our use of cookies. Update your cookie preferences .
×
Create a free account

[REQUEST] Continuum Span Log

Hi folks, I'm looking for a way to track time travel as defined in Continuum. Continuum is an amazing game, but it needs a *lot* of work from the players and the GM to make it work. The most challenging and difficult task is the tracking of your character's spans through time. The player is required to fill in a sheet that logs the place/time they were, the place/time they're going to, how long they are spending at the destination time, how much of their finite ability to span through time they have remaining (more on this below) and their age at the destination. Oh, and a notes field per log entry. We've used spreadsheets, txt files... you name it. A very generous coder here has tried to help twice, neither of his attempts have had the functionality we need. Apparently because there's no way to do a data/time calculation in the Roll20 API. It works like this- At character generation, your character has an Age. This Age always increases. It increases with each duration spent at a given location in space/time. Your character also has an attribute called "Span". This is a rating from zero to X, though values above 5 are super rare. The character's Span level is defined by their rank in the society of time travelers. New "spanners" start out with a Span of 1. Those of us who can't Span are called "levellers" and have a Span of zero. Span not only conveys rank, but it also defines the limit a given character can span before resting for a full 24 hours. The amount of span a give character has can be thought of as a finite but renewable pool of duration. At Span 1, a character may span up to a year of time in any combination of seconds, minutes, hours, days, weeks or months before needing to rest. You could span down one month, up one second, down 4 seconds, up 6 months without needing to rest. Each of these spans is reducing your available Span from one year to some lower value. Once you have spent all your available Span, you can rest, or you can try to push past your limit, but you'll take real damage. At Span 2, the limit is increased to 10 years before you must rest. Span 3 = 100 years. Span 4 = 1000 years... and so on. The trick is knowing where/when you've been and how much Span you have left. Which is why we need to track this stuff. Ideally there would be a section of a character sheet (or some other handout type thing) that would read the starting age of the character and the Span. It would allow the player to enter their current location in Time, their desired destination in Time and any notes about where they're going and why. The sheet would then calculate the character's current age (updating the sheet) and their remaining Span (again updating the sheet). It would allow for Rests, so one could reset one's Span whenever the opportunity arose. Each new Log entry would appear at the top of the Log, with Subjective Time being the same as scrolling down the log. This log will very quickly get very long. Even now we have players with hundreds of entries due to how amazing being able to span through time at will is as a game mechanic. This has been the downfall of our current attempts to make a Roll20 Span Log. Under the methods we've been using so far, each change to any value in a log entry recalculates the entire log... this quickly grinds the sheet to a halt. Does this make sense?
1442406645
The Aaron
Pro
API Scripter
It does!  And it sounds like a fun and intriguing problem.  Can you post part of one of these logs to provide better context to what the records look like? On the technical interface side of things, I would likely create a handout for each character to act as that character's log.  It would be visible to that character but not editable directly.  I'd then provide a series of API commands to modify it.
1442407818
The Aaron
Pro
API Scripter
Tuck S. said:  Apparently because there's no way to do a data/time calculation in the Roll20 API. Also, while there is nothing built in for handling dates eloquently, it's still possible to do.  The hardest part is dealing with the calendar.  If you know that you went forward 3 months and 8 days, was that 100 days (31+30+31+8) or 99 days (30+31+30+8)  or 98 days (28+31+30+8).   If you can always provide time in a form that is less variable (Days:hours:minutes:seconds), the calculations become easier.  However, if you need to relate that to a calendar, it again becomes complicated. So, further question, does the Calendar matter?  (if so, whose calendar is it?)
Perhaps the easiest way to show you what we're hoping for is to show you the way we have it now. The image below is something like we were hoping for. The fields work as follows- Direction defines whether you're spanning Up, Down or Level. Up means you're spanning forward in time. (This can be done in conjunction with travelling in space through a Level teleport) The distance you span Up is taken from your available Span. Your available Span should be displayed at the top of the sheet for easy reference. Down means you're spanning backwards in time. (This can be done in conjunction with travelling in space through a Level teleport) The distance you span Up is taken from your available Span. Your available Span should be displayed at the top of the sheet for easy reference. Level means you're moving only in space, which has no limits as far as this mechanic is concerned. There's nothing to track there, so all we need is the ability to say that the chr has spanned Level and make a note. Age doesn't change, Span is not spent. Due to the limitations of what the previous coder was able to achieve, we had to manually update the Starting Age for each block of 5 span entries. We'd rather not have to track this. Calculating the age is a really important part of what we want to automate. Same applies for the Previous Span Spent fields. Something we'd rather be automated if possible. Departing date/time is the place where the player would enter the date/time they are in before they span. Arriving date/time is the place where the player would enter the date/time they wish to be in at the end of the span. Where/Actions/Events is the notes field. Just a notes field. :) Time Level is a way of noting your Departing date/time from a different direction. The idea here is that rather than having to calculate exactly when you are right now, you can say, "I arrived on the 4th of June at 14:23:00. I need to spend 4 minutes and 32 seconds here. Then I need to span up." Ideally a value entered here would automatically create a value in the Departing date/time fields above, and hopefully the inverse would also be true. Span Spent and Span Remaining are both derived fields that the player can't edit. Below you'll see how the original game creators envisioned it. The idea here seems to be that you manually calculate everything, and do so in those little fields. You mentioned having the players enter command line codes to make the log work. Is there a way to do it with more user-friendly fields like those above? Finally the issue of calendars. The governing body of spanners who arbitrarily decided that a Span one may only access a year of Span between rests seems to have been immersed in a Gregorian calendar culture at the time. So this is the one that is used. Consequently spanning from December 01 to Jan 01 consumes more Span than spanning from Feb 01 to March 01 (and that depends on the year). When we tried to make this Span Log in Unity, we used C#, which has a DateTime function based on that calendar. But we were really hoping to make it work in Roll20. Does that answer your questions?
1442441975
The Aaron
Pro
API Scripter
I think so.  I believe you have a copy paste error above, so let me restate something to verify it is correct: Spanning UP is deducted from remaining Span. Spanning DOWN is deducted from remaining Span. Spanning LEVEL does not affect remaining Span. Spanning UP always makes a character older. Spanning DOWN always makes a character younger. Spanning LEVEL has no effect on age. Regarding a better interface, The API is accessed by commands, but those commands can be presented at API Buttons.  Ideally, I'd dynamically create the handouts with API buttons Embedded (Ken L. has done quite a bit of work like this, so I know it's possible).  That would mean when a player wanted to span, they would open up their personal Span Log Handout and click an appropriate API Button. Question: When spanning, does a player know both "When" they are going to and "How Long There"/"When Departing"? I gather it would be convenient to to use deltas as well as specifics.  Based on the implementation, the API should always know "When" a character is.  It seems like each Spanning UP or DOWN always has two components: Arriving and Departing.  Both/either could be Deltas from the current "When".  Departing implies Arriving at a new time. Is there some "Now" that they must return to in order to take that 24 hours rest?  Are the bounds on how far forward or backward they can span?  (Is it their own lifespan as the Age attribute implies? So, my speculation is that Logs would get filled out with a Departing Entry for the current "When" and an Arriving entry for the new "When" together, is that the case? So, back to interface.  I see there being a ledger, similar to the official sheet, with oldest events at the bottom and current details at the top, with perhaps a header of some summary info.  Additionally, I think it would have a Span and Rest button at a minimum: Rest  -- Restore the current Span to maximum. Span  -- Prompts the player for 3 things in order: Departing When Arriving When Note The Whens would be enterable as either a specific or a delta.  I'd take them in a standard set of formats ( YYYY-MM-DD hh:mm:ss, #Y #M #D #h #m #s), with any value omitted on the left assumed to be whatever the current When has, and anything omitted to the right to be considered 0. Prefacing with a +/- would signify a delta on the current When, starting with a number or = would be a specific.  Examples: 1976-07-01  -- At the first second of the day I was born. +1Y -- At 1 year ahead of the current When. 12:30 -- a half hour past noon of the Current When -30m -- 30 minutes ago in the current When. That's all my thoughts for now.  Sound about right?
Span doesn't age a character. Time spent at a given temporal location ages a character. Spanning up or down doesn't effect age. I apologize if I made a mistake there. The idea of a personal span log handout sounds great. The player knows exactly when they are, exactly when they're going and exactly how much Span that cost and how much is remaining in their "pool" of time they can span. Using Deltas would probably be fine. Yes, we should always know when we are. That date/time should probably be at the top of the log, for easy reference. "You are here:..." or something perhaps. The chr may rest any time at any when. All they require is a couple of story elements that do not influence this log at all. (They can't be in combat or really do anything that needs a dice roll for 24 hours. Rest only) > So, my speculation is that Logs would get filled out with a Departing Entry for the current "When" and an Arriving entry for the new "When" together, is that the case? Yes, that's accurate. Your ideas about the interface and the ways in which we might interact with it are very intreguing. I think that might work really well.
Aaron, I'm the generous coder mentioned in the first post, although calling me a coder is more generous than my contribution. When I wrote the character sheet, I had to create a lot of hidden attributes for time calculations and I set it up to ignore leap years and the fact that years are not exactly 60x60x24x365 seconds long. You can check out the way everything is handled in the character sheet and ask me if you have any questions about it.
1442838171
The Aaron
Pro
API Scripter
Good to know, thanks!  =D
Hey Aaron, Do you think you might be able to let me know when you'll have time to have a look at the features we've been talking about? I'm not pushing, I'm merely looking for a timeline so I can plan games. Thanks. :)
1443787541
The Aaron
Pro
API Scripter
I'd love it if I could give you some timeframe.  I feel like I haven't written a script in weeks.  =(
Understood. RL does get in the way sometimes. Thanks. I hope you get your wish as that will mean I get mine too... hehehe)