Featuring stories from Eric Shanower, Troy Riser, Michael Tierney, and seventeen other masters of the form, FANTASTIC VOYAGES is all about doors --
RALPH BREAKS THE INTERNET Is An Instant Classic
Error message
- Deprecated function: Using ${var} in strings is deprecated, use {$var} instead in require_once() (line 132 of sites/all/libraries/bad-behavior/bad-behavior/core.inc.php).
- Deprecated function: Optional parameter $type declared before required parameter $key is implicitly treated as a required parameter in include_once() (line 1442 of includes/bootstrap.inc).
- Deprecated function: Optional parameter $data declared before required parameter $name is implicitly treated as a required parameter in require_once() (line 342 of includes/module.inc).
- Deprecated function: Optional parameter $data declared before required parameter $name is implicitly treated as a required parameter in require_once() (line 342 of includes/module.inc).
- Deprecated function: Optional parameter $file declared before required parameter $entity_type is implicitly treated as a required parameter in require_once() (line 342 of includes/module.inc).
- Deprecated function: Optional parameter $account declared before required parameter $entity_type is implicitly treated as a required parameter in require_once() (line 342 of includes/module.inc).
- Deprecated function: Optional parameter $entity declared before required parameter $entity_type is implicitly treated as a required parameter in require_once() (line 342 of includes/module.inc).
- Deprecated function: Optional parameter $account declared before required parameter $entity_type is implicitly treated as a required parameter in require_once() (line 342 of includes/module.inc).
- Deprecated function: Optional parameter $values declared before required parameter $entity_type is implicitly treated as a required parameter in require_once() (line 342 of includes/module.inc).
- Deprecated function: Optional parameter $view_mode declared before required parameter $entity_type is implicitly treated as a required parameter in require_once() (line 342 of includes/module.inc).
- Deprecated function: Optional parameter $langcode declared before required parameter $entity_type is implicitly treated as a required parameter in require_once() (line 342 of includes/module.inc).
- Deprecated function: Optional parameter $view_mode declared before required parameter $langcode is implicitly treated as a required parameter in include_once() (line 1442 of includes/bootstrap.inc).
- Deprecated function: Optional parameter $terms declared before required parameter $node is implicitly treated as a required parameter in include_once() (line 1442 of includes/bootstrap.inc).
- Deprecated function: Optional parameter $args declared before required parameter $node is implicitly treated as a required parameter in include_once() (line 1442 of includes/bootstrap.inc).
- Deprecated function: Return type of EntityStructureWrapper::getIterator() should either be compatible with IteratorAggregate::getIterator(): Traversable, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in include_once() (line 292 of sites/all/modules/entity/includes/entity.wrapper.inc).
- Deprecated function: Return type of EntityListWrapper::getIterator() should either be compatible with IteratorAggregate::getIterator(): Traversable, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in include_once() (line 991 of sites/all/modules/entity/includes/entity.wrapper.inc).
- Deprecated function: Return type of EntityListWrapper::offsetExists($delta) should either be compatible with ArrayAccess::offsetExists(mixed $offset): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in include_once() (line 991 of sites/all/modules/entity/includes/entity.wrapper.inc).
- Deprecated function: Return type of EntityListWrapper::offsetGet($delta) should either be compatible with ArrayAccess::offsetGet(mixed $offset): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in include_once() (line 991 of sites/all/modules/entity/includes/entity.wrapper.inc).
- Deprecated function: Return type of EntityListWrapper::offsetSet($delta, $value) should either be compatible with ArrayAccess::offsetSet(mixed $offset, mixed $value): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in include_once() (line 991 of sites/all/modules/entity/includes/entity.wrapper.inc).
- Deprecated function: Return type of EntityListWrapper::offsetUnset($delta) should either be compatible with ArrayAccess::offsetUnset(mixed $offset): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in include_once() (line 991 of sites/all/modules/entity/includes/entity.wrapper.inc).
- Deprecated function: Return type of EntityListWrapper::count() should either be compatible with Countable::count(): int, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in include_once() (line 991 of sites/all/modules/entity/includes/entity.wrapper.inc).
- Deprecated function: Return type of EntityMetadataWrapperIterator::hasChildren() should either be compatible with RecursiveIterator::hasChildren(): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in include_once() (line 1192 of sites/all/modules/entity/includes/entity.wrapper.inc).
- Deprecated function: Return type of EntityMetadataWrapperIterator::getChildren() should either be compatible with RecursiveIterator::getChildren(): ?RecursiveIterator, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in include_once() (line 1192 of sites/all/modules/entity/includes/entity.wrapper.inc).
- Deprecated function: Return type of EntityMetadataWrapperIterator::current() should either be compatible with Iterator::current(): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in include_once() (line 1192 of sites/all/modules/entity/includes/entity.wrapper.inc).
- Deprecated function: Return type of EntityMetadataWrapperIterator::next() should either be compatible with Iterator::next(): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in include_once() (line 1192 of sites/all/modules/entity/includes/entity.wrapper.inc).
- Deprecated function: Return type of EntityMetadataWrapperIterator::key() should either be compatible with Iterator::key(): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in include_once() (line 1192 of sites/all/modules/entity/includes/entity.wrapper.inc).
- Deprecated function: Return type of EntityMetadataWrapperIterator::valid() should either be compatible with Iterator::valid(): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in include_once() (line 1192 of sites/all/modules/entity/includes/entity.wrapper.inc).
- Deprecated function: Return type of EntityMetadataWrapperIterator::rewind() should either be compatible with Iterator::rewind(): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in include_once() (line 1192 of sites/all/modules/entity/includes/entity.wrapper.inc).
- Deprecated function: Return type of EntityMetadataArrayObject::offsetExists($delta) should either be compatible with ArrayAccess::offsetExists(mixed $offset): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in include_once() (line 1235 of sites/all/modules/entity/includes/entity.wrapper.inc).
- Deprecated function: Return type of EntityMetadataArrayObject::offsetGet($delta) should either be compatible with ArrayAccess::offsetGet(mixed $offset): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in include_once() (line 1235 of sites/all/modules/entity/includes/entity.wrapper.inc).
- Deprecated function: Return type of EntityMetadataArrayObject::offsetSet($delta, $value) should either be compatible with ArrayAccess::offsetSet(mixed $offset, mixed $value): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in include_once() (line 1235 of sites/all/modules/entity/includes/entity.wrapper.inc).
- Deprecated function: Return type of EntityMetadataArrayObject::offsetUnset($delta) should either be compatible with ArrayAccess::offsetUnset(mixed $offset): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in include_once() (line 1235 of sites/all/modules/entity/includes/entity.wrapper.inc).
- Deprecated function: Return type of EntityMetadataArrayObject::count() should either be compatible with Countable::count(): int, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in include_once() (line 1235 of sites/all/modules/entity/includes/entity.wrapper.inc).
- Deprecated function: Return type of EntityMetadataArrayObject::getIterator() should either be compatible with IteratorAggregate::getIterator(): Traversable, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in include_once() (line 1235 of sites/all/modules/entity/includes/entity.wrapper.inc).
FTC Statement: Reviewers are frequently provided by the publisher/production company with a copy of the material being reviewed.The opinions published are solely those of the respective reviewers and may not reflect the opinions of CriticalBlast.com or its management.
As an Amazon Associate, we earn from qualifying purchases. (This is a legal requirement, as apparently some sites advertise for Amazon for free. Yes, that's sarcasm.)

The biggest challenge I face as a critic is telling you, my wonderful readers, about films I truly enjoy. When a film is terrible, I have no shortage of material. When a film is just so-so, I can explain the good and the bad in equal parts. However, when a film knocks my socks off I don't really want to tell you anything about it. I want to transform into my 10 year-old self and say, "Ohmigod you have to see this! It's so hilarious! There's this one part that had me laughing so hard but I can't tell you about it because it would ruin your fun so why are you still here holy crap go see it and then we'll talk!" And that, my friends, is how I feel about Ralph Breaks The Internet.
I liked Wreck-It Ralph, Disney's 2012 animated feature that took audiences to a fantasy world inside arcade games. I've been playing arcade games since Pong. One of my favorites as a kid was Rampage--yep, the one that Dwayne Johnson's live action popcorn flick was based on--featuring an oversized gorilla, werewolf and Godzilla-like mega lizard hell-bent on demolition. Wreck-It Ralph would have felt right at home in Rampage. As the foe of Fix-It Felix Jr., the brownstone superintendent with the magical golden hammer, Ralph had the Sisyphean task of doing the same thing over and over again, constantly, with no real reward or recognition. I can relate.
Ralph Breaks the Internet picks up where the plot of the original film left off. Ralph is content in his bad guy role while enjoying more acceptance and inclusion with the rest of his old school game's cast. Venellope von Schweetz, his best friend from the Sugar Rush racing game, is less contented. She's grown accustomed to the game's racetracks and shortcuts and craves a new challenge. Ralph gets a flash of inspiration and "wrecks" the end of the current racetrack to give Venellope a new wrinkle. The results are true to Ralph's usual bad luck. The human player "controlling" Venellope over-steered and broke the controller. Facing the threat of being permanently unplugged, the duo venture into the innerspace of the Internet to earn enough virtual currency to buy a replacement Sugar Rush steering wheel themselves.
From there, the movie just explodes with action, dramatic tension, and Easter eggs galore. To say much more would be a disservice to viewers, but the inclusion of all of the Disney Princesses, Buzz Lightyear, Eeyore from Winnie the Pooh, and many other favorites, all voiced by the original performers (except Snow White). Marvel and Star Wars, Disney's big side properties, are represented as well with characters from Big Hero 6, Imperial Stormtroopers, C-3PO and an animated avatar of the late Marvel great Stan Lee. You could watch this movie a half-dozen times and still not spot all of the Easter eggs. Disney’s willingness to poke fun at itself elevates the comedy, but the screenplay by Phil Johnson and Pamela Ribon has plenty of edge-of-your-seat action and inter-character drama.
The voice cast is top notch. Joining John C. Reilly (Ralph), Sarah Silverman (Venellope), Jack McBrayer (Felix), Jane Lynch (Sgt. Calhoun), and Ed O’Neill as Mr. Litwak who owns the arcade is Gal Gadot as Shank, the end boss of the Grand Theft Auto-inspired Slaughter Race, Taraji P. Henson as Yesss, the internet marketing algorithm, Alfred Molina as virus designer Double Dan. Alan Tudyk returns as a new character, KnowsMore the search engine. The animation is as interesting as it is exciting, with older game characters drawn and animated more crudely than their contemporary cohorts.
As usually the old timers who write reviews for national publications and major metropolitan newspapers are dumping on the film, calling it “exhaustingly pointless,” “dated by the time it gets to home video,” and other nonsensical ramblings by people with as much sense as original teeth. Ralph Breaks the Internet is fresh, big hearted, empowering, and destined to give The Incredibles 2 a tight race for the animation Oscar. My only quibble is why didn’t they call it Ralph Wrecks the Internet? Stay for the mid-credits bonus scene, trade your uptight adult burdens in for a large bucket of popcorn and enjoy this instant classic with your family right now. Seriously, this is the end of the review. Scram!
More by this author
FEATURED ALBUM
Songs of faith, family and moving forward.
Latest Release




