ADVERTISEMENT

The rock elf and captain Christmas: A review of 'Red One'

Published Nov 6, 2024 11:01 pm

At A Glance

  • The premise is that Santa Claus (JK Simmons) has been kidnapped. So Callum Drift (Dwayne Johnson), head of North Pole security, enlists Jack O'Malley (Chris Evans), a bounty hunter, to help find Santa in time for you-know-what.

image2.jpeg

If you told me everything about this film was conceptualized and decided upon by an algorithm, I would not be surprised. It’s December next month, so the thinking at Warner Brothers and Amazon MGM would have been, let’s release something Christmas-themed, and let’s put Hollywood ‘dependables’ Dwayne Johnson and Chris Evans together for the first time in a mismatched buddy/adventure film. Let’s tug at heartstrings and have lots of laughs, plus throw in an avalanche of CGI that will wow the kids and the ‘child in the adults’ who’ll be watching. 

The premise is that Santa Claus (JK Simmons) has been kidnapped. So Callum Drift (Dwayne Johnson), head of North Pole security, enlists Jack O’Malley (Chris Evans), a bounty hunter, to help find Santa in time for you-know-what. Lucy Liu, Bonnie Hunt, Kiernan Shipka, and Nick Kroll are along for the ride, but they’re like the reindeer outside of Rudolph - forgettable support. 

image1.jpeg

Directed by Jake Kasdan of Jumanji fame, with a screenplay written by Chris Morgan, from the story of Hiram Garcia, the start of the film throws us into the action right away, establishing the character of a young Jack as something of a spoilsport, and definitely on Santa’s naughty list. Of course, that’s also a heads-up that he’ll grow up to be the Jack portrayed by Chris Evans, so he is the main character with an arc. That one you can see coming from thousands of miles away.

I’ll give brownie points to the story concept and screenplay for updating this Santa and turning him into a facsimile of POTUS, ruling his North Pole kingdom. You have the supersonic reindeer, a polar bear that talks and acts as security, elves, and other magical creatures. To add to the texture, the screenplay then incorporates almost every conceivable Christmas legend - from Grampus to a Christmas witch and creatures that would rival the cantina scene of Star Wars. 

There’s a play on the Dwayne Johnson screen persona, as the powers of this security elf will have you laughing the first time it’s utilized. And they try to make our main villain have something of a backstory - but inevitably, she has to take a back seat to our mismatched duo.   

image0.jpeg

And that is where the problem lies - despite their prolonged screen time together, there’s never really much chemistry between the two. It’s more like they’re just out-quipping each other and figuring out whose turn to have the last word of that particular sequence.

This film will have some box-office ‘legs,’ as the kids will enjoy all the mayhem, physical scenes and jokes, and the overriding narrative. But somehow, I think the producers also hoped that adults would enjoy this film while bringing the children. For that, you have to be more pure in intention, like how Wild Robot works at different levels of appreciation. This one looks a tad ‘forced’, and falls short in that category. But full credit for trying!

ADVERTISEMENT
.most-popular .layout-ratio{ padding-bottom: 79.13%; } @media (min-width: 768px) and (max-width: 1024px) { .widget-title { font-size: 15px !important; } }

{{ articles_filter_1561_widget.title }}

.most-popular .layout-ratio{ padding-bottom: 79.13%; } @media (min-width: 768px) and (max-width: 1024px) { .widget-title { font-size: 15px !important; } }

{{ articles_filter_1562_widget.title }}

.most-popular .layout-ratio{ padding-bottom: 79.13%; } @media (min-width: 768px) and (max-width: 1024px) { .widget-title { font-size: 15px !important; } }

{{ articles_filter_1563_widget.title }}

{{ articles_filter_1564_widget.title }}

.mb-article-details { position: relative; } .mb-article-details .article-body-preview, .mb-article-details .article-body-summary{ font-size: 17px; line-height: 30px; font-family: "Libre Caslon Text", serif; color: #000; } .mb-article-details .article-body-preview iframe , .mb-article-details .article-body-summary iframe{ width: 100%; margin: auto; } .read-more-background { background: linear-gradient(180deg, color(display-p3 1.000 1.000 1.000 / 0) 13.75%, color(display-p3 1.000 1.000 1.000 / 0.8) 30.79%, color(display-p3 1.000 1.000 1.000) 72.5%); position: absolute; height: 200px; width: 100%; bottom: 0; display: flex; justify-content: center; align-items: center; padding: 0; } .read-more-background a{ color: #000; } .read-more-btn { padding: 17px 45px; font-family: Inter; font-weight: 700; font-size: 18px; line-height: 16px; text-align: center; vertical-align: middle; border: 1px solid black; background-color: white; } .hidden { display: none; }
function initializeAllSwipers() { // Get all hidden inputs with cms_article_id document.querySelectorAll('[id^="cms_article_id_"]').forEach(function (input) { const cmsArticleId = input.value; const articleSelector = '#article-' + cmsArticleId + ' .body_images'; const swiperElement = document.querySelector(articleSelector); if (swiperElement && !swiperElement.classList.contains('swiper-initialized')) { new Swiper(articleSelector, { loop: true, pagination: false, navigation: { nextEl: '#article-' + cmsArticleId + ' .swiper-button-next', prevEl: '#article-' + cmsArticleId + ' .swiper-button-prev', }, }); } }); } setTimeout(initializeAllSwipers, 3000); const intersectionObserver = new IntersectionObserver( (entries) => { entries.forEach((entry) => { if (entry.isIntersecting) { const newUrl = entry.target.getAttribute("data-url"); if (newUrl) { history.pushState(null, null, newUrl); let article = entry.target; // Extract metadata const author = article.querySelector('.author-section').textContent.replace('By', '').trim(); const section = article.querySelector('.section-info ').textContent.replace(' ', ' '); const title = article.querySelector('.article-title h1').textContent; // Parse URL for Chartbeat path format const parsedUrl = new URL(newUrl, window.location.origin); const cleanUrl = parsedUrl.host + parsedUrl.pathname; // Update Chartbeat configuration if (typeof window._sf_async_config !== 'undefined') { window._sf_async_config.path = cleanUrl; window._sf_async_config.sections = section; window._sf_async_config.authors = author; } // Track virtual page view with Chartbeat if (typeof pSUPERFLY !== 'undefined' && typeof pSUPERFLY.virtualPage === 'function') { try { pSUPERFLY.virtualPage({ path: cleanUrl, title: title, sections: section, authors: author }); } catch (error) { console.error('ping error', error); } } // Optional: Update document title if (title && title !== document.title) { document.title = title; } } } }); }, { threshold: 0.1 } ); function showArticleBody(button) { const article = button.closest("article"); const summary = article.querySelector(".article-body-summary"); const body = article.querySelector(".article-body-preview"); const readMoreSection = article.querySelector(".read-more-background"); // Hide summary and read-more section summary.style.display = "none"; readMoreSection.style.display = "none"; // Show the full article body body.classList.remove("hidden"); } document.addEventListener("DOMContentLoaded", () => { let loadCount = 0; // Track how many times articles are loaded const offset = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; // Offset values const currentUrl = window.location.pathname.substring(1); let isLoading = false; // Prevent multiple calls if (!currentUrl) { console.log("Current URL is invalid."); return; } const sentinel = document.getElementById("load-more-sentinel"); if (!sentinel) { console.log("Sentinel element not found."); return; } function isSentinelVisible() { const rect = sentinel.getBoundingClientRect(); return ( rect.top < window.innerHeight && rect.bottom >= 0 ); } function onScroll() { if (isLoading) return; if (isSentinelVisible()) { if (loadCount >= offset.length) { console.log("Maximum load attempts reached."); window.removeEventListener("scroll", onScroll); return; } isLoading = true; const currentOffset = offset[loadCount]; window.loadMoreItems().then(() => { let article = document.querySelector('#widget_1690 > div:nth-last-of-type(2) article'); intersectionObserver.observe(article) loadCount++; }).catch(error => { console.error("Error loading more items:", error); }).finally(() => { isLoading = false; }); } } window.addEventListener("scroll", onScroll); });

Sign up by email to receive news.