\n
— another line of code

Stalker: Call of Pripyat

The night is dark, so that I can barely see where I am walking. A line of bushes stands in my way; I make a long detour around them, rather than risk making noise by pushing through. Packs of blinddogs roam this area, preying on the mutant pigs, flesh, but they are always hungry and are not afraid to attack lone Stalkers. And I can hear them howling not far away.

In the distance ahead, a flash lights up the sky. At first I take it to be lightning, for the weather here in the Zone changes rapidly, and it rains and thunders as often as it is clear. Then a voice calls out on the radio: “Attention, attention. An emission is approaching. Seek shelter at once!” Another flash appears, and then more flashes. Emissions seem to occur daily here, massive outbursts of radiation that sweep across the land: no-one has ever survived being outside, unsheltered, during an emission.

I start to run. Emissions come on awfully quickly, so I have only a few minutes to find shelter. As I reach the crest of a small rise, I can just see ahead the outline of a building, a long-abandoned petrol station; I hope it’ll provide enough cover for me to survive. When I get closer I can make out other shapes moving around the building; it looks like a pack of blinddogs are there, and I fear I can see the glinting eyes of a pseudodog there also. Well, I can’t stay out here. There’s nothing for it, I pull out my shotgun and approach. They smell me coming within seconds, and they attack.

There are five dogs, six including the big pseudodog. I unload a few shots at them, and one falls. The remaining dogs don’t rush straight towards me, they split up to approach me from either side. Which is lucky for me, as it leaves the way ahead open. I sprint for the building and duck through the open doorway—now at least there’s a bottleneck where my shotgun gives me an advantage. The sky is suddenly illuminated with an ominous bluish glow—the emission is almost here—but at least I can now see clearly. Three of the dogs are close on my heels, and come through the doorway within seconds. I move frantically around the room, shooting at the dogs, and desperately avoiding their jaws and claws. In this enclosed space, they fall quickly to the shotgun.

I move to cover the doorway again, reloading my shotgun as I look out the windows to try and locate the remaining dogs. Too late I hear a noise behind me, as the remaining blinddog and the pseudodog enter the room; they must have come in another way. The pseudodog leaps, throwing me back, and biting me deeply on the leg. I stagger aside, and unload my shotgun into it, killing it. I have no time to reload as the remaining dog approaches, so I draw my knife and slash at it as it leaps. It yelps as the knife connects, then runs hurriedly out the door and into the distance, no longer so keen on a Stalker meal.

There is almost no time left. The glow in the sky is deepening, and the rumbling of the electric flashes is almost constant. I bandage the dog bite as I realise that the openness of the building I’m in isn’t going to give me protection from the emission. I limp out the back door, looking for shelter more substantial. And right there is a sinkhole in the ground, at least fifteen metres deep, probably opening onto caves. It doesn’t look welcoming, but I have no choice. Half-clambering, half-falling, I make my way down inside, reaching the bottom just as the sky turns blood-red and the emission hits.

I crouch in the pitch black at the bottom of the rift, and look up at the sky through the narrow crack above—fortunately too narrow to admit significant radiation. The red glow pulsates to bright white, and the ground shakes. It feels like the world is tearing itself apart. A prolonged thunder fills the air, and builds to a crescendo—

—and then the emission is past. I have survived. The glow fades, the rumble dies down, and I am alone in darkness at the bottom of a pit I can’t climb up. No, not alone: from within the cave opening I can hear growling, and I realise I haven’t survived yet.

3 weeks ago on February 21st, 2010 at 5:20 pm | Permalink

CSS3 brings Christmas cheer

I suddenly realised today that I had never played around with some of the more exciting CSS3 features: masks, keyframe animation, and transformations.

So in the spirit of the season, I spent 15 minutes whipping together a quick demo. This demo is entirely built with HTML and CSS, no javascript required. You’ll have to view it with Safari 4 or Chrome to see the effect though: Let it snow!

2 months ago on December 21st, 2009 at 6:40 pm | Permalink

Half-Life 2 is a beautiful game

Petrol pumps
Photo by CitrusFreak


City
Photo by banapaulo


Light


Pigeon
Photo by CitrusFreak


Fisherman


Building
Photo by CitrusFreak


Metrocops
Photo by CitrusFreak


City roofs
Photo by Fantt


Train station


Couple
Photo by Dabs84


Mine
Photo by thmx


Chapel


Chapel interior


Hallway
Photo by CitrusFreak


Barney
Photo by Dabs84
3 months ago on November 17th, 2009 at 11:21 pm | Permalink
App idea: This app will allow you to download musical scores, will display them formatted for the iphone screen size. You can use it to practice music: it will use the device’s microphone to monitor what you’re playing, and automatically scroll as you play the music. Tapping the metronome icon will play metronome ticks through the device’s speaker.

I’ve not done any research on this idea at all, and won’t be pursuing it. But sharing ideas is a great way to get inspiration, so I thought I’d throw this out there. What are some app ideas you’ve had?

App idea: This app will allow you to download musical scores, will display them formatted for the iphone screen size. You can use it to practice music: it will use the device’s microphone to monitor what you’re playing, and automatically scroll as you play the music. Tapping the metronome icon will play metronome ticks through the device’s speaker.

I’ve not done any research on this idea at all, and won’t be pursuing it. But sharing ideas is a great way to get inspiration, so I thought I’d throw this out there. What are some app ideas you’ve had?

4 months ago on October 23rd, 2009 at 9:53 am | Permalink

Unfit for purpose—followup

Just a few notes to follow up to my previous post about Apress PDF troubles:

After my first tweet about the problem, Apress got back to me very quickly suggesting the Aji Reader app that can process password-protected PDFs. And even followed up later, letting me know that Aji Reader prompting me for the password multiple times was a known bug. Unfortunately, thanks to the lack of Wifi on the train, and the extremely patchy mobile network access, I didn’t see Apress’s original tweet until after I had blogged about the problem. So I want to thank Apress’s customer support for being so active in helping me with my problem.

It still makes no sense to have the password on the PDF. The fact that I can’t re-save the password even when knowing it brings this into the realm of DRM, something I feel quite strongly about. I have bought PDFs from the Pragmatic Programmers before, who use no passwords or saving/printing restrictions, but do put the purchaser’s name and email address in the footer of every page. This is still very much preferable to Apress’s current solution. Better yet, the Pragmatic Programmers offer iPhone-optimised versions of many of their books.

My biggest complaint about the whole situation is that Apress make no mention of the DRM on their PDF on the catalogue pages or the checkout page—but only notifies you after you’ve paid for it. I think they should have a more obvious notice about it. I have just now found their “eBookshop FAQ” page, which states:

We rely on PDF’s password encryption to protect our eBooks from digital piracy. Until a better approach comes up, the eBook will require a password to open.

Well, Apress, there is a better approach: see the second paragraph above.

So far I’ve been unable to remove the password protection. Several people suggested opening it in Preview and using the “Print->Save as PDF” option (thanks, guys!), but that no longer works in Snow Leopard. The other suggested solution, the plain old “File->Save As” just produced another password-protected copy. At this point, I ran out of time, and had to leave for the train station. I tried again after returning back home last night with a third-party app, but it refused to run under Snow Leopard either. I’ve still got a Mac Mini running Tiger or Leopard, so I’ll try with Preview on that.

Finally, in my last post, I said “I’m not going to buy another PDF from Apress unless they start selling unprotected PDFs”. That’s a little ambiguous about my intention: I’m not calling for a boycott, but rather don’t feel it worthwhile spending money on inconvenient ebooks, since convenience is the primary reason for ebooks in the first place!

6 months ago on September 14th, 2009 at 8:28 pm | Permalink

Unfit for purpose

I had another run-in with the paranoid attitude of publishers today. I decided to buy the PDF version of Apress’s “iPhone Games Projects”, which—despite the clumsy title—looked like it might be handy. I’d flipped through a friend’s hardcopy edition a bit before: each chapter is by a different author, and on a different topic: networking, OpenGL, cross-platform game coding, and more.

I’m away for the weekend, and will have my iPhone, but not my laptop, so I was hoping to read some of the book on the phone over the weekend.

However, the PDF was password protected, so that you can’t read it without the password; which was not made clear during the purchase process until after I’d paid. This effectively renders it useless to me, since my iPhone won’t display password-protected PDFs. Since the book does not contain any state secrets that I’m aware of, the only reason to have the password is to make the PDF harder to share online, at the expense of (at best) inconveniencing the purchaser.

When I get back home, I’m sure I’ll be able to find an app to strip the password protection away; but until then, I’m left once again with a product that doesn’t work as advertised, due entirely to the publisher’s paranoid and vain attempts to stop the illicit spread of the PDF. And the irony is, as always, that I could have downloaded the PDF illicitly, and got a more usable product at no cost.

So I’m not going to buy another PDF from Apress unless they start selling unprotected PDFs. I might go look at the Pragmatic Programmer’s catalog now, since I’ve heard they sell real, usable PDFs.

6 months ago on September 11th, 2009 at 6:06 pm | Permalink

How to sell to a pirate

Paul Battley, to the media industries:

  • There is no point in putting restrictions on the sale of the legal copy, because your free competitor has the same product.
  • When you region-code the product, you prevent me from buying it.
  • When you don’t sell the product in my territory, you prevent me from buying it.
  • When you put DRM on the product, you prevent me from using it on the device of my choice. I don’t want to be locked into buying Apple products forever, for example. And that prevents me from buying it.
  • There’s no point in putting DRM or other restrictions on the product, because it’s already available. Give me commonly-accepted formats in a choice of bitrates. What’s the worst that can happen? I upload it to Usenet? It’s already there!

He also makes the point that:

Even though it’s free, pirating stuff is still a bit of a hassle. You [the media industry] could definitely beat them [the pirates] on convenience and speed of release.

Although you know what? The media industry had better get its act together quickly: the options for piracy are only getting simpler and easier.

6 months ago on September 8th, 2009 at 9:40 pm | Permalink

Ramp Champ Revamp?

After noticing quite a few people on Twitter talking about Ramp Champ, I decided to give it a go. The artists from The Iconfactory have done an amazing job on the graphics for this little game.

The first time you start the game, and tap on a ramp to begin playing, it opens with a brief tutorial made of of five short messages:

Flick up on the ramp to roll the ball. You get 9 balls for each round. Your score! 500 pts = 1 Ticket. Ramp goals are here. Win trophies and bonus tickets! Done with this ramp? Turn in your tickets for fabulous prizes! [Play again button] [Done button]

This final message thoroughly confused me: the game was asking me if I was done and would like to turn in my tickets—but I hadn’t yet begun playing, and I hadn’t got any tickets yet!

With only two buttons to choose from, I thought that “Done” would take me back to the menu; so, thinking that I had run into an odd bug where the game was wrongly showing the end-of-level menu, I chose “Play Again”, thinking that would allow me to start playing the game.

Of course, it didn’t: it replayed the tutorial. Suddenly the final tutorial message made sense: it was showing me how to get back to the main menu so I’d know when I was done with the ramp; and the buttons meant “Play the tutorial again”, and “Done with the tutorial, let me play the game!”.

How could this confusion have been avoided? Perhaps if the screen had been labelled like this:

When you’re done,
turn in your tickets
for fabulous prizes!

[Show me again]
[Play the game]

However, now I noticed a second, smaller problem with the tutorial: since I had already seen it, and had unintentionally asked to show it again, I did not need to read the messages again. But I couldn’t skip them: it advanced through the tutorial in its own good time, and I tapped on each screen to no avail. First confusion, now frustration, but finally it was over, and I tapped Done to begin playing.

Here a third problem arose. I have an original iPhone, and although it’s not the snappiest beast, it’s capable of playing quite complex games. In ramp Champ it was almost fast enough, almost. The framerate was just the slightest bit erratic. Worse: this affected the controls, and flicking the ball felt unresponsive and hard to control. Just to make sure it wasn’t my lack of skill making it hard for me, I also installed the game on my second-generation iPod Touch, which is noticeably faster than the phone: and here it was fine: I could perhaps aim no better, but now flicks would give an immediate, and consistent response. I was quite surprised that it had such a performance issue, since there are barely more than a dozen elements moving on the screen. I guess there’s room for some more optimisation here.

The game itself is pleasant: collect tickets by knocking down the various targets, then collect your tickets and trade them in for a variety of beautifully-rendered icons of prizes. But after having played around with it for a while, I don’t think it’s quite my thing.

6 months ago on September 5th, 2009 at 2:04 pm | Permalink