Few filmmakers are as hotly debated as M. Night Shyamalan. To many, the story of his career goes something like this.
The Academy Award-nominated writer-director won over audiences with the horror flick The Sixth Sense (1999). He kept up the successful streak with the chilling superhero story Unbreakable (2000) and heart-wrenching alien invasion tale Signs (2002).
Then, things took a turn for the confusing with period thriller The Village (2004) and exhausting mermaid suspense story Lady in the Water (2006). This apparent quality nosedive culminated in total catastrophe with apocalyptic thriller The Happening (2008), one of the silliest films ever made.
Shyamalan's reputation stayed lukewarm across found-footage film The Visit (2015) and Unbreakable sequels Split (2017) and Glass (2019). But with his latest release now in theaters, there's never been a better time to revisit his divisive, extraordinarily hit-or-miss body of work.
On Rotten Tomatoes, Old (2021) is hovering around 50%. Its quality is being heavily contested on social media — and, yes, "the beach that makes you old" is getting memed.
As someone who gave Old a positive review (I stand by it!), this emphasizes to me the role personal preference plays in enjoying Shyamalan's work. It seems to me what you expect from a thriller hugely impacts whether you walk away satisfied at the end of a Shyamalan film.
With this in mind, I've rewatched and ranked every Shyamalan thriller, spelling out what makes some titles work better for me than others. YMMV, but that's true of every director.
Note: This is not a complete ranking of Shyamalan filmography. Because Shyamalan is primarily known for his thrillers, we've excluded dramas Praying with Anger (1992) and Wide Awake (1998), as well as fantasy films After Earth (2013) and The Last Airbender (2010).
That said, I will take this opportunity to say: The Last Airbender is terrible. Truly, it is the worst thing to happen to Aang, Katara, and Sokka since the Fire Nation attacked. Never watch it. Thank you.
10. Glass (2019)
The Bruce Willis-starring superhero thriller Unbreakable came out before the Marvel Cinematic Universe existed. So you'd think that'd be the film to understand the world of comics the least.
But, nope. That distinction goes to Glass, the final film in the Unbreakable franchise that somehow manages to make superpowers lame and three great actors boring. Samuel L. Jackson and Will reprise their roles from the original film, and James McAvoy returns as his character from the other Unbreakable sequel Split. Sarah Paulson joins the cast as Dr. Ellie Staple, a psychiatrist.
Easily the worst Shyamalan thriller, Glass took the Unbreakable franchise — and, well, broke it. If you're dying to see more of this world after watching the first two, cue it up. Otherwise, it's a pass.
How to watch: Glass is available for rent or purchase on Amazon Prime Video, Google Play, YouTube, iTunes, and the Microsoft Store.
9. Lady in the Water (2006)
Starring Paul Giamatti as an apartment superintendent who skims way more than he was expecting out of his building's pool, Lady in the Water is an overly contrived fairytale thriller best described as goofy. That said, Bryce Dallas Howard delivers an interesting enough performance as a nymph-like being named "Story" — yes, it's as awkward to hear in dialogue as you'd imagine — who has to fight her way back to her underwater home after magically appearing in urban Philly.
The titular lady in the water isn't particularly well-written, her world never feels truly believable, and Shyamalan's cameo here is easily his most cringe-worthy. Still, Lady in the Water is a good on-in-the-background pick for its ethereal visuals. Just don't try to follow or care about it.
How to watch: Lady in the Water is now streaming on Cinemax (via Hulu).
8. The Happening (2008)
In The Happening, something is "happening." At least, that's what every character, including those played by Succession's Alan Ruck and Jeremy Strong, tells us during this apocalyptic snooze fest.
Though Shyamalan is often lampooned for his twist endings, The Happening is one of the most banally straightforward apocalypse films ever written. Flimsy stakes and unlikable characters — stars Zooey Deschanel and Mark Walhberg have never been so unappealing — make this difficult to enjoy as a suspenseful survival thriller.
But if you turn it into a drinking game or opportunity for heckling, then you're in for a very fun watch. Count for example how many times hero Elliott, played by Wahlberg, asks himself a rhetorical question out loud versus how many facial expressions he has. (Answer: Too many, and 1.)
How to watch: The Happening is now streaming on Peacock.
7. The Village (2004)
On the off chance you haven't had The Village spoiled for you yet, I won't say too much about its ridiculous plot. That said, this bizarre period thriller is among the more divisive Shyamalan films out there with a lot more going for it than critics at the time of release gave the movie credit for.
In her first collaboration with Shyamalan, Bryce Dallas Howard stars as Ivy Walker — a young woman living in a small Pennsylvania town in the 19th century. Though the settlement has been able to live in peace for years due to an ancient agreement, monsters surround the village and the threat of their attack always looms.
Joaquin Phoenix, Adrien Brody, Sigourney Weaver, and more round out the cast of what is at the very least a memorable film, with an ending best seen rather than explained. Seriously, the 180 this thing pulls is just unparalleled.
How to watch: The Village is now streaming on Peacock.
6. Split (2017)
The better of the two Unbreakable sequels by a wide margin, Split doesn't have all that much to do with superheroes and, aside from that post-credits scene, doesn't include characters from the original. Still, James McAvoy's jaw-dropping performance as Kevin Wendell Crumb, a dangerous man with 24 distinct psychological identities, is a cinematic experience to behold.
Anya Taylor-Joy, Haley Lu Richardson, and Jessica Sula co-star as three teenagers captured by Kevin and kept in an underground facility. Their tense fight for survival grounds the film — and while it's not consistently compelling, this story will leave an impression.
How to watch: Split is available for rent or purchase on Amazon Prime Video, Google Play, YouTube, iTunes, and the Microsoft Store.
5. Old (2021)
As spicy a take as this may be... I liked Old!
The latest Shyamalan nightmare takes us far away from the writer-director's typical filming location of Philadelphia to a remote tropical island, where Guy (Gael García Bernal), Prisca (Vicky Krieps), and their children Maddox (Alexa Swinton) and Trent (Nolan River) are hoping for a great vacation.
But when the family becomes trapped on a sinister beach — yes, one that makes them old! — things take a turn for the dire. Undeniably awkward, a bit silly, and still pretty effective, Old takes a bonkers premise to its most extreme and, in my humble opinion, sticks the landing.
How to watch: Old is now playing in theaters.
4. The Visit (2015)
If there's a true hidden gem in Shyamalan's catalog, then it's got to be The Visit.
When mom Loretta (Kathyrn Hahn) sends her kids Becca (Olivia DeJonge) and Tyler (Ed Oxenbould) on a trip to meet their estranged grandparents, she expects they'll have a quiet vacation. But soon after the kids arrive, Nana (Deanna Dunagan) and Pop Pop (Peter McRobbie) begin acting strangely.
A found-footage film made by aspiring documentarian Becca captures everything that comes next. It's a nauseating, gut-wrenching nightmare filled with some surprisingly light moments and a stellar performance from DeJonge. You'll laugh. You'll scream. You might throw up. You've been warned.
How to watch: The Visit is available for rent or purchase on Amazon Prime Video, Google Play, YouTube, iTunes, and the Microsoft Store.
3. Unbreakable (2000)
The awesome movie that (for better or worse) made Split and Glass possible, Unbreakable tells the story of David Dunn. David, played by Bruce Willis, wakes up in a hospital to discover he is the lone survivor of a train derailment that killed more than 130 people. Discovering why, with the help of Samuel L. Jackson's comic book-loving Elijah Price, grounds the rest of the film.
More than 20 years after its release, Unbreakable remains a gripping mystery that changed the game for superhero films. With a voice that's especially original for its time, this hero's journey is full of unexpected twists and turns that stand out even now.
How to watch: Unbreakable is now streaming on Peacock and Amazon Prime Video.
2. Signs (2002)
Signs is a great movie — if you can stomach watching a performance by Mel Gibson.
Over the years, Gibson has been heavily criticized for making racist, antisemitic, homophobic, and sexist remarks as well as been accused of domestic violence. As a result, Shyamalan's stirring tale of an alien invasion, which stars Gibson, hasn't aged as well as it could have.
That said, if you choose to watch Signs anyway, you'll enjoy a wonderful performance from Joaquin Phoenix as the uncle of two children, played by Abigail Breslin and Rory Culkin, as they wait for extraterrestrial life to descend on Earth. It's a moving story that elevates the art of the twist ending — even more than The Sixth Sense in my opinion — and features an all-time great jump-scare.
How to watch: Signs is now streaming on Peacock.
1. The Sixth Sense (1999)
The Sixth Sense earned Shyamalan both of his Oscar nods, and with good reason. In this emotional ghost story, 10-year-old Haley Joel Osment plays Cole Sear, the iconic boy who can see dead people, opposite Unbreakable's Willis as Malcolm Crowe, a child psychologist.
Convincing lead performances, a scene-stealing turn from Toni Collette as Cole's mom (her second-best horror movie after Hereditary, obvs), and a killer ending help sell The Sixth Sense as an all-time great scary story. You probably already know The Sixth Sense's "big twist", but it's Shyamalan's keen understanding of spirituality and meticulous crafting of tension that make this 1998 film a classic.
How to watch: The Sixth Sense is now streaming on Peacock.