Featuring stories from Eric Shanower, Troy Riser, Michael Tierney, and seventeen other masters of the form, FANTASTIC VOYAGES is all about doors --
Death of Superman Surprisingly Fresh, Emotionally Deep
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.)

When I first heard that the next DC Universe animated movie was going to be THE DEATH OF SUPERMAN, I was not thrilled. I was already feeling a downward trend in the storytelling as the animated films tried to form a more cohesive universe, and the stand-alones like BATMAN: GOTHAM BY GASLIGHT weren't all that super of late, either. Seeing this story retold, so soon after having it already retold on the big screen in BATMAN V SUPERMAN: DAWN OF JUSTICE, was underscored by the fact that the story was also the very first DCU animated film, under the name SUPERMAN: DOOMSDAY.
To say the least, my expectations were low.
But I am happy to report that THE DEATH OF SUPERMAN defied those expectations and soared beyond them. If anything, THE DEATH OF SUPERMAN displays a depth of emotion and a layering of complex storytelling that no DCU animated film--or live action film, for that matter--has matched to date.
In this film, Lois Lane (REBECCA ROMIJN) is in a romantic relationship with Clark Kent (JERRY O'CONNELL), who still hasn't told her that he's really Superman. Contrast this with the relationship in SUPERMAN: DOOMSDAY, where Lois was sleeping with a Superman who hadn't told her he was really Clark Kent, and you can see the most basic of the improvements. This is a Superman who has also had a past relationship with Wonder Woman (ROSARIO DAWSON), and that history has several touchpoints in this story.
Nearly every major Justice League member has a role in this story, well beyond he cameo appearance (except perhaps Hawkman, who doesn't even get any speaking lines). JASON O'MARA continues in the role of Batman, with NATHAN FILLION doing the same for Green Lantern. The Flash (CHRISTOPHER GORHAM) announces to the League that he's getting married, prompting Superman to ask about how he dealt with bringing his fiancee into his supehero life, which gives Clark the much needed kick-in-the-pants he needed to try to come clean with Lois.
But Doomsday happens.
As with the original Mike Carlin comic book story, no origin is provided for the beast of destruction. He lands, and he is, and he tears a bloody streak across sea and land as he makes his way inexorably toward Metropolis. And when I say "bloody streak," I mean it. There are no punches pulled in this animation, as we see him crush heads and dismember those he comes across, whether strong or weak. The film is rated PG-13 for a reason, and with the portrayals of violence alone it's pushing the upper edge of that rating.
Hypocritically, it's not the violence that bothers me as much as it is the language. My ten year old saw this review copy arrive, and is eager to sit down and watch it for himself. Less than five minutes into the viewing, Metropolice PD's Maggie Sawyer refers to Intergang as "assholes," setting the tone for the rest of the language in the movie, and putting me in the unenviable position of having to tell the boy he's going to have to wait a while to watch this adventure of his favorite comic book superhero.
For the adults, however, this film is phenomenal. So much of the setup of the film establishes the foundation of Superman's relationship with Metropolis. He's not just a hero to them--he's like family. This is driven home in the most heartbreaking ways after the white-knuckle action sequences involving the fight between Superman and Doomsday. There's a beautiful scene where Lois comforts Superman during a lull in the fight, telling him, "I've got you." This prompts him to respond, "You've got me. Who's got you?" Fans of the Christopher Reeve film, SUPERMAN: THE MOVIE, will not miss the relevance of that line. But the real choker is Superman's last words to Lois, which you're going to have to hear for yourself because I'm not going to spoil them here.
Something else that happens throughout the film is the establishment of the characters who will appear in the followup film, the next in the DCU animated lineup: REIGN OF THE SUPERMEN. We meet John Henry Irons, working for Silas Stone while Superman and Cyborg (SHEMAR MOORE) visit S.T.A.R. Labs. There's the Kryptonian AI in Kal-El's ship that we know will become The Eradicator. We go inside Lex Luthor's genetics laboratory where Dabney Donovan (TREVOR DEVALL) is working with the clones, one of whom will become Superboy. And we see the tragic story of astronaut Hank Henshaw (PATRICK FABIAN) who places his trust in Superman as the Doomsday asteroid makes its entry.
If, like me, you've felt let down by recent DC animated entries, I urge you to give THE DEATH OF SUPERMAN a look-see. This one does not disappoint, and will leave you feeling as though you, too, have lost someone important.
THE DEATH OF SUPERMAN is available on Blu-ray and DVD August 7, 2018.
More by this author
FEATURED ALBUM
Songs of faith, family and moving forward.
Latest Release




