I feel a little guilty for liking Shazam! Much like its DC predecessor, Aquaman – which I definitely did not like – it’s defined by its weird mixture of goofy action, splashes of oddly-serious violence and an attempt to replicate jokey MCU banter. Shazam! Is wildly inconsistent, lurching from a winning Queen-scored superhero training montage to requisite supervillain Mark Strong wreaking revenge with poorly-CGI’d rock-monster-things.
Yet it’s just endearing enough to work. Young Billy Batson (Asher Angel) makes for an unlikeable protagonist – both deliberately and not – but his foster family (especially Jack Dylan Grazer’s Freddy) and his superheroic incarnation (Zachary Levi) carry the film through its rougher moments. At its core, this is essentially a Saturday morning cartoon – an overwritten story with an over-emphasis on its theme of family and forgiveness – but I found it singing out to the inner seven year-old who really enjoyed those silly cartoons.
The film’s tonal mismatch is undeniably the film’s biggest failing. Director David F. Sandberg cut his teeth on horror films like Lights Out and Annabelle: Creation, and he indulges his nastier inclinations a few too many times. This childhood power fantasy, arguably aimed at preteens, really could’ve done without horrific, too-realistic depictions of violence.