It’s telling that Rogue One’s best character is a robot.

For all the rumors about additional filmmakers being brought in to contribute to — or possibly even supervise — the first Star Wars spinoff’s reshoots and editing, Rogue One still feels like the work of Gareth Edwards, who also made 2014’s Godzilla reboot. Edwards, a VFX artist turned director, tends to make movies where the special effects feel more real than the flesh-and-blood human beings. Rogue One has a large human cast, but all of them pale in comparison to a wise-cracking droid.

That would be K-2SO, a reprogrammed Imperial robot with a hilariously dry sense of humor, who’s voiced and motion captured by Alan Tudyk. He’s one of the members of an unlikely band thrown together by chance to steal the plans for the Galactic Empire’s new super-weapon — or technically its old super-weapon, the Death Star. Set just before the events of the original Star Wars, K-2SO and his human compatriots are the previously unseen heroes responsible for delivering the Death Star plans to Princess Leia and, in turn, helping Luke Skywalker destroy the space station at the end of A New Hope. (Uh, spoiler alert.) Along the way, these new characters interact with some of the old ones, including a few major surprises; think Rosencrantz and Guildenstern Are Stealing the Death Star Plans and you have the basic concept.

Paramount among the new group is Jyn Erso (Felicity Jones), the estranged daughter of Galen Erso, the scientist (Mads Mikkelsen) who built the Death Star. Her familial connection means she’s the only person who can find him before it becomes fully operational. The Rebel Alliance busts Jyn out of an Imperial work camp, partners her with ruthless spy Cassian Andor (Diego Luna), and sends them off to Jedha, a former Jedi stronghold where a militant rebel named Saw Gerrera (Forest Whitaker) holds a message from Jyn’s father that could save the galaxy. Once there, Jyn, Cassian, and the scene-stealing K-2SO’s impromptu team grows to include a blind warrior (Donnie Yen), his heavily armed friend (Jiang Wen), and Bodhi Rook (Riz Ahmed), the Imperial cargo pilot who smuggled Galen’s message to Saw.

Edwards and writers Chris Weitz and Tony Gilroy do a nice job of using their conflicted protagonists to add a few shades of gray to Star Wars’ traditionally black-and-white moral universe. None of these heroes, except maybe Yen’s wise soldier, act in the noble fashion of Jedis. Jyn is much more interested in confronting her father than defeating the Empire; Cassian commits cold-blooded murder in the name of the Rebellion; K-2SO and Bodhi are both Imperial defectors. Even Galen has complicated and sympathetic motivations for collaborating with the Imperials. They’re not quite the Dirty Dozen — more the Slightly Smudgy Star Wars Six — but they do fit well into Rogue One’s war-movie milieu.

They’d work better, though, if Edwards gave the characters more room to breathe, and gave the team more time to gel as a unit. Once he’s finally put all the pieces in place, Rogue One is almost over, heading into a massive battle on a watery planet that is, admittedly, spectacular. (The space dogfights might be the best in the entire franchise.) To that point, the story is a forgettable wild goose chase through a series of planets and MacGuffins, with the team’s underwritten nemesis, an Imperial officer named Orson Krennic (Ben Mendelsohn), always a convenient step or two behind. The contrast between Rogue One and Force Awakens, which delivered both exciting action and instantly iconic heroes, is stark and unflattering.

Again, that’s the Gareth Edwards touch — a technically deft but emotionally cold one. In Rogue One, he makes the Death Star, a familiar setting from many previous movies, into something new and terrifying. In the old Star Wars, the Death Star would shoot a laser from a distance and a planet would blow up in an instant. In Rogue One, it looms in the skies over beautiful alien planets like an angry god waiting to unleash its unholy fury. Its beam unleashes massive mushroom clouds and waves of force, like a nightmare of the ultimate nuclear bomb.

Edwards is very good at crafting images that straddle the uncomfortable line between beauty and horror, and at dwarfing people with giant monsters and machines with powers beyond mortal comprehension. It’s his comprehension of mortals that sometimes feels lacking.

Additional Thoughts:

-Can a Star Wars movie work without an opening crawl? Based on Rogue One, I’d say yes. It’s a little strange at first, but the way the movie opens works, and it does set it apart from the main Episodes. Also, for what it’s worth, the onscreen title is just Rogue One; not Rogue One: A Star Wars Story.

-As advertised in all the trailers, Darth Vader returns in the film, voiced by James Earl Jones (though not performed by David Prowse or Hayden Christensen). It’s not quite a cameo, but it’s not a full-fledged supporting role, either. He does get one very impressive action sequence, but his main scene with Mendelsohn feels ... off. I’m not sure if the body doubles in the Vader suit aren’t big enough, or the lighting or camera placements are to blame, but he just doesn’t strike the same towering figure as in the original Star Wars trilogy.

-Even with modern digital effects at his disposal, Edwards does a nice job aping the retro futuristic style of George Lucas’ original Star Wars, particularly in the production design of the Imperial ships and the slightly disco-ish costumes. Even the Death Star plans themselves, which appear to be housed on a Betamax tape, and have to be smuggled off a planet by hand, fits the old movies’ conception of technology. If the Empire had iCloud, Jyn’s mission would have been so much easier.