List your .tws or .twee files in a special passage titled "StoryIncludes" and recent v1.3.5 betas will import the passages from those files when your story's .html file is built.
2013-08-19
2013-02-23
Strategery "The Finger" for Border Games
Here is another strategy video for my favourite iOS game Strategery. This video if for breaking through static borders in the mid to late game. Use this technique in preference to just creeping the border forward to end the game quickly or when you must come from behind to win. I used the finger to win a game where I only had about one third of the regions to the other opponents two-thirds. A disadvantage to that extent is a near certain loss if you stick with a "border creep" strategy. So, give your enemies the finger!
The finger can also useful in non-border reinforcement games - though the specifics of the opportunity are less likely to occur. Those specifics are; strong border (both) with a weak hinterland reachable by a break through.
See my other article: Strategery review, hints, tips, guide for more general info about the game and tips on how to play other modes.
Strategery Starting Moves (Border, Attrition mode)
My favourite (by installed time and playtime) iOS game has to be Strategery. I have already written a general review and tips guide. This time I did a video that covers getting started in the Attrition casualties, Border reinforcement mode.
This mode makes for the fastest games and are therefore perfect for casual play. By the 4 or 5 turn you know whether or not you are winning the game. In this mode ten spots almost don't matter like they do in Winner Takes all / Random mode. Choke points are where you can have a single region that borders multiple enemy regions. The basic tip is to establish a strong border around a hinterland and then to creep that border forward. Try to increase the hinterland without increasing the border.
See my other article: Strategery review, hints, tips, guide for more general info about the game and tips on how to play other modes.
2012-11-26
Arduino LCD: Defuse
This games is about finding a bomb in a 100 x 100 x 100 cube. That's 1 million possibilities. To help out the player is given a mysterious bomb detector. There is 200 seconds (20 turns) to find the bomb. Each turn the player gives coordinates and the scanner returns a new reading.
Code: http://eturnerx.com/files/arduino/014_defuse_eturnerx_arduino_lcd.html
This time I made some quite big changes to the game. I cut some of the flavour text for illegal moves. For example, if you input numbers too large or small then you'd accidentally step outside the building and fall to your death. Also, the original game uses a fixed algorithm for building the scanner reading. Once you know this algorithm them you can theoretically win in one turn. Instead I made the scanner algorithm change every game. This gives much more replay than the original. It is still very easy to win though and 20 turns is perhaps too many. In my first attempt I won in 8 turns and that included making many errors and inefficient plays.
HINT1: The scanner does not give a pythagorean distance, but it is a strength reading.
HINT2: Get each digit of the scanner to a 9
SPOILER: Each scanner digit is the nine minus the difference between the bomb's position and the scanned position for that digit. The order of the digits is intentionally mixed up. Work digit by digit. Go with "9 minus the most common digit" as your first guess. Once you've located the coordinate digit on the scanner then you can test for value at the same time you locate the next coordinate digit.
Checkout the other games I have converted.
2012-11-18
Arduino LCD: Nicomachus
This is a game that is a simple "guess your number" game based on an algorithm published in 90AD. Think of a number between 1 and 100 then answer three questions about it. The original BASIC game is by David Ahl.
Code: http://eturnerx.com/files/arduino/013_nicomachus_eturnerx_arduino_lcd.html
This was a pretty quick conversion. I cut much of the flavour text - including a taunt to recheck your arithmetic if you disagreed with Nicomachus' answer. Having said that, I was surprised at how often people would get a remainder wrong during testing. Maybe the taunt should've stayed. If you'd like to play a more faithful conversion then try my online playable version of Nicomachus.
Checkout the other games I have converted.
2012-11-11
Arduino LCD: Camel
This is a game that is kinda like a cross between Oregon Trail and Highnoon (arduino, html). Make your way 200 hundred miles across a desert without dying in deliciously anachronistic ways.
Code: http://eturnerx.com/files/arduino/012_camel_eturnerx_arduino_lcd.html
I had to alter the text to suit the smaller screen, but did try to preserve the tone and flavour. There are some minor differences to the original game. I used the PROGMEM technique used in my Highnoon conversion to fit all the text into memory. See my Camel Conversion for Twine writeup for more details on the game logic changes and information about optimal strategy.
Checkout the other games I have converted
I have also converted an online playable version of Camel.
2012-10-21
Arduino LCD: Mugwump
This is an old game I never recall playing but it was one of the inspirations for Hunt the Wumpus and it has some elements of a game I was thinking of writing. There are four mugwumps hiding at random locations in a 10x10 grid. The user supplied an x & y coordinate to scan and is told if they have located a mugwump. The user is also told the distance to any mugwumps not yet found. The game ends after all mugwumps are found or then turns.
Code: http://eturnerx.com/files/arduino/011_mugwump_eturnerx_arduino_lcd.html
Mine differs from the original in a few minor respects; distances are rounded to the nearest integer in order to fit the display. Distances over 9 are simply not given. These small changes only make the game slightly tougher and most games can be completed in seven turns.
This looked like an easy game to convert; and it certainly is much less complex than many others. The kicker is that much of the supporting historical information is not in place and the game is kinda tough. I spent more time writing a wikipedia article and creating an HTML5 based game cheater *cough* helper than doing the Arduino code.
Checkout the other games I have converted
2012-10-15
Arduino LCD: Acey Deucey
There's something satisfying the challenge of fitting games into the limits of a 16x2 character display. This week I did a version of a card game called Acey-Deucey. The basic rules of the game are: first the player antes into the pot. Then two cards are dealt. The player may then bet on whether or not a third card will be between the first two cards. All you need to do is outlast an Arduino-AI opponent.
Code: http://eturnerx.com/files/arduino/005_acey_deucey_eturnerx_arduino_lcd.html
I did make some small changes to the game as it is played live:
- Ace is always higher than King and never lower than 2
- Pairs do not result in an automatic penalty
- The ante increases every few turns
A player can pass by betting "0". A player's maximum bet is limited by the size of their stack and the amount still left in the pot. The AI will bet only when the spread (distance between the two cards) is seven or greater. The AI bets more with wider spreads but will bet only up to half its stack. This is not a bad default strategy.
Since this game is mathematically solveable for optimal long-term play I intentionally made the Arduino-AI a little stupid; the AI does not count cards. There is a single standard 52 deck (4 suits, 13 ranks) being tracked and you are told when the deck is reshuffled.
You can gain a big advantage by simple card counting. Counting 234|QKA versus 6789T should do better than chance. You gain even more of an edge by tracking ALL cards and counting the ratio of good vs bad cards; Just how poker players count "outs". If you're really nerdy you might even try Kelly betting. Hey, whatever you find fun :)
Checkout the other games I have converted
2012-10-01
Arduino LCD: Highnoon Conversion
This week is a conversion (strictly a re-imagining) of a game from 1970 called High Noon. Try to kill Bart in a shoot out! Your have a range of options that can be accessed using the left, right and select buttons on the Freetronics 16x2 LCD shield. After your turn Bart has his turn. The video shows only a few of the things that happen in the game.
Code: http://eturnerx.com/files/arduino/004_high_noon_eturnerx_arduino_lcd.html
The AI is probably tougher than the original. The text prompts were shortened to fit the screen and a few new things added for flavour though the essential game is the same. A few edge cases (running away) were changed and the being shot in the back was also changed. Any action the fails, standing still or walking/running 0 paces results in a penalty making you easier to hit.
The implementation uses a state machine in the main loop in the same way that the Hunt the Wumpus conversion did. In addtion, the static string data grew too big for the working memory on the Arduino so I needed to use the PROGMEM trick and create a string table.
If you are interested in a more faithful, online playable version then check out my HTML conversion of Highnoon.
Checkout the other games I have converted
2012-09-23
WorkOut Poker Episode 3: HUD
Continuing on with first steps towards an ExerciseUI, this episode adds on a HUD to give stats that help decision making while playing.
The HUD shows VPIP / PFR & AGR / 3Bet stats. These are only basic but there was not much room for any more since the size of the numbers needed to be increased.
I had the dreaded problem where the Kinect would stop updating in FAAST. It turns out that the shortcut I was using to launch FAAST lost "Run in Administrator" mode and you should disconnect the Kinect power USB converter from the computer after a reboot. It was fiddly but once it was running it was rock solid.
Getting the HUD running was not trivial. It causes a huge load on the computer to run FAAST, PokerStars and Holdem Manager 2 at the same time (while I was recording). The FAAST display would sputter and gestures would not be recognised. The solution was to use ImDisk and move the HEM2 database into RAM. I also made a different ImDisk RAMdisk and recorded the video straight to that. Time to buy an SSD.
The HUD stats were useful. There were not many hands on the other players but even still some information was better than none.
Episode List
Episode One: Basic Functionality
Episode Two: Bet Sizing
Episode Three: HUD
2012-09-15
WorkOut Poker Episode 2: Bet Sizing
Continuing on with first steps towards an ExerciseUI, this episode makes some improvements to existing gestures and adds gestures for bet sizing.
Some of the existing gestures needed a bit of fine tuning so that they would trigger more reliably and not trigger at unwanted times. The gesture for fold changed into three raises of the knees in either a left-right-left or right-left-right pattern. This is to allow some variation in the marching step used to fold. The previous left-right pattern just didn't quite feel right when playing.
In the last episode the Kinect would stop updating in FAAST. This was edited out of the video, but having to restart FAAST every seven or eight hands was tiresome. To anybody else having this problem, the answer is to run FAAST in administrator mode and to plug the Kinect into a USB that connects directly to the motherboard. Usually these will be on the back of the computer. It seems that the Kinect does not play nicely when going through intermediary USB hubs.
There are four betsizing actions for 33%, 50%, 75% and 100% of the pot. It was ticky getting the 50% and 75% actions to distinguish from each other. Doing cross hand above the shoulders move would trigger both the 50% and 75% pot size bets. I did manage to get something workable, though some care must be taken such as; squarely facing the Kinect camera, pausing after raising hands and pausing after hands are crossed. I hope to make this even more robust in future.
The increased stability meant I got in a 50min poker session. I ended this voluntarily - the software was rock solid this time. The activity level is still very low but it does beat sitting around. The next episode will experiment with multi-tabling to see if that improves the activity level to something more resembling a workout.
Episode List
Episode One: Basic Functionality
Episode Two: Bet Sizing
Episode Three: HUD
2012-09-09
WorkOut Poker Episode 1: Basic Functionality
In a previous article "The ExerciseUI" I explored the idea that exercise should be something integrated into our daily workload. Technology is becoming cheaper and easier to use. Here are some baby steps.
I happen to really like Poker, so I made some custom gestures in the FAAST Kinect software for PokerStars. The three man gestures are: fold, check/call and bet.
Playing one table of Zoom poker creates a low tempo of activity. The most common poker action is folding so this is linked to the most common exercise: walking on the spot. The other actions require big hand movements with energy levels that correspond to the severity of the action.
This is early days yet; there is much more to do. While the activity levels are low, making this control more than one table will improve the tempo considerably. I also hope to estimate loads placed on different muscle groups to vary the gestures for actions to meet exercise goals. In this way we can work AND exercise.
Episode List
Episode One: Basic Functionality
Episode Two: Bet Sizing
Episode Three: HUD
2012-08-28
Arduino LCD: Hunt the Wumpus Conversion
This week I recreated an old text game that I remember as a kid in the '80s: Hunt the Wumpus. The game is apparently from 1971. Basically you wander around a map trying not to fall into a pit trap or get eaten by the wumpus. You win by shooting the wumpus - but don't shoot yourself!
Code: http://eturnerx.com/files/arduino/003_wumpus_hunt_eturnerx_arduino_lcd.html
The map is a squashed Dodecahedron. Arranged into three rings. The inner and outer rings have five rooms while the ring between them has ten rooms. Every room links to exactly three others; back and forth on the current ring and another to change the ring. While the interconnections in the map never change, my version of the game scrambles the room names whenever a new map is generated (on power up or when selected at game over). A new map also randomises the starting positions of the player, the pit, the bats and the wumpus.
Shots can travel up to five rooms, but can only travel into rooms that you have already visited and or have been one room away from. It is possible to shoot yourself.
The implementation uses a state machine in the main loop. It's a pretty big one but things don't seem to get out of hand. That's why I love the state machine approach; it allows the programmer to think of the overall structure but then just concentrate on the single task they were working on. For a much simpler state machine check out the previous video.
Checkout the other games I have converted
2012-08-12
Arduino LCD & State Machine Demo: Life & Poison counters
Continuing on from the last video; adding a hidden Poison counter is a good chance to build a simple switch()...case state machine.
The code: http://eturnerx.com/files/arduino/002_mtg_lifepoisoncounter_eturnerx_arduino_lcd.html
Last video: http://youtu.be/t6Y_GCoSUt4
A more comprehensive example of a state machine is in the next video; A Hunt the Wumpus game conversion.
2012-08-05
Arduino & Freetronics LCD - Magic:The Gathering Life Counter
My very first YouTube video. This is my first real Arduino project. The next video in the sequence explores adding a hidden poison counter.
Link to code:
http://eturnerx.com/files/arduino/001_mtg_lifecounter_eturnerx_arduino_lcd.html
LCD Quick Start Guide
http://www.freetronics.com/pages/16x2-lcd-shield-quickstart-guide#.UBKMm7T9OK9
LCD Product Page
http://www.freetronics.com/products/lcd-keypad-shield#.UB4Q8LT9Oqc