Recommend
20 
 Thumb up
 Hide
14 Posts

Twilight Struggle» Forums » General

Subject: TwiStrug: A card explorer and virtual board for Twilight Struggle rss

Your Tags: Add tags
Popular Tags: [View All]
Low Boy
msg tools


http://twistrug.jjt.io/#board

It's basically an on-screen version of the board, so if you add cards you'll be able to play a full game.

The board distorts geography in favour of a better usage of space; the board will fit on a Chromebook, and might be playable on an iPad (haven't tested it).

It's only for local play so far, but I might look into enabling a shared remote board and leaving the users to figure out the cards through ACTS or something similar. I don't know if I'll get to simulating the cards in-browser.

Features

- Keyboard shortcuts for everything except placing influence
- Action history with unlimited undo/redo capability
- On-screen dice
- Display of presence/domination/control for each region and aggregate for each superpower
- Display of number of controlled battlegrounds for each superpower

It's definitely beta, and don't be surprised if it doesn't work on lower versions of IE.



http://twistrug.jjt.io/#cards

Explore the cards and learn some strategies.
17 
 Thumb up
0.05
 tip
 Hide
  • [+] Dice rolls
Alex
Canada
Quebec
flag msg tools
badge
Avatar
mbmbmbmbmb
Re: I made a virtual TS board, playable in a modern browser
Just tested on iPad with both Safari and Chrome.
Works like a charm.

Good job!
3 
 Thumb up
 tip
 Hide
  • [+] Dice rolls
Low Boy
msg tools
Re: I made a virtual TS board, playable in a modern browser
Thanks, and that's good to hear! I had an iPad but my mom loved it so much that it went to her, last xmas.
 
 Thumb up
 tip
 Hide
  • [+] Dice rolls
Brian Pierce
United States
Chicago
Illinois
flag msg tools
badge
Avatar
mbmbmbmbmb
Nice work Low Boy. I very much like the listing of cards with information directly from Twilight Strategy. That is a nice touch. I also really like the "feel" of rolling real dice. It seems to work perfectly fine for me in Google Chrome.

Could you explain a bit more how you envision this being used? Is the idea that 2 players are physically in the same spot, but would play on this instead of the actual board? What are the advantages of using this?


Thanks
 
 Thumb up
 tip
 Hide
  • [+] Dice rolls
Gabriel Conroy
msg tools
mbmbmbmbmb
Saves a lot of space for starters. Could easily play this on the train.

Great work.
 
 Thumb up
 tip
 Hide
  • [+] Dice rolls
Don't Blink
Australia
Brisbane
QLD
flag msg tools
Avatar
mbmbmbmbmb
I wonder if you could use a unique URL (GET) which could populate the board (and perhaps also cards) so you can take your turn, copy the "new" URL and send it to your friend. When your friend clicks it, it loads the page with the same state as when you just took your turn. I'm typing on a phone, sorry if I'm not clear. I'm trying to think of a way to make this playable remotely without relying on backend DB, and using minimal CPU and bandwidth.
 
 Thumb up
 tip
 Hide
  • [+] Dice rolls
René Schep
Netherlands
Amersfoort
flag msg tools
badge
Avatar
mbmbmbmbmb
That would become a really long url to pass along all the information
 
 Thumb up
 tip
 Hide
  • [+] Dice rolls
Rami Finkelshtein
Canada
Waterloo
Ontario
flag msg tools
badge
Just another day on the staircase
Avatar
mbmbmbmbmb
You can set up a "board state" key...yes it would be super long but it would be nice for async play...
 
 Thumb up
 tip
 Hide
  • [+] Dice rolls
Jay Sachs
United States
Woodinville
Washington
flag msg tools
badge
Despite your hope, there is not even any inherent symbolism; gravity is simply a coincidence.
Avatar
mbmbmbmbmb
Valandor wrote:
That would become a really long url to pass along all the information


Not that long. 2 bytes/country * ~50 countries + some extra for defcon, space, etc, then * 3 for URL encoding. So not short, but still well under 1000. Even better is if you encoded both "before" and "after" in the URL, so theoretically you could show "what happened" (or at least, what's different).
2 
 Thumb up
 tip
 Hide
  • [+] Dice rolls
Low Boy
msg tools
Thanks for all of the kind words everyone!

@bpierce72: I had envisioned playing locally with someone, like a replacement for the board and all of the chits. As someone mentioned, it's a space saver and a convenience thing.

I didn't want to come too close to a complete online experience for two reasons: the official GMT app coming out sometime, and the need for a server or backend service (Firebase, etc) to facilitate communication and shared state. Right now it's all static files served from S3 which is easy to maintain.

@felipe1982: The idea of a shared board state through a link is interesting. I'm not sure about cards done that way - I'd have to implement cards first to figure out what's best there. Ideally you would want a 3rd party (server) to manage the cards and send the clients only their hands and the discard pile.

@jaysachs Yup, except I don't know that we'd even have to urlencode the board state. It could just be one long ascii string, indexed by position.

- 2 chars per country * 84 countries = 168
- 1 char for each game status (round, turn, etc) = 8

So 176 characters for the board state.

The only part that would be tricky is how that would integrate with the history. Right now, sequential changes to a given country or game status get saved as one entry. That includes both a representation of the board state and a meta object describing the change. For example, if the USSR player played De-Stal, they would have multiple history entries (-1 Finland, +1 Nigeria, +1 Venezuela,...) each with a complete representation of the board state and a meta object.

It further complicates things if a played card applies to the other player and you want their action to go first.

After reasoning this out, I think the best way to handle remote play would be with a server or other backend service and have an automatically-shared board state.
3 
 Thumb up
 tip
 Hide
  • [+] Dice rolls
Low Boy
msg tools
Ask and ye shall receive: sharable board state through URLs.

The board now updates the URL with the state, and loads from the url when it changes. It should be as easy as copying the URL when you're done your action(s) and then pasting it back in when your opponent is done theirs.

Here's a link to a standard board setup:

http://twistrug.jjt.io/#/board/BGGExampleGame/k5000000000000...

When pasting a url, the action history simply displays "Loaded state from URL" instead of a comprehensive history. But you can just flip between undoing and redoing until you see all of the changes.

You might have noticed the "BGGExampleGame" in the url and correctly deduced that you can specify a custom game id for your games. You could use this to keep track of multiple games you had on the go. Something like "2014_07_28_jjt_v_lowboy" or "SuperGrudgeMatch3000". Just point your browser to #/board/MyGameId and it should do the rest. Since they get saved in localStorage, you can bookmark as many games as you want and they should stick around for a while. The id must be comprised of alphanumeric characters and underscores.
4 
 Thumb up
0.05
 tip
 Hide
  • [+] Dice rolls
Don't Blink
Australia
Brisbane
QLD
flag msg tools
Avatar
mbmbmbmbmb
So coooooool!!
1 
 Thumb up
 tip
 Hide
  • [+] Dice rolls
Low Boy
msg tools
Cheers!

I just pushed an update that adds keyboard shortcuts for placing influence. You can watch it in action here:

http://gfycat.com/BitterDopeyCockerspaniel

Also, the country and info nodes are no longer SVG elements. Instead they are divs and spans, which should mean performance improvements.
3 
 Thumb up
 tip
 Hide
  • [+] Dice rolls
Giacomo G
Italy
Ferrara
flag msg tools
Great tool, thank you Low Boy!

What do you think about including in card pages the official FAQs ?
http://www.gmtgames.com/nnts/FAQv5.pdf

 
 Thumb up
 tip
 Hide
  • [+] Dice rolls
Front Page | Welcome | Contact | Privacy Policy | Terms of Service | Advertise | Support BGG | Feeds RSS
Geekdo, BoardGameGeek, the Geekdo logo, and the BoardGameGeek logo are trademarks of BoardGameGeek, LLC.