⚠ DEVELOPMENT SERVER — SAFE TO EDIT⚠

Bloodshot is back (already?) in Bloodshot Reborn #1!

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

I think Valiant has been very smart about limiting the number of books they put out at one time. There have been some new series, but for the most part, they have kept their number of books very consistent. The original Valiant seemed to expand way too quickly, and as a result, they had a lot of books put out by weak creative teams. Valiant seems to have a good plan in place to ensure this doesn’t happen again.

One thing that’s odd about the comic industry is that in order to help sell books, we get to see solicits of upcoming titles months in advance. So that tends to diminish some shocking moments. For example, at the end of The Valiant, before she dies, the Geomancers last act is to free Bloodshot from the nanites in his system, turning him human again. But, since we already knew there was an issue called Bloodshot Reborn, coming out a few weeks later, it was obvious this wouldn’t stick.

But don’t take my cynicism as disinterest in this series. Bloodshot was one of my favorite Valiant titles (though I did think it got off to a slow start), and I was real excited to see what Jeff Lemire had in store for us with the new series.

Bloodshot Reborn #1

Written by: Jeff Lemire
Art by: Mico Suayan
Colored by: Dave Baron
Lettered by: Dave Lanphear

Published by: Valiant
Cover Price: $3.99

Warning! This review contains quite a few spoilers!

First thing I noticed about this comic is that it did an excellent job catching new readers up. The first few pages explain who Bloodshot is and what happened to him perfectly. I have complained often that comics aren’t always accessible to new readers (or veteran readers with bad memories), so this was a very welcome way to start the series.  When you put an "issue 1" on the cover of a comic, I always feel you have a responsibility for the reader to make it accessible, and Valiant did that brilliantly.

Bloodshot Reborn picks up six months after The Valiant. The man formerly known as Bloodshot works as a maintenance man in a hotel under the name Ray Garrison. He has problems sleeping at night, haunted by his past, and trying to decide if he should read his file tp find out who he was before Project Rising Star turned him into Bloodshot. He has been having hallucinations, including the Geomancer telling him that losing the nanites made him lose his purpose. One day, he sees on TV that someone resembling Bloodshot, down to the white skin and red circle on his chest, shot twelve people in a movie theater, Ray quits working at the hotel, and decides his new purpose is to stop this “Red Circle” killer.

One thing that I immediately loved about this comic was the intense imagery. Mico Suayan did a great job showing off the violence in Bloodshot’s past, but I also loved the little animated Bloodshot that was haunting Bloodshot’s dreams. Everything had a ton of detail, and I didn't see any shortcuts taken.  

Advertisement

 

In that vein, I definitely suspect that Toby, a creepy young boy who lives in the hotel is another hallucination haunting Bloodshot. To me, it’s clear that he’s still got some nanites in the system waiting to turn him back to Bloodshot.

When the first Bloodshot series started, it often felt confused and overly complicated, but I think Lemire did a great job keeping things very clear in Bloodshot Reborn. Even though there are hallucinations, false histories, and a lot of back story to deal with, this comic is very accessible. I also thought that while being accessible for new readers, it als provided a nice bridge for fans who have been here since the beginning. It was one of the best first issues I’ve read in a long time, picking up smoothly from the last series and The Valiant. And at the same time, setting up some exciting potential on where Bloodshot goes from here.

I am curious about this “Red Circle” killer. It is someone inspired by Bloodshot or is this a trap by Project Rising Spirit to draw Bloodshot out of hiding? This first issue sets up a variety of ways this series can go from here, and I’m definitely anxious to see what happens next. Bloodshot’s new status quo should have huge ramifications for the entire Valiant universe!

Bloodshot Reborn is another terrific Valiant series. It is a real great time to be a comic fan, especially if you’re willing to dig a little deeper than Marvel and DC. Archie, Image, Dark Horse, Boom, Dynamite, and Valiant has been putting out a lot of really great comics lately. I hear a lot of fans complaining about event overload, but they still will go out and buy Convergence and Secret Wars. If you do that and ignore the great work being put out by the indy companies, you give up all right to complain.

 


Title: Bloodshot Reborn #1
Written By: Jeff Lemire
Art By: Mico Suayan
Company: Valiant
Price: $3.99
Pros:
  • A terrific first issue that is very accessible to new and veteran readers.
  • Art was incredible.
Cons:
  • It was a little light on action, but that didn't take away from my enjoyment of this comic.
Is it worth your $3.99? Definitely worth checking out.  A great first issue that builds on everything that came before while setting the stage for a new status quo.
Grade: 
4.5 / 5.0