Source Code is a tightly written, sharply executed dose of intelligent SF, with winning performances and characters that you can care about. Why then does it remind me so much of Sucker Punch, the bloated ugly adolescent fantasy I ragged on last week?
ADVISORY: FROM HERE ON IN IT GETS SPOILERIFFIC.
Let’s start with the main characters of both films. Colter Stevens and Baby Doll are trapped between worlds. They are incapacitated, unable to interact with the real world in any true sense. Their conditions mean that they are free only in their own heads. Although we see them run, jump and fight, we are watching a mirage. Colter and Baby Doll are ghost warriors, soldiers in an ethereal new territory.
Both films take place in multiple worlds and offer up the possibility of alternative realities. Baby Doll, of course, can flit between worlds at the blink of an eye. But the idea gets a more nuanced treatment in Source Code. Colter realises that by breaking the event track that he’s on – by stopping the bomb on the train from going off – he can put himself on another timeline. Colter doesn’t just save the world. He creates a new one.
Both films have a debt to The Groundhog Day Effect. In Source Code the reference is obvious, as Colter is forced to relive the same eight minutes over and over again. He finds the answers he needs in constant, repeated examination of the scene of the crime and the suspects. Every trip back into the Source Code reveals something new, either about the mission or Colter’s own situation.
The battle scenes in Sucker Punch are constructed so that they start and play out in the same way. Each mission begins with a briefing from the Scott Glenn character, which contains a non-sequiter disguised as a koan. The girls will fight hordes of non-human creatures. The weaponry and materiel is incongruous, never fitting the time period in which the battle is set. The staging might be different, but the fights remain the same.
Both films are also formed around a quest to save characters who do not, or no longer exist. Baby Doll fights to save herself and her friends – but they all live in a world that is a fantasy, a construct of a girl half an instant from lobotomy.
For Colter Stevens, the situation is even bleaker. He cannot save Christina or the other passengers on the doomed Chicago train, because they are already dead. They are afterimages, flickers of data in the mind of a dead man. The framework for a quantum reconstruction of a tiny fragment of time. Barely alive himself, Colter Steven’s mission is to consort with ghosts.
The difference comes in the way in which our main characters choose to deal with their fate. Baby Doll, once she realises that she is supposed to sacrifice herself, walks to oblivion with empty, doe-eyed acceptance. Colter, on the other hand, refuses to give into the inevitable, and in doing so achieves the impossible. He believes that you can make your own fate, even if you have to create a new universe to do it. The great missed opportunity in Sucker Punch is that while Baby Doll can imagine any world she chooses, she never thinks of one in which she can be whole and victorious.
Source Code and Sucker Punch are both works by directors who have something to prove. For Duncan Jones, his second feature is a chance to show what he can do with a decent budget and a bankable star. For Zac Snyder, proof that there is more to him than remakes and comic-book adaptations. To my mind, Jones is very much the winner here. The buzz from Source Code will stand him in very good stead for his next project. Zac Snyder’s path seems a little more set. His next film is yet another superhero reboot. Sucker Punch will be written off as an indulgence, proof that his original material simply can’t cut it.
Source Code is by no means perfect, but it’s bright, sharp and clever, motoring along and delivering the goods in a lean 97 minutes. With nods to genre favourites like Quantum Leap (Scott Bakula has a cheeky cameo as Colter’s dad) and The Twilight Zone, it’s Hollywood SF done right. You should get on track with this one.