Resistance heroes Rey (Daisy Ridley), Finn (John Boyega) and Poe (Oscar Isaac) strive to avoid annihilation by the evil First Order.

Pleasing critics while annoying a good many die-hard fans, this has proved the most divisive movie in the Star Wars canon.

Admittedly, there are too many plot holes and the action does sag a bit in the middle. As our heroes try to stay alive and keep the flame of rebellion alight, there are also too many do-or-die, last-hope moments without a satisfying climax. And, yes, there are possibly too many jokes – though you would need to be pretty humourless not to be charmed by those cute, puffin-like critters the porgs, inhabitants of Luke Skywalker’s island home.

However, the film is also a magnificent, energetic spectacle with some super characters, even if the plot strands that lead us to them is a dead end. Rebel mechanic Rose (Kelly Marie Tran), Finn’s spunky new sidekick, is a welcome addition, though their joint mission to casino planet Canto Bight comes to nothing.

In the end, however, everything hinges on one of the saga’s old-timers: Mark Hamill’s grizzled, reluctant saviour Luke. Ignore all those byways, Luke is the movie’s heart – and it is his encounters with Rey, Carrie Fisher’s Leia and, above all, Adam Driver’s conflicted bad guy Kylo Ren that ultimately bind the story together and provide its emotional resonance.