For a film concerned with violent violation—from the metaphorical rape of Afghanistan at the hands of the Soviets, the US, and the Taliban, to some all-too-literal exploitation of children—The Kite Runner sure is optimistic. Based on the bestselling debut novel by Khaled Hosseini, director Marc Forster's adaptation manages to impose the pale shadow of hope over the appropriately dour subject matter.

Oscillating primarily between pre-Soviet invasion Kabul in the 1970s and the city's war-torn skeleton some 20 years later, The Kite Runner concerns Afghan émigré Amir, who—along with his wealthy father—flees Afghanistan for California at the beginning of the Soviet occupation. Haunted by the guilt he feels over a childhood betrayal of his best friend/servant Hassan, Amir is given the opportunity as an adult for redemption—at the cost of returning to his troubled birthplace, now controlled by the Taliban.

With its subdued tone, The Kite Runner is most effective in its coming-of-age first half, tracing the relatively privileged childhoods of Amir and Hassan (played effectively by Afghan child actors Zekeria Ebrahimi and Ahmad Khan Mahmidzada, respectively). Eventually things get all kinds of heavy, and Amir and his father flee into American poverty. It's here that the film struggles to transcend its essentially conventional narrative; when it's divorced from its complex social backdrop, The Kite Runner plays like conventional melodrama, farfetched plot twists and all.

By the time Amir (now played by Khalid Abdalla) returns to his ailing homeland, Foster delivers us to the palpable horror the first act only hinted at—public stonings, orphan sex slaves, and a Taliban-gutted Kabul—but promptly shepherds us back to a land of spiritual awakenings and good ol' American redemption. It's strange, perhaps, to fault a movie for not being depressing enough—but The Kite Runner's preoccupation with telling a feel-good story is its primary shortcoming.