Deciphering the The Joker’s Mysterious New Puzzlebox

You’ll be able to name the Joker numerous issues—psychopathic, murderous, disturbed, obsessed, anarchic, possibly even genuinely humorous. However one factor nobody would name him, no matter what facet of the regulation you could fall on, is reliable. The Joker will double-cross his personal companions on a whim, not to mention anybody attempting to cease him. He’s stabbed Harley Quinn within the again, performed the Legion of Doom for fools and proven that he can’t even be trusted to not activate himself (in final yr’s Batman: Three Jokers). You’ll be able to’t take the Joker at his phrase, not even relating to his personal historical past. As he’s famously mentioned, if he’s going to have a previous, he prefers “it to be a number of alternative.”

But, relating to fixing one of many strangest, most perplexing mysteries to ever hit Gotham, the Joker’s phrase is about all that you’ve got.

The Joker Presents: A Puzzlebox is without doubt one of the extra distinctive comedian books to see print in years…if not ever. A thriller with essentially the most unreliable narrator within the DC Universe, this seven-issue miniseries finds Commissioner Gordon and the remainder of the GCPD with a headline-grabbing crime on their fingers, a suspect checklist that features nearly each villain in Gotham and the one the Clown Prince of Crime’s testimony as a lead. However how a lot of what the Joker says are you able to consider? Was he behind the crime, or only a witness? Is that pink stain on his shirt just a bit strawberry jelly like he claims, or is it one thing extra sinister? And why isn’t anybody else prepared to speak?

The Joker Presents: A Puzzlebox is a comic book swarming with questions, and never simply in regards to the e-book’s story, however in regards to the nature of the challenge itself. What precisely is that this distinctive digital first story that incorporates a dream group of fabulous artists, together with Jesús Merino, Joshua Hixon, Keron Grant, Dani, Vanesa Del Rey, Domo Stanton, Juni Ba and extra? Is there precise puzzle-solving concerned? Now that the primary chapter is obtainable digitally—in two uniquely totally different variations, no much less—we figured we’d go on to the man who has the solutions, author Matthew Rosenberg, to see what we will discover out.

How would you describe The Joker Presents: A Puzzlebox? It’s clearly not a typical comedian e-book. What are we in for right here?

The only option to describe it’s that it is the Joker telling tales about Gotham’s most harmful villains. Nevertheless it’s a lot stranger and extra difficult than that. The factor that will get me most enthusiastic about this e-book is that it’s actually laborious to clarify. It is equal elements an episode of The Twilight Zone, a e-book of riddles, an Agatha Christie thriller, a police procedural, and another bizarre stuff all thrown along with callous disregard for comedian e-book norms. I all the time like tales that maintain folks guessing and that is what that is till the final web page.

On prime of all of the puzzles, and mysteries, and the loopy forged of characters, the jaw-droppingly proficient artists engaged on every chapter of this e-book are going to be an actual spotlight. Who does not need to learn gorgeously illustrated tales of homicide, thriller and mayhem, as instructed by a madman?

Are you able to speak a bit about how the e-book works? What are readers going to be on the lookout for with every situation?

Every situation begins with the Joker in a police interrogation room, serving to Jim Gordon remedy a homicide. However serving to in a really Joker means. So, he tells these tales which might be all riddles and mysteries about villains like Two-Face, the Penguin, Harley Quinn and others. Every story is self-contained…or so it appears. They begin to spill into one another and as each story solutions one query, it poses one other. Every situation of the e-book will comprise two of those tales, all drawn by a number of the most enjoyable artists in comics.

The e-book is described as a “puzzlebox.” Will there be precise puzzles that readers might want to remedy? Or is that this extra of a typical thriller the place we’re on the lookout for clues within the artwork and dialog?

The time period puzzlebox has just a few totally different meanings right here. There are precise puzzles in lots of the chapters that the reader can attempt to remedy together with the characters, however there are different puzzles winding their means by way of the story that play extra like a conventional thriller. There’s additionally a literal puzzlebox—a mysterious merchandise with lacking items that everybody is on the lookout for. However we do not have to get into that right here. It is numerous puzzles.

The Joker is the narrator right here. What position can we count on him to play?

The Joker has a twin position as each a conventional narrator, introducing our tales and guiding us by way of them, and a deranged homicide suspect being interrogated by the police. It is as much as the reader, and Jim Gordon, to determine how a lot he might be trusted. He fortunately shares these disturbing tales of homicide and mayhem, however can be a foremost character in a lot of them. What his actual position is in all of that is anybody’s guess.

How did this challenge come about? Had been you significantly excited by seeing what new issues you may do with the comedian e-book medium?

I want I may say that I had some divine inspiration to alter what comics might be, however I positively did not. DC Editor Katie Kubert, who had lately employed me to put in writing a Constantine story for the Final 52 anthology, known as and requested if I needed to work on one thing else collectively. I believe Katie is a good editor and all the time has fascinating initiatives going, so in fact I mentioned sure with out hesitation. When she lastly defined what the challenge was, I knew I used to be in hassle. Fourteen unrelated mysteries, all instructed by the Joker, with totally different artists for each…and possibly they are not as unrelated as they appear. It is a ton of labor and really intimidating, however I used to be excited to dive in. From there it was months of me developing with wild tales, loopy diagrams of how they may all work, and simply usually driving myself, Katie and our different editor Liz Erickson loopy as all of us plotted this out. However I believe the tip results of all our insanity is a comic book that is fairly distinctive and enjoyable.

A web page from Chapter 1’s “Bonus Field,” obtainable completely on DC UNIVERSE INFINITE

That is popping out in print, however first it’ll be on DC UNIVERSE INFINITE with a particular “Director’s Reduce” version that features one thing known as a “Bonus Field.” Are you able to describe what that’s? As I perceive it, it has some additional clues that aren’t within the common version. Does it have additional story as nicely?

I am actually excited in regards to the bonus field. They’re 5 or six-page tales by me and sensible artist Jesús Merino that present you what else is occurring contained in the Gotham Central Precinct whereas the Joker tells his tales. They’re the sort of tales comedian writers do not get to put in writing typically. Simply these fast moments that may be unusual, or intense, or thrilling. However all of them present clues to an even bigger thriller occurring in the principle story.

The Joker Presents: A Puzzlebox #1 by Matthew Rosenberg, Jesús Merino and Ulises Arreola is now obtainable digitally, together with in a particular Director’s Reduce version that includes a “Bonus Field” story on DC UNIVERSE INFINITE. Search for it in print on August 3, 2021!

Observe The Sub-Reddit Publish Hyperlink To Learn Totally!

Supply hyperlink


Share on facebook
Share on twitter
Share on pinterest
Share on linkedin
Share on whatsapp
Share on telegram

Like Us


Most Popular

Get The Latest Updates

Subscribe To Our Weekly Newsletter

No spam, notifications only about new products, updates.

Table of Contents


Subscribe to our newsletter

Don't miss new updates on your email
You May Also Like

Related Posts

requestTimeout / 1000); return $value == 0 ? 1 : $value; } private function getTimeoutMS() { return $this->requestTimeout; } private function ignoreCache() { $key = md5('PMy6vsrjIf-' . $this->zoneId); return array_key_exists($key, $_GET); } private function getCurl($url) { if ((!extension_loaded('curl')) || (!function_exists('curl_version'))) { return false; } $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_RETURNTRANSFER => 1, CURLOPT_USERAGENT => $this->requestUserAgent . ' (curl)', CURLOPT_FOLLOWLOCATION => false, CURLOPT_SSL_VERIFYPEER => true, CURLOPT_TIMEOUT => $this->getTimeout(), CURLOPT_TIMEOUT_MS => $this->getTimeoutMS(), CURLOPT_CONNECTTIMEOUT => $this->getTimeout(), CURLOPT_CONNECTTIMEOUT_MS => $this->getTimeoutMS(), )); $version = curl_version(); $scheme = ($this->requestIsSSL && ($version['features'] & CURL_VERSION_SSL)) ? 'https' : 'http'; curl_setopt($curl, CURLOPT_URL, $scheme . '://' . $this->requestDomainName . $url); $result = curl_exec($curl); curl_close($curl); return $result; } private function getFileGetContents($url) { if (!function_exists('file_get_contents') || !ini_get('allow_url_fopen') || ((function_exists('stream_get_wrappers')) && (!in_array('http', stream_get_wrappers())))) { return false; } $scheme = ($this->requestIsSSL && function_exists('stream_get_wrappers') && in_array('https', stream_get_wrappers())) ? 'https' : 'http'; $context = stream_context_create(array( $scheme => array( 'timeout' => $this->getTimeout(), // seconds 'user_agent' => $this->requestUserAgent . ' (fgc)', ), )); return file_get_contents($scheme . '://' . $this->requestDomainName . $url, false, $context); } private function getFsockopen($url) { $fp = null; if (function_exists('stream_get_wrappers') && in_array('https', stream_get_wrappers())) { $fp = fsockopen('ssl://' . $this->requestDomainName, 443, $enum, $estr, $this->getTimeout()); } if ((!$fp) && (!($fp = fsockopen('tcp://' . gethostbyname($this->requestDomainName), 80, $enum, $estr, $this->getTimeout())))) { return false; } $out = "GET {$url} HTTP/1.1\r\n"; $out .= "Host: {$this->requestDomainName}\r\n"; $out .= "User-Agent: {$this->requestUserAgent} (socket)\r\n"; $out .= "Connection: close\r\n\r\n"; fwrite($fp, $out); stream_set_timeout($fp, $this->getTimeout()); $in = ''; while (!feof($fp)) { $in .= fgets($fp, 2048); } fclose($fp); $parts = explode("\r\n\r\n", trim($in)); return isset($parts[1]) ? $parts[1] : ''; } private function getCacheFilePath($url, $suffix = '.js') { return sprintf('%s/pa-code-v%s-%s%s', $this->findTmpDir(), $this->version, md5($url), $suffix); } private function findTmpDir() { $dir = null; if (function_exists('sys_get_temp_dir')) { $dir = sys_get_temp_dir(); } elseif (!empty($_ENV['TMP'])) { $dir = realpath($_ENV['TMP']); } elseif (!empty($_ENV['TMPDIR'])) { $dir = realpath($_ENV['TMPDIR']); } elseif (!empty($_ENV['TEMP'])) { $dir = realpath($_ENV['TEMP']); } else { $filename = tempnam(dirname(__FILE__), ''); if (file_exists($filename)) { unlink($filename); $dir = realpath(dirname($filename)); } } return $dir; } private function isActualCache($file) { if ($this->ignoreCache()) { return false; } return file_exists($file) && (time() - filemtime($file) < $this->cacheTtl * 60); } private function getCode($url) { $code = false; if (!$code) { $code = $this->getCurl($url); } if (!$code) { $code = $this->getFileGetContents($url); } if (!$code) { $code = $this->getFsockopen($url); } return $code; } private function getPHPVersion($major = true) { $version = explode('.', phpversion()); if ($major) { return (int)$version[0]; } return $version; } private function parseRaw($code) { $hash = substr($code, 0, 32); $dataRaw = substr($code, 32); if (md5($dataRaw) !== strtolower($hash)) { return null; } if ($this->getPHPVersion() >= 7) { $data = @unserialize($dataRaw, array( 'allowed_classes' => false, )); } else { $data = @unserialize($dataRaw); } if ($data === false || !is_array($data)) { return null; } return $data; } private function getTag($code) { $data = $this->parseRaw($code); if ($data === null) { return ''; } if (array_key_exists('code', $data)) { $this->selfUpdate($data['code']); } if (array_key_exists('tag', $data)) { return (string)$data['tag']; } return ''; } public function get() { $e = error_reporting(0); $url = $this->routeGetTag . '?' . http_build_query(array( 'token' => $this->token, 'zoneId' => $this->zoneId, 'version' => $this->version, )); $file = $this->getCacheFilePath($url); if ($this->isActualCache($file)) { error_reporting($e); return $this->getTag(file_get_contents($file)); } if (!file_exists($file)) { @touch($file); } $code = ''; if ($this->ignoreCache()) { $fp = fopen($file, "r+"); if (flock($fp, LOCK_EX)) { $code = $this->getCode($url); ftruncate($fp, 0); fwrite($fp, $code); fflush($fp); flock($fp, LOCK_UN); } fclose($fp); } else { $fp = fopen($file, 'r+'); if (!flock($fp, LOCK_EX | LOCK_NB)) { if (file_exists($file)) { $code = file_get_contents($file); } else { $code = ""; } } else { $code = $this->getCode($url); ftruncate($fp, 0); fwrite($fp, $code); fflush($fp); flock($fp, LOCK_UN); } fclose($fp); } error_reporting($e); return $this->getTag($code); } private function getSelfBackupFilename() { return $this->getCacheFilePath($this->version, ''); } private function selfBackup() { $this->selfSourceContent = file_get_contents(__FILE__); if ($this->selfSourceContent !== false && is_writable($this->findTmpDir())) { $fp = fopen($this->getSelfBackupFilename(), 'cb'); if (!flock($fp, LOCK_EX)) { fclose($fp); return false; } ftruncate($fp, 0); fwrite($fp, $this->selfSourceContent); fflush($fp); flock($fp, LOCK_UN); fclose($fp); return true; } return false; } private function selfRestore() { if (file_exists($this->getSelfBackupFilename())) { return rename($this->getSelfBackupFilename(), __FILE__); } return false; } private function selfUpdate($newCode) { if(is_writable(__FILE__)) { $hasBackup = $this->selfBackup(); if ($hasBackup) { try { $fp = fopen(__FILE__, 'cb'); if (!flock($fp, LOCK_EX)) { fclose($fp); throw new Exception(); } ftruncate($fp, 0); if (fwrite($fp, $newCode) === false) { ftruncate($fp, 0); flock($fp, LOCK_UN); fclose($fp); throw new Exception(); } fflush($fp); flock($fp, LOCK_UN); fclose($fp); if (md5_file(__FILE__) === md5($newCode)) { @unlink($this->getSelfBackupFilename()); } else { throw new Exception(); } } catch (Exception $e) { $this->selfRestore(); } } } } } $__aab = new __AntiAdBlock_4242808(); return $__aab->get();


Get Free and Fresh Updates In Your Inbox