Missed a Tuesday, then a Wednesday. I’m great at this…
Last week at work was preparation for our first real outing for Skute, where we’re running a music thing at Streetfest. Getting all the content-related ducks in a line has been a bit of a flashback to previous lives doing agency-type things, but with a couple of days to deadline it’s falling in to place, now to fit actually doing it around my day job…
The weekend was Falling Down, a LARP (or probably LRP, in this case) event based on the classic Tribe 8 setting. I’ve got half an article on that, and I need to both finish that and get some photo clearances. The event was awesome. I went in as Kitchen crew, with a full character to play, and managed to get invested in the plot, further my own agenda, and also help cook delicious stew. Plus, I brought along my vacuum coffee apparatus, about which people were suitably awe-struck.
Spent a lot of time on business admin and stuff. It’s almost exactly two years since I pulled Istic out of mothballs, so there’s a block of admin and domain renewal stuff on my desk. Excitement and adventure.
Playtime has mostly been more Fallout: New Vegas, which is probably an article in itself, but this week the final act of Broken Age dropped, so I’ve been working though a replay of Act 1, then the new content. That turned into a review of this slightly disappointing game.
Oh, and I found a new theme I like for Aquarionics. Farewell to the slider, at least for now. I liked the concept, but I need to find a new way of making it work. That’s pretty much the only personal-projects thing to get any love this week, though I fixed a few bugs in Lampstand’s logging and Lifestream’s fitbit tracking.
Title image is some playing around with an idea for the new header, but I’ve got back to traditionalism…
On the uccessfully raised $3,336,372 on Kickstarter to do something I’ve always wanted Double Fine to do: Make an old-style Lucasarts Adventure game, but with all the shiny graphics and stuff that modern development can provide.
Three years, one and one half months later, we get the final result: An old style Lucasarts adventure game, with all the shiny graphics and stuff. Everything we ever asked for, but not quite what we wanted.
If the whole thing had come out last year, or even half of it came out within a stone’s throw of the original pitch date, this might be an entirely different story. But it didn’t, so it’s not. The first act was a really good adventure game, the graphics were pretty, the sound and voiceovers were well done, even the shear range of the variations of “That doesn’t work” went well. The puzzles were signposted, and – for me – hit the slightly easy side of the magical Adventure Puzzle Line, where you know *what* you should be aiming for, and now you need to work out how.
The problems I had with it were almost always where it didn’t reach far enough, or didn’t play hard enough, and central to those were the lack of playing with the central premise – that you are two sides of a single adventure. There wasn’t any crossover of puzzles, and while you could see the seams where the storylines touched, until the very end they didn’t interact at all.
Act 2 answers all my problems with those, and rarely has everything I asked for been quite such a hollow victory.
There isn’t a long and storied history to multiple protagonist adventure games. There are, in fact, two. Manic Mansion, and its sequel, Day of the Tentacle, and once you’re treading on the coat-tails of DOTT, you need to have laced up your boots well and tight, because you’re wandering in to one of the most complexly logical sets of multiple-person puzzles seen. Dropping a hamster into a deep freeze in the present to revive it in the future stuff.
Broken Age Act 2 misses the mark in three important respects:
First, the pleasant and well-crafted locations in Act 1 are the pleasant and well-crafted locations in Act 2. Characters have advanced a scene – often due to events of the first half – but the traditional revisiting of the last Act’s stars to explore new dialogue and new puzzles misses any balance of exploring any new places, or any new characters. I can think of one single character in Act 2 who didn’t appear in some form in Act 1, and their influence is almost zero. Some get expanded, and some locations are modified, but you’re almost always visiting old places from a new angle.
Some of the puzzles are great and well crafted, but not many. Adventure games have never really respected the time of their players, but some of the puzzles of Act 2 take this to egregious levels. One in particular requires a combination Rorschach test, a conversation with an NPC 5 screens away who you have no reason to suspect might know anything about the subject, who then sends you to find a pencil so they can write down a diagram which you then have to abstractly describe in another three stage Rorschach test five screens away, any single mistake will reset the whole thing back to the beginning. I’m not proud to say I ended up solving that puzzle with a walkthough and a screenshots folder, and it still ended up taking five more attempts.
In addition to the read-the-designers mind aspects of some puzzles, there’s a weird disconnect where a few puzzles cross characters, and there is no in-game mechanism for them to be able to share information. If Shay sees this diagram, and Vella has to use the content to fix a thing, and the whole point of the storyline is they barely ever meet, how do either of them solve the puzzle? And that’s not including the puzzles that rely on a single off-hand line of un-repeated dialogue from the other side. One spacebar to skip cutscene and you’re doomed to guess.
In other words, it’s not that far away from some of the more bastardly ends of the old-school Lucasarts adventures, where you had to read the designers mind to get any further.
There are some bright spots, and enough glowy-moments of successfully solved a difficult thing that I don’t regret my time or money devoted to it. The dialogue is well written, and the story well-realised, if not inclined to dig deeply into its themes too much. The voice overs are great, and I enjoyed the music.
All in all, it’s… what we asked for, if not the Adventure Game Revolution we hoped.
Highly worth picking up on the cheap at some point, and going through with a policy of shift-tabbing to a walkthrough if you get stuck for more than your patience lasts..
Often I’m working with people who own a domain, but don’t really know what that means, or how it connects to the real world. Or at least the internet. Here’s a basic guide to how stuff plugs together. There are four roles involved:
The DNS Host
The owner is you. Hi. The person or persons unknown who put down their credit card and said “That one” and bought a domain.
This is who you gave your credit card details to. They put a record for that domain up in the global DNS system that says “the owner for this domain is The Owner, and the DNS Host is”. This information is public, though a lot of the time Registrars will sell you the ability to use redirecting email addresses and blanked out physical addresses.
The DNS Host
Domains are text – aquarionics.com – but traffic is routed on the internet to IP addresses – 126.96.36.199. DNS, the Domain Name System, is the method by which this translation occurs. Very simply, a request for www.aquarionics.com will make a request of your DNS host as to where that means, like a taxi driver reliant on a GPS.
For most people, your DNS host will be your registrar. They host your Name Server, and that’s something you set on the domain with your Registrar. For example, Aquarionics.com is registered with Namecheap, but my DNS is hosted by Amazon’s “Route 53” DNS service. With Namecheap, I set my name server settings to point at Amazon’s service.
Generally, as I say, this is something your registrar does for free as part of your domain hosting, it’s likely you have a “host name” admin section of your registrar.
This is one of the common points where your hosting company might ask you to change your domain settings.
Very simply, a domain record is made up of four things: a name, a type, a value and a TTL or “Time to live”:
Name: The domain to match. By the point we’re here, the system already knows the “aquarionics.com” bit, but there will be seperate options for “www” and any other things underneath it, including nothing at all.
Type: “A” records link the name (www.aquarionics.com) to an IP address (188.8.131.52). “CNAME” records link it to an alias. So in the above, going to dailyphoto.aquarionics.com looks up that record, sees a CNAME for dc80vpukp1283.cloudfront.net, so it goes to find out what that means, which comes back as “184.108.40.206”. It’s worth noting that this isn’t a redirect for the user, it’s making the request of another DNS service. The answer is always eventually going to be an IP address where the full “Send me this website” request will be made. (Other record types include TXT for arbitrary text strings, AAAA for IPv6, and some others. They’re beyond the scope of this article)
Value: What comes back
TTL: How long to keep this information, in seconds. In the above, the record for www.aquarionics.com should be kept for an hour, but for dailyphoto you should ask again in five minutes.
The actual computer at the other end of this, numbered 220.127.116.11, which gives out the website.
How does this fit together?
If someone’s never visited your site before, like this: (I’m simplifying this quite a bit)
You type in “www.aquarionics.com”. Your computer asks the DNS system what IP address that means. The global DNS system goes “You should ask The DNS Host”, the DNS host goes “The answer is currently 18.104.22.168, but ask me again in an hour”, your browser sends a request to the server at 22.214.171.124 saying “Can I have the front page of www.aquarionics.com, please” and that’s the end of the DNS bit.
There is stuff that makes this more complicated. For example, at any point you can get more than one answer. If you ask for dailyphoto.aquarionics.com, for example, you get an answer like this:
;; QUESTION SECTION:
;dailyphoto.aquarionics.com. IN A
;; ANSWER SECTION:
dailyphoto.aquarionics.com. 300 IN CNAME dc80vpukp1283.cloudfront.net.
dc80vpukp1283.cloudfront.net. 60 IN A 126.96.36.199
dc80vpukp1283.cloudfront.net. 60 IN A 188.8.131.52
dc80vpukp1283.cloudfront.net. 60 IN A 184.108.40.206
dc80vpukp1283.cloudfront.net. 60 IN A 220.127.116.11
dc80vpukp1283.cloudfront.net. 60 IN A 18.104.22.168
dc80vpukp1283.cloudfront.net. 60 IN A 22.214.171.124
dc80vpukp1283.cloudfront.net. 60 IN A 126.96.36.199
dc80vpukp1283.cloudfront.net. 60 IN A 188.8.131.52
Which translates as:
You asked for dailyphoto.aquarionics.com. It’s aliased to dc80vpukp1283.cloudfront.net, which has these records. Multiple answers for the same question means they’re all right, and you can pick any (but usually from the top down, trying each until you get an answer)
Mail works exactly the same way, but instead of “A” records and “CNAME” records, you have “MX” or “Mail eXchange” records which dictate servers that accept mail for this domain:
aquarionics.com. 300 IN MX 10 alt1.aspmx.l.google.com.
aquarionics.com. 300 IN MX 10 aspmx.l.google.com.
aquarionics.com. 300 IN MX 20 alt2.aspmx.l.google.com.
aquarionics.com. 300 IN MX 20 aspmx2.googlemail.com.
aquarionics.com. 300 IN MX 30 aspmx3.googlemail.com.
Unlike the records above, MX records have priorities attached, so you should only go for alt2.aspmx.l.google.com if alt1.aspmx.l.google.com isn’t responding.
Changing hosting providers
This is where this usually comes up as a thing. If you’re moving where your website is hosted, your new company will almost certainly request this DNS change. This is where TTL comes in. A while (days) before this is coming, you should lower the TTL for the website’s records to 30 seconds or so. This will mean that when you do actually make the change, the rest of the internet will not try to keep the old answer for ages.
This doesn’t always work perfectly. Your computer keeps its own cache of DNS answers, and is almost certainly using your router as a DNS server. That in turn is making requests of your ISP’s DNS servers, which are probably asking the global systems. That’s a moderate number of systems that need to be honouring the times correctly for this to work properly, which is why the standard advice of “2 days for changes to flush though” is still so common. You’ll get 80% in the first half hour or so, but the remaining 20% might take a bit longer.
@ and *
@ is a little overloaded, and this is one of the places where it is. Some hosting providers will give you a record with the Value “@”, which stands for the unadorned domain itself, so just “http://aquarionics.com”. Notably, this isn’t allowed to be a CNAME, or alias, it needs to be an actual IP address.
* is a wildcard domain. So having a record for “*.aquarionics.com” pointing at 184.108.40.206 would mean that going to anything like that “fakedomain.aquarionics.com” up to “supercalifragilisticexpialidocious.aquarionics.com” would all resolve to 220.127.116.11
That’s it, I think. Slightly more tech than it should ideally be, I know, but with any luck a useful reference.
The wrong question is “What did you do before the internet?”, today. Today’s question is “What do you do after the internet?”. We have no internet, because Virgin are futzing with the wires, and so I have a freshly minted day off and no internet to fuck around on.
That’s not strictly true, of course, since while I don’t have a wired broadband connection, I do have a 4G network living in the air around me. But it’s not great for latency-specific stuff, though it should be fine for blog posts. What did I do this week?
Some bits and pieces for a Skute set piece in a couple of weeks time. Over the last year or so I’ve hacked together a number of quick python scripts to perform common actions – check up on a user, update some content, test the upload system – and lots of them have been hacks to the core database. A lot of them sharing code with the API. This week I’ve been updating some of them to use the actual APIs instead, on the basis that anything I want to do with the data should be possible though it.
A bit more tidying on lifestream modules, including updating some things to use modules instead.
I’ve now done my Empire homework, and am ramping up for crewing Falling Down this weekend. I’m really quite looking forward to that. Brand new system for me, with a lot of people I like and don’t get to play with very often.
Mostly I’ve been playing Fallout New Vegas, because it supports shorter play-bursts than Pillars right now. Having said that, I’ve spent a *long time* on FNV, so that might not have worked ideally.
Quiet work week, so we’ll skip that. Decided that I’d had enough of print statements, and moved both Lifestream and Lampstand over to use Python logging instead for everything outputty. Lampstand also needs a pass to separate output into levels, right now everything’s at INFO.
Positive feedback on some creative writing I did recently – on tumblr, and in scraps elsewhere – has led me to want to carve out time to get the novel moving forward again. I need to suppress the urge to kill it with fire and start from scratch, but right now it’s plodding a bit.
Somewhere between Rest and Play lies Odyssey work this week. A good Story Team meeting at the weekend has set some flags out for the year, and indeed next, and then I spent a few hours putting together the Odyssey T-Shirt shop, to supplement our costume & props budget with mercenary goodness.
Somewhere over the last week I’ve also carved out 13 hours to watch the full first series of Daredevil on Netflix, which I enjoyed a lot, and should turn into another entry shortly…
For LARP events, including most recent Empire, PD relies on quite a bit of technology. With all the will in the world, keeping track of 1500 players and their characters, their medical highlights and plot highlights, is hard to do with bits of paper.
In this series of things, I’ll take you though some of the solutions we’ve found to problems in the field.
One of these is the tyranny of little bits of paper.
We run in a mock-medieval setting, of kingdoms and knights, orcs and wizards. But on the field, we generally avoid doing in-character things on computers. The refs are issued android tablets, which can be used to record the game events we need to keep track of (Rituals cast, etc.) and we’ll get to the tech of that some time later. Empire, though, has admin that happens in the field, be it the resource trading of the Bourse, or the House of Cards politics of the senate. All this happens on bits of paper, because there’s nothing quite so immersion breaking as dealing with a medieval clerk poking away at an iPad.
Plus, characters in the field communicate with off-site NPCs – and sometimes each other – with letters.
However, this leads us with important information on bits of paper that needs to be kept, and bits of paper are absolutely fucking awful. They get lost, they get muddy, they get out of order, out of place. Only one person has it at any one time, and whoever has it has to physically transport it somewhere else before it can be viewed by others. Kill it, kill it with – terrifyingly effective – fire.
We try to keep information on the wiki, one of three Mediawiki installs (A crew information one, a plot one, and a public one), so generally the first thing that happens after an event is that people try to type up their information and put it in the wiki. But typing up that kind of thing is time consuming, and is likely to lose any interesting layout or design the players have put into it, and it would be far better if we could do it in the field. And nobody has time to type up their notes in the field, we’ve got things to run.
For odyssey last year, I brought my Doxie scanner to solve this problem for the smaller game, and when that worked well, asked PD to get one themselves.
1. People who had stuff to scan fed it though the Doxie, and it went on the SD card.
The Doxie document scanner is a wonder of modern technology. It’s a small box, about the size of a roll of tin-foil, and you put documents in one side, and it scans them and puts them onto an SD card. It’s got rechargeable batteries, so it doesn’t need to be plugged in, and it looks like a USB Mass Storage device when you plug its USB port in. It’s the centre point of my own paperless system, which I’ll talk about in a future article.
Importantly, once the person had finished scanning stuff, they could go away and do whatever their job is supposed to be.
2. When the Doxie is plugged into my laptop, do stuff.
Sitting on my laptop was Hazel, an OS X utility to Do Things When Things Happen. It’s an awesome utility, but in this case could be replaced by anything with the ability to notice a directory has changed, and do something.
3. Specifically, run a python script to upload anything new in the directory to the Wiki
Once it’s on the wiki, users could add categories and stuff to make sure things didn’t get lost.
What went right
It worked. There are a few dozen senate motions, and a load of things from the Conclave, that are sitting up on the wiki that would usually be waiting until someone had time to type them up.
It was easy to use. Once people got the hang of feeding stuff to the scanner, they could do so fairly quickly.
Knowledge Transfer. I ended up being the person who used it most, partly because of the few people who knew it was there, I was the one with the most paper.
The Mud. There is no set of positive/negatives for last event that doesn’t feature the mud, but in this case, people were – rightfully – wary of feeding a document scanner anything that had encountered the wet and sticky ground
Single point of failure. Because I wrote the software for my mac, it only worked when it was plugged in to that, and my desk is a bit out of the way.
Power. The Doxie Go, which I have, has a built-in rechargable battery. The Doxie One, which I recommended to PD, requires NiCad batteries before that works, which we didn’t have on site, so it was tethered to my desk by a dodgy power cable.
Fussy Scanning. The Doxie is a bit fussy about straight edges of things going in, which isn’t great for the random edges of player-supplied paper. We can solve this by having a clear plastic wallet to put things in if the Doxie’s being picky.
No Preview. Stuff going directly to the wiki includes duplicates, and failures – like things that went though diagonally.
In general, though, it was a nice solution to a problem we’ve been having, and now we can make the incremental steps to make it even better…
A few days in a field has cleared my brain fabulously, although I’m a few days off the week update.
Bug fixing in one place, refactoring in another. Soon, new development. Invoicing week on planet Istic.net, which means getting my expenses in a row. Today’s the deadline for last year’s expenses to go to my accountant, but I think that’s all in order.
Updated lifestream to use a unified logging framework, which the first stage to it not being a horrible mass of cron scripts. Also put in some virtualenv config to attempt to avoid multiple scripts running at the same time conflicting.
For other, see other posts this week. Went to Empire, had a good event despite the mud, now not dreading the year. This week, Odyssey, and then preparation for Falling Down.
Some pillars of eternity, and attempting to clear Transylvania in TSW before Issue 11 comes out. The new Neverwinter expansion looks good, so I might blast though some of that at the weekend.
There is a moment when you stagger back into your home after five days in a field, and the concept of carpeted floors just looks… strange and alien. Maybe it’s tiredness, or the tendency of the human brain to adapt and then reject change, but the concept of solid floors becomes strange to your brain, and incredibly welcome.
When you have a field, and it’s been raining for a while, and then you put a couple of thousand people on it, you get mud. Second event last year we had a similar problem, but that mud was being regenerated by fairly constant rain, this mud was drying out. When we arrived, and the site was starting to look a bit bleak, people were saying “The drainage on the site is awesome” in an increasingly cult-like and familiar tone. It became something of a running joke, because on Sunday, when I took the header photo, it looked like that. But the mud was drying, though the thick, claggy, viscous semi-solid that sucked at your boots as it sucked at your soul, into – in some places – a walkable surface. An attack with a roller helped, but with some incredible effort on the part of our miracle-working site team, people were getting off the field. As a small part of PD crew, I am occasionally reminded that I work with some of the most dedicated and selfless people I have ever met, who sacrifice incredible amounts of both time and energy to make the game better for not only the players, but also the other crew.
It’s traditional1 to produce event summaries in positive/negative format, so:
+ Senate process is, I think, about as good as I can get it right now.
+ The Empress Election procedure got run, after some discussion of precision, had actual firebrand speeches, even if nobody actually won
+ New characters with extreme interest in the senate processes make the amount of work I put into physrepping them more worthwhile.
+ The new procedure for not typing up senate motions during the event has made my life a lot easier, too.
+ My sleeping setup was warm enough
+ Having been converted to the cult of Sealskinz socks, my feet remained both warm and dry for the whole event
+ With the careful application of thermals, the rest of me also remained warm
– … Except for Sunday, when I decided that the day was warm enough to forgo them, forgetting that the night would not be, and changing time is unlikely.
+ I’m more and more happy with my lineage physrepping. I’d prefer if I could do it on my own, but Makeup don’t mind
– … I need to stop forgetting to reapply it in the mornings.
+ I actually had a lot of fun making this thing go, although it was the most exhausting event I’ve ever crewed (see above re: claggy mud).
– The mud. All the mud.
– A number of unnecessarily hard simple things, which we need to fix internal process on.
– Same as above, but for my colleagues, and the rate at which it’s wearing them down.
– Some timetable changes meaning my ability to social during the event has drastically cut down.
– Guilt, since I can either get home in reasonable time *or* help pack down. This can only be fixed by learning to drive, really.
In general, though, an exhausting but really good event for me. Thanks to the rest of the CS, especially Harry & Kate, for being a great team to work in.
It took 12 hours, I’m still fixing bugs in it, but it’s there, a new base to start from, and nearly five months work. It could have gone better, but there are ways it could have gone worse.
There was nothing else at all in my working week.
I’ve done pretty much no prep for Empire, and a lot of my good intentions evaporated over winter. So it goes. I’ll turn up in the field on Thursday, and try to learn to care less.
I have made not a single commit to a personal project in the last week. That’s a little scary, and in no way good.
Mostly, the reasons why are in the Small Content Provider post I made earlier this week. A post which got several retweets, a few reblogs, and I saw other people on my facebook timeline discussing it in their own facebook timelines. As a thing to prove my point, it proved my point very well, it got more response than anything I’ve posted here in the last year.
Pillars of Eternity, for more than I’ve played anything in one sitting since Christmas. Also I got into TSW and doinked some golden golums on the head, and defeated the angel in Hell Eternal (though not without dying in the final battle. That last fight in HE is I think the only Elite Boss I’ve never been alive for the final fall of).
Most of the next week is going to be spent in a field wearing various silly hats.