Pages

20 août 2016

La suite : une version testable 😀


La suite : une version testable 😀

Originally shared by Dan Maruschak

RPG HUD Lower Third “Proof of Concept” preview

I've been working on a Hangouts app that provides an “RPG enhanced” lower third video-overlay. Rather than using a static image, it lets you have some interactive widgets that should prove useful during RPG play – the goal is to provide the functionality in Hangouts gaming that you might use note cards, tents, or play sheets for in normal tabletop play. It uses GoogleDocs spreadsheets as the basis for the display, so it can also maintain persisitent state, like for simple character sheets. You attach a “note” to the GoogleDoc cells to mark them as special interactable elements. I think I've got my “proof of concept” version functional enough that I'm ready to have some other people try it out.

My goal with this release is to figure out 1) if this basic idea is actually as useful as I hope it will be, and 2) what other widgets people would need to make it useful. My longer term plan is to combine this functionality with the dice-rolling features of my Dice in the Vineyard app to be a more full-featured RPG HUD.

Here's how to run it

Step 1 Sign up for my Google Group "beta-test-hangout-apps-for-rpgs" https://groups.google.com/forum/#!forum/beta-test-hangout-apps-for-rpgs (I don't send mail to this group, it's purely for access control to the app, because Google requires access control for pre-release apps)

Step 2 Start a video hangout with the classic interface so you can use apps. (Going to https://g.co/hangouts does that automatically. And when it starts you can just hit "cancel" when it prompts you to invite people if you just want to test it in a solo hangout).

Step 3 Add the app. In the left pane of the Hangouts window, the "..." button will let you "add apps". A window will pop up, and if you switch that to "Developer" in the tabs at the top you should hopefully see 'RPG HUD "lower third” preview' as an option. Click that, and then you might need to give it some permissions.

When it's running correctly you should be able to click the “List Files” button, which will scan for GoogleDocs spreadsheets that you own. Select the one you want to use in the selection box, hit the “Open” button, and it should load up the sheet and display a respresentation of it in the “control pane” where you can interact with it, and as a video overlay where it's purely visual. By default it will try to display the entire non-empty area of the spreadsheet over the lower third of your video feed. Of course you wouldn't want to display any old spreadsheet, the special RPG-friendly functionality of the tool comes in the form of “markup tags”:

In a GoogleDocs spreadsheet, you can right-click on a cell and select “Insert note” (or use the Insert menu) and you can type things into the note field. When this tool reads in your spreadsheet it looks for certain tags in a cell's notes to indicate whether the cells have special RPG HUD functionality:

Interaction tags:
RPGHUD-EDIT (a button which lets you edit the contents of the cell)
RPGHUD-INCRDECR (buttons to increase or decrease the number)
RPGHUD-CROSSOUT
RPGHUD-CHECKBOX-N (replace the N with a number, e.g. RPGHUD-CHECKBOX-5)

Display tags:
RPGHUD-CHECKBOX-N
RPGHUD-TOKENS-VERTICAL
RPGHUD-TOKENS-HORIZONTAL

Structure tags:
RPGHUD-TRANSPARENT (this cell, and any other cells that have the same background color, will be rendered with a transparent background on the video overlay)
RPGHUD-UPPERLEFT
RPGHUD-TOP
RPGHUD-LOWERLEFT
RPGHUD-LEFT
RPGHUD-BOTTOM
RPGHUD-UPPERRIGHT
RPGHUD-RIGHT
RPGHUD-LOWERRIGHT

For cells that are tagged as checkboxes, the app expects a hexadecimal number in the cell, where the bits correspond to which boxes are checked, e.g. 0x0 is all boxes clear, 0x1 is the first checkbox checked, etc.

By default the app will try to map the entire non-empty space of the spreadsheet to the lower third, but you can use the UPPERLEFT, etc., tags to manually specify an area of your sheet for the app to cover. For example, your spreadsheet might have an entire character sheet but you only want to display one section of it on the screen. You don't need to include all of the tags, just use the tags you need (e.g. you can fully specify the area by using two opposing corners). The app will analyze the height and width of your sheet and size and center it along the bottom of your video display, with a max height of 1/3 of the video. (Right now there aren't any tags to tell it to left- or right-align the whole thing, but you can achieve that effect by making a wide sheet with a lot of blank space.)

As long as they don't conflict with each other, you can include multiple tags on a single cell by putting them on separate lines within the note. For example, you can have RPGHUD-INCRDECR and RPGHUD-TOKENS-HORIZONTAL on a cell for a token display with pressable gain/lose buttons, like I've done in the screenshot.

The app doesn't understand images that you add to the spreadsheet via the “Insert” menu, but it can display images included in cells with the =IMAGE() formula (it only understands modes 1, 2, and 3, and mode 3 – which crops images – will probably look the best with the way the video overlay gets rendered). Because of some security restrictions on Hangouts apps I think you'll only be able to use images that are hosted somewhere that can be accessed via the https protocol. However, you can get that without too much trouble via things like Google Drive, Google Photos, dropbox, etc.

Some limitations:

Sometimes the app doesn't initialize the apis properly, I'm not 100% sure why yet. When this happens the message “api load error, please restart” will show up in the little box at the top. Reloading the app (via the little circle-arrow button above the control pane) usually fixes this problem for me.

Right now the app doesn't have a concept of spreadsheet content that can “overflow” from one cell into adjacent empty cells the way that the default google spreadsheet does – if you have wide or tall information you'll need to manually resize cells so it fits (also, you'll probably want to make good use of the “merge cells” functionality for nice looking displays). By default if you increase the font size in a cell it will look like googledocs has resized your row, but not in a way my app currently understands, so you'll need to manually resize your rows so the app can tell what height the cells should be.

Right now the app only loads data from the spreadsheet when you load, so if you make changes to the GoogleDoc while the app is running you'll need to tell the app to load the sheet again for those changes to show up. (Although changes you make in the app, like checking off checkboxes, are sent back to the sheet). Also, while spreadsheets can have multiple sub-sheets, this version of the app only reads the first one.

This is essentially pre-alpha software, so I fully expect there to be bugs. I'll try to keep this version stable, but if there are necessary bug-fixes or feature enhancements I might make small changes. I've only tried this on Chrome – I can't think of any reason it wouldn't work in other browsers, but I haven't tested for compatibility.

What kind of feedback am I looking for?

I'm open to anything you want to tell me, although as I said above my primary interest is figuring out “Is this basic idea sound?” and “What other features would you need in order for this to be useful for you?”. If you find bugs or make feature requests I might be able to address them in this version, but if they require extensive code changes they might just end up on the “to do” list for the more robust next version. Feel free to ask questions or comment here, plus me into a public or private post of your own, or e-mail me at dan.maruschak at gmail, or whatever's convenient for you.

(Please, no doom and gloom about Hangout apps no longer work or how they'll be gone eventually. Right now they do work as long as you start the Hangout with the correct interface, and it's entirely possible that they'll continue to be supported forever – Google is always cagey about what they will or won't do, sometimes they kill things people like, sometimes they keep them around. Until there's some definitive announcement I think it makes more sense to assume they'll continue to support the feature.)

Aucun commentaire:

Enregistrer un commentaire