ADVERTISEMENT

The shadow of your Hedgehog: A review of 'Sonic the Hedgehog 3'

Published Jan 11, 2025 11:53 pm

At A Glance

  • It's primarily a fun-filled cinema experience for children and fans of the Sega franchise.
image0.jpeg
'Sonic the Hedgehog 3'

Sonic the Hedgehog 3 finally opens in Philippine cinemas this Wednesday. It surprised the US box office prognosticators in December by debuting the same day as Mufasa: The Lion King and romping away with the higher revenues earned for that weekend - trouncing Disney and the Lion. And to its credit, having caught an advanced screening at the SM Cinemas, it fully understands its audience and banks on that knowledge to offer a film that ticks all the boxes of that audience.

It’s primarily a fun-filled cinema experience for children and fans of the Sega franchise. It’s stupid/silly, funny, has several action sequences, and all flashing lights and bright colors so the children will be transfixed. Then, add a dual role for Jim Carrey to double up the comedy with the kids giggling and laughing on cue. And believe me, I was observing the audience, and it was the children who immediately reacted to the Carrey jokes like ‘Man boobs’ or when Sonic would watch a mountain collapse on itself and say, ‘Somebody call Google Maps.’

image1.jpeg
 

The movie opens with a Tokyo prison breakout that involves Shadow (voiced by Keanu Reeves), and it isn’t long before our intrepid trio of Sonic (Ben Schwartz), Tails the fox (Colleen O’Shaughnessey), and Knuckles the echidna (Idris Elba), are called on to help subdue and recapture Shadow. It’s explained that Shadow carries a heavy weight from his past, which drives him to seek revenge and destruction. Plus, he’s powerful enough to defeat the three do-gooders initially. 

Doctor Robotnik (Jim Carrey) is back for the ride, and to make sure his talent fee is used to the utmost, they have Carrey also play the role of Gerald Robotnik, the more evil grandfather of our villainous Doctor. This trick is so outrageous and successful that it makes scenes without Carrey start to pale compared to when he’s on-screen, whether as Doctor or Gerald. 

image2.jpeg
A scene from 'Sonic the Hedgehog 3'

Keanu Reeves voicing Shadow is too serious, and while I know there’s an angst he’s striving for, it would have been nice if he loosened up a little in voicing this character. Or gave the character some shafts of humor or lightness. And if you’re looking for Tom (James Marsden) and Maddie (Tika Sumpter), they are in this film but playing very minor roles. 

Like a Marvel movie, if you are a Sega devotee, stay for the end credits ‘Easter eggs,’ as some teasers for Sonic 4 are revealed. This film franchise has found its footing and has been delighting its fans. I’m neither a devotee nor with children of Sonic age. Still, I can salute how the producers have been doing better than Super Mario or Borderlands in bringing games to cinematic life. 

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.