⚠ DEVELOPMENT SERVER — SAFE TO EDIT⚠

Gotham's Final Season Short, Sweet Introduction to Batman

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.)

Gotham Season 5

The original premise of GOTHAM was underrated. It was going to focus on James Gordon (BEN MCKENZIE) who would begin the series as a sergeant and work his way up to commissioner. Bruce Wayne (DAVID MAZOUZ) would appear, but he would still be the young boy who had just lost his parents to a murder, a case Gordon worked. And while Bruce sets out on the path that will take him to becoming Batman, the villains are already taking the stage. Oswald Cobblepot, aka The Penguin (ROBIN LORD TAYLOR) went from being an assistant stooge to a crime lord. Edward Nygma, aka The Riddler (CORY MICHAEL SMITH) started as a mentally troubled forensic scientist for the police to letting his evil alter ego take over his life. Ivy Pepper went through the more startling metamorphoses, as she began as a child and grew to adulthood thanks to some weird chemical process. Even Leslie Thompkins (MORENA BACCARIN) went from being Gordon's love interest to being a psychotic villain and back to good guy again.

The running joke was that by the time Bruce Wayne became Batman, most of his rogues gallery would be geriatric. But the next fifteen years flew by quickly -- five years in series time, plus the ten year flash-forward for the series finale.

In this fifth season, Gotham has been cut off from the mainland United States after Jeremiah Valeska (CAMERON MONAGHAN) -- whom we can safely call The Joker at this point -- blew out all the bridges. The government is in no hurry to reunify Gotham to the rest of the country because of the dangerous criminal element there, and is taking a wait-and-see attitude on when it will be safe to begin the reunification process. This leaves Gordon and Harvey Bullock (DONAL LOGUE) to keep law and order while the city is carved up into sections, each run by gangs and villains.

When it become clear that Jeremiah is still in town, Selina Kyle (CAMREN BICONDOVA), who had been crippled by Valeska at the end of the last season, sets out on getting her revenge on him. (Yeah, I said she was crippled; she got better. It's Gotham.) But Valeska has big plans still for Gotham City -- and especially Bruce Wayne, plan that will have Bruce thinking of leaving Gotham.

While the stories were frequently over the top (and self-admittedly so at times), the top-notch acting carried this series. Where this final season suffers most is in the way it was rushed, being shortened to just 12 episodes. So when Gordon's old army buddy, Eduardo Dorrance (SHANE WEST) shows up working for Secretary Theresa Walker (WAREHOUSE 13's JAIME MURRAY), we don't get quite the proper build-up for the reveal of him as Bane, and of Walker as Nyssa al Ghul, in town to seek revenge on Bruce Wayne for the murder of her father. However, what we do get is Nyssa kidnapping the newborn daughter of Barbara Kean (ERIN RICHARDS), after Barbara got pregnant with Gordon during a particularly stressful episode. Trust me, it made Gordon's reunion with Lee Thompkins all the more awkward.

Advertisement

 

In the finale episode, we get to see everyone aged ten years, including Gordon temporarily sporting a mustache. Penguin is just getting out of jail, and Riddler has been broken out, seemingly by Penguin. But it's really Jeremiah Valeska pulling the strings, because after all that has transpired he is still not dead -- although much the worse for wear -- and assisted by his Harley Quinn prototype helper, Ecco (FRANCESCA ROOT-DODSON). Valeska and Gordon ultimately face off at Ace Chemicals, where Valeska -- already in the process of thinking up a new identity for himself -- has now ten-year-old Barbara Gordon (JETE LAURENCE from PET SEMATARY) dangling precariously over the same vat of chemicals Valeska himself barely survived. Fortunately, Gordon is given the opportunity to rescue her thanks to the intervention of a new player on the scene -- a man who dresses up as a bat! (While all the actors reprise their original roles in this future-set story, Camren Bicondova's role of Selina Kyle is recast for a more mature LILI SIMMONS.)

GOTHAM Season 5 is full of twists and turns and alliances of necessity. But by the end, it's definitely been one hell of a ride. Granted, it didn't evolve into a Batman series, and was never going to, it still delivered the insanity that is Gotham City. My only regret is that the final episode didn't deliver a little bit more of Batman just to more believably establish the kindling of hope for Gotham City.

Now show of hands: Who wants to see a series seeing young Barbara Gordon's life impacted by the introduction of a superhero and leading her on the path to becoming Batgirl?

Grade: 
4.0 / 5.0