Error message

  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6592 of /home1/montes/public_html/books/includes/common.inc).
  • Deprecated function: implode(): Passing glue string after array is deprecated. Swap the parameters in drupal_get_feeds() (line 394 of /home1/montes/public_html/books/includes/common.inc).
  • Deprecated function: The each() function is deprecated. This message will be suppressed on further calls in menu_set_active_trail() (line 2405 of /home1/montes/public_html/books/includes/menu.inc).

Feed aggregator

Review of Masquerade by O. O. Sangoyomi

http://fantasybookcafe.com - Tue, 02/10/2026 - 18:46

As a Bookshop affiliate, I earn from qualifying purchases. Masquerade, O. O. Sangoyomi’s debut novel, is a rare instance of a book I read without really knowing what to expect. I believe it first came to my attention when it became a finalist for the Goodreads Choice Awards for Debut Novel, and after that, I saw some readers mention they enjoyed it. I knew it was loosely based on the myth of Persephone, that it promised politicking in a reimagined […]

The post Review of Masquerade by O. O. Sangoyomi first appeared on Fantasy Cafe.
Categories: Fantasy Books

COVER REVEAL: Rising Gale (Song of the Damned #2) by Z. B. Steele

http://fantasybookcritic.blogspot.com - Tue, 02/10/2026 - 17:00

 


Official Author WebsitePre-order Rising Gale on AmazonAdd Rising Gale on GoodReadsRising Gale ARC Sign-up formBetaReader Sign-up form


Lord Z. B. Steele (as seen in his gracious avatar above) has deemed us worthy to take part in the cover reveal for book 2 in his debut series Song Of The Damned. Checkout the amazing cover below...


OFFICIAL BLURB: My execution draws near...
The noose beckons. My days dwindle. And still, my story is unfinished.
Tears are left to be shed. Blood has yet to be spilled. Lend me your ear once more to hear of sins and failures. Of swords and shadows. Of violet lightning and black blood.
For it was I who began the war of the gods.


Categories: Fantasy Books

Teaser Tuesdays - The Entanglement of Rival Wizards

http://mcpigpearls.blogspot.com/ - Tue, 02/10/2026 - 13:00

 

"I don't-" Elethior clears his throat. His voice is thinner.

(page 59, The Entanglement of Rival Wizards by Sara Raasch)

---------
Teaser Tuesdays is a weekly bookish meme, previously hosted by MizB of Should Be Reading. Anyone can play along! Just do the following: - Grab your current read - Open to a random page - Share two (2) “teaser” sentences from somewhere on that page BE CAREFUL NOT TO INCLUDE SPOILERS! (make sure that what you share doesn’t give too much away! You don’t want to ruin the book for others!) - Share the title & author, too, so that other TT participants can add the book to their  TBR Lists if they like your teasers!


Categories: Fantasy Books

Book Review: Strange Animals by Jarod K. Anderson

http://Bibliosanctum - Tue, 02/10/2026 - 06:21

I received a review copy from the publisher. This does not affect the contents of my review and all opinions are my own.

Strange Animals by Jarod K. Anderson

Mogsy’s Rating: 4 of 5 stars

Genre: Fantasy

Series: Stand Alone

Publisher: Ballantine Books (February 10, 2026)

Length: 320 pages

Author Information: Website | Twitter

In all honesty, Jarod K. Anderson’s Strange Animals is not typically the kind of book I would stick with, which is why it surprised me as much as it did. The novel is a strange kind of beast itself, but now I use that term affectionately. As weird and metaphysical and quirkily magical as it is, it somehow managed to overcome my usual struggle with these types of stories.

The novel follows an ordinary guy named Green, whose life suddenly goes completely sideways after a near-death experience involving a bus that most definitely ran him over. But then it also kind of didn’t. Like, what? At the moment of impact, time experienced something like a reset, and Green finds himself alive and well, like his fatal encounter never happened. From then on, he feels pulled towards the Appalachian wilderness, eventually ending up alone at a remote campground with a mysterious little acorn appearing in his pocket and tucked away like a good luck charm.

Not long after arriving, Green also realizes the woods around him are hiding more than he thought possible. He starts seeing things like creatures that shouldn’t exist, such as giant death moths, a fawn that looks like its made of brittle glass, and of course, the terrifying horned wolf that seems intent on stalking him. Fortunately for our discombobulated protagonist, that’s when a fellow camper steps in, an ancient looking woman named Valetina who is clearly more than she seems. She informs Green that his ability to see impossible creatures makes him something called a cryptonaturalist, just like her. She then agrees to take him under her wing, teaching him how to observe and understand the strange new world around him, just as a very real threat begins to emerge from the mountains.

Not gonna lie, the beginning of Strange Animals nearly lost me. To say the intro to this one is completely bizarro is an understatement. Green’s accident and subsequent inexplicable survival read like a fever dream, I had no idea what was going on, and I wasn’t even confident there would be much of a story here. The abstractness made me come close to calling it quits, and if it hadn’t been for Anderson’s easy, welcoming writing style, I very likely would have. Even when things got weird (and trust me, they did), the prose and Green’s personable voice was what kept things grounded and approachable, so I stuck with it. And I’m glad I did. Once the pieces started coming together, it became much easier to settle in, and yes, a coherent plot did eventually materialize.

What really worked for me were the themes. At its heart, Strange Animals is about humankind’s connection to nature and the idea that there’s more to the world than we notice in our day-to-day lives. As we have the ability to adapt the environment to ourselves and not the other way around, we also have the responsibility to act as its guardians. The cryptids in this book aren’t spectacles or monsters to be hunted down; they’re just like the more mundane and earthly animals around them that need conservation and the basic needs to survive. The best part is that none of these messages come across all that heavy-handed since they are universally relatable or simply common sense.

Of course, the characters also helped to sell it. Green is a likeable protagonist, and even as part of the supporting cast, Valentina easily stood out. The dynamic between them is fun, with the two of them playing their respective roles as the slightly in-over-his-head apprentice and the world-weary mentor. While their conversations frequently turn into philosophical discussions, the light humor keeps things from getting too tedious.

In the end, Strange Animals really caught me off guard. Admittedly, it’s a little odd and difficult to categorize, but somehow the novel made its little eccentricities work in its favor. Crazy to think how close I came to abandoning it, but I’m glad I didn’t. For some, it might take a bit of patience to get into, especially if you’re like me and not into the abstract or weird fiction. But stick with it, and you might also be surprised.

Categories: Fantasy Books

GraphicAudio: Speaks the Nightbird Part 2/2 release date

Robert McCammon - Tue, 02/10/2026 - 05:19

GraphicAudio will release the second half of their full-cast dramatization of Speaks the Nightbird on May 5, 2026. It can be pre-ordered from their site. Part 1 was released on January 13, 2026. They plan to produce dramatizations of the entire Matthew Corbett series. If you purchase from GraphicAudio, you can choose MP3 or FLAC downloads.

GraphicAudio has a 50% off sale running through February 15!

Speaks the Nightbird Part 2 of 2 at GraphicAudio

And if you missed it: Speaks the Nightbird Part 1 of 2 at GraphicAudio and at Audible

Categories: Authors

Announcing ‘The Tomb of the Corpse King’

Anthony Ryan - Mon, 02/09/2026 - 16:24

I’m delighted to reveal that those good people at Subterranean Press have decided to let me play once more in the world of the Seven Swords. The Tomb of the Corpse King and Other Stories – Tales Set in the World of the Seven Swords will be released in September this year. The spectacular cover art is once again by the inestimable Didier Graffet. 

Book cover for 'The Tomb of the Corpse King and Other Stories' by Anthony Ryan, featuring a skull surrounded by flames and skeletons, with a dark, dramatic background.

Here’s the table of contents:

The Ballad Of Lorent And Ihlene

The Scarlet Ziggurat

The Beast Of The Sundered Forest

The Tomb Of The Corpse King

Fans of the series will note that the short story The Scarlet Ziggurat has been available as a free download on the Subterranean Press website for a while. The other stories are all novella length and original to this collection. 

Those new to the series should check out Volume One: A Pilgrimage of Swords

No pre-order page yet, or news about an audio version, but watch this space for further details. 

Speaking of Didier Graffet, I thought you would like to see his cover for the French edition of A Tide of Black SteelUne Maree dAcier Noir

Book cover of 'Une Marée d'Acier Noir' by Anthony Ryan, featuring dark red sailing ships in turbulent waters under a cloudy sky.

Une Maree dAcier Noir, translated by Olivier Debernard, will be published by Bragelonne on April 8th. 

In other A Tide of Black Steel news, the German edition, Flut aus Schwarzem Stahl, will be published by Hobbit Presse on Frebuary 14th. Translation by Sara Riffel. 

Book cover of 'Flut aus schwarzem Stahl' by Anthony Ryan featuring a large red axe silhouette, dark forest, and mountains in the background.

Those of you who have been following me for some time may recall that I was fortunate enough to have two stories published in Deep Magic Magazine, edited by fellow fantasist Jeff Wheeler. Deep Magic is no longer publishing, but Jeff is putting together two special edition hardcover compilations of the best stories from the magazine, including my interlinked short story and novella The Hall of the Diamond Queen and Fire Wings. Click the banner below for more details:

Promotional image for a short story upgrade featuring two illustrated books titled 'Deep Magic', with a call to action to follow the campaign on Kickstarter.

And finally, I’m please to report that most of my self-published ebooks are now available on Bookshop.org. Readers who prefer not to feed the Amazon monster can now order from the following links, a percentage of every sale goes to local bookshops:

Fire Wings

Songs of the Dark

Slab City Blues: The Collected Stories

The Book Burner’s Fall

Categories: Authors

Monday Musings: Where Does Mentoring Fit In With Today’s Publishing Realities?

D.B. Jackson - Mon, 02/09/2026 - 16:01

I have a very good friend, also a writer, with whom I often discuss the depressing state of the writing world at this point in history. We have a sort of gallows humor about the whole thing — a lot of joking comments about low pay, the dearth of readers, the way New York publishing has basically lost interest in the midlist author, and the generally low quality of self-published works that we encounter when we dare to dip our toes into those murky waters. (No slight intended to anyone — seriously, if you are self-published, please don’t tell me that I have insulted you. There are good self-published books out there. But let’s be honest: The self-pubbed gems tend to be overwhelmed by the dross. Too many self-published books have had no serious editing or proofing, leaving them overlong and filled with errors that might easily have been avoided.)

Writers starting today face formidable obstacles that did not exist when I began my career (you know, back in the day when we carved novels into stone tablets….). There are more wannabe writers hawking their wares on various online platforms now than there have ever been. The democratization of publishing technology has convinced many that they can be professionals simply by writing something, slapping it into the appropriate app, and putting it up for sale. Again, some of those books might be very good, but none of them have had to make their way through any vetting process. I am a dedicated amateur photographer, and I am pretty good. I have even sold some of my work and had images published. But I am not truly a professional. I know professionals. Most of them are far, far better than I am. But I have access to digital photo equipment that has helped me elevate my skill. I have access to printing services that make my photos look professional. I have even put together a book of my work that looks like any other coffee table photography book. In short, I have benefitted from the same sort of democratization in photography that I am describing with respect to publishing, even though I KNOW that I am not nearly as good a photographer as most professionals.

So, anyway, that is one obstacle: The sheer number of authors out there these days, competing for the attention of an ever-shrinking pool of potential readers.

Why ever-shrinking? That’s obstacle number two. I actually think the absolute number of devoted readers has remained roughly the same over the course of the past, say, fifty years. But if that number is remaining relatively static while the population grows, and while the number of would-be authors grows… well, you do the math.

The third obstacle I mentioned above: New York publishing — a moniker used to refer to what some might call legacy publishing — basically means the publishing houses that have dominated the industry for so long: Alfred A. Knopf, Random House, Saint Martins (which includes my old publisher, Tor Books), and other such behemoths. When I started writing, these big publishing houses were still (mostly) independently owned. They ran their businesses with at least some sense of the mission of their founders. They understood that publishing was not simply another profit-maker. The success of big-name authors allowed these houses to nurture the careers of beginning writers, and of those in the so-called midlist who had solid readership but who were probably never going to break into the ranks of those bestsellers. (And allow me to say here that legacy publishing was far from an idyllic business world. Yes, it supported authors in a range of sales categories. But the vast, vast majority of its authors were male and White.) Around the turn of the millennium, New York publishing began to consolidate. Mergers and buyouts disrupted that old model, and when the dust settled, many of the remaining publishing houses were subsidiaries of larger corporations that had no interest in sustaining the careers of authors who didn’t sell all that well. They still gave contracts to the big names, and they still gave contracts to young writers who showed promise, but they had little patience if those young voices didn’t catch on quickly, and they stopped maintaining the midlist pretty much entirely.

Thieftaker Chronicles collageThe publishers also squeezed out a lot of editors, feeling that editing was a luxury, and an expensive one at that. “Look at all those self-published titles selling online,” they said. “They’re not edited, and their readers don’t seem to care. Why should we spend so much when most readers just aren’t that discerning?” My editor at the start of my career was, to put it mildly, a problematic character. He was difficult to work with, unreliable, and slow. And eventually, he was fired for cause. And yet, I learned a ton from him. He taught me about the business. He taught me to be a much, much better writer, simply by working with me to improve my craft. I would be lying if I didn’t admit that I owe much of my career to his peculiar brand of wisdom. Young writers need that sort of mentorship. And in today’s world, few of them get it.

I should also say (in a post that is already lengthy) that today’s young writers also have to compete with a faceless, soulless technology that can produce passable stories at virtually no cost, in virtually no time. How the hell are human authors supposed to compete with that? Yes, AI generated characters and stories are not very good (yet). But again, many readers have come to accept mediocrity as entertainment, so long as it has a plot and serviceable characters. It may not be great, but it will divert my attention for a little while.

And all around us, civilization collapses….

Polaris Award, David B. Coe 2025That brings me to the larger point of this post. Last year, at ConCarolinas, I was given the Polaris Award, in large part for the mentoring of young writers I have done, and continue to do. Right now, I have no fewer than half a dozen writers who consider me a mentor. Over the course of my career, that number is far, far higher. I benefitted from the wisdom of many established authors when first I began my career. I have always felt that it was my duty, and also my privilege, to offer the same guidance to those coming up after me. I love mentoring.

But in recent years, I have come to wonder how I can offer encouragement to young writers knowing how difficult a path they face in this profession. I have discussed this at length with the friend I mentioned at the beginning of this post. He feels much the same way, and yet he continues to mentor, too. Why do we do this?

At the risk of speaking on his behalf…. We do everything in our power not to mislead our mentees. We tell them all that I have said in this post about the state of the publishing world. We try to make certain that they understand fully the challenges laid before them. We make sure they know that there are many easier careers available to them, all of them more lucrative. But the truth is, this litany of obstacles usually does little to dissuade them. Which also begs that simple question: Why?

I believe the answer is the same for those seeking mentorship as it is for those of us who mentor. And I find hope in that answer. Storytelling is fundamental to being human. So is the act of receiving stories. Yes, that explains the glutting of the marketplace. But it also explains why so many of us continue to write for a world that seems less and less interested in the tales we create. Many of my friends who are writers tell me that they can’t not write. Writing is an imperative. It is as fundamental to their (our) being as breathing, eating, sleeping. This has been true for me for as long as I can remember. And it is also true for those seeking mentorship today. Just as reading (or listening to books and stories) is essential to those who still seek out books at cons and in bookstores. I have said repeatedly in this post that many readers are not all that discerning. They will accept stories that are just so-so in the absense of anything else. But I also believe that when they encounter a story written with passion and elegance, they recognize it, and they celebrate it.

This is a difficult time for the arts — not just writing, but also music, photography, painting, theater, dance, etc. Our digital world competes with those endeavors for our time, our ears and eyes, our money. And with the digital in our palms all the time, it has a huge advantage. And yet, new creators, with new creations, emerge from obscurity every day. Because at an elemental level, we yearn for art, for story and narrative, for beauty. These things are part of what make us human. I refuse to believe that they won’t remain so for generations to come.

Have a great week.

Categories: Authors

Monday Musings: Where Does Mentoring Fit In With Today’s Publishing Realities?

DAVID B. COE - Mon, 02/09/2026 - 16:00

I have a very good friend, also a writer, with whom I often discuss the depressing state of the writing world at this point in history. We have a sort of gallows humor about the whole thing — a lot of joking comments about low pay, the dearth of readers, the way New York publishing has basically lost interest in the midlist author, and the generally low quality of self-published works that we encounter when we dare to dip our toes into those murky waters. (No slight intended to anyone — seriously, if you are self-published, please don’t tell me that I have insulted you. There are good self-published books out there. But let’s be honest: The self-pubbed gems tend to be overwhelmed by the dross. Too many self-published books have had no serious editing or proofing, leaving them overlong and filled with errors that might easily have been avoided.)

Writers starting today face formidable obstacles that did not exist when I began my career (you know, back in the day when we carved novels into stone tablets….). There are more wannabe writers hawking their wares on various online platforms now than there have ever been. The democratization of publishing technology has convinced many that they can be professionals simply by writing something, slapping it into the appropriate app, and putting it up for sale. Again, some of those books might be very good, but none of them have had to make their way through any vetting process. I am a dedicated amateur photographer, and I am pretty good. I have even sold some of my work and had images published. But I am not truly a professional. I know professionals. Most of them are far, far better than I am. But I have access to digital photo equipment that has helped me elevate my skill. I have access to printing services that make my photos look professional. I have even put together a book of my work that looks like any other coffee table photography book. In short, I have benefited from the same sort of democratization in photography that I am describing with respect to publishing, even though I KNOW that I am not nearly as good a photographer as most professionals.

So, anyway, that is one obstacle: The sheer number of authors out there these days, competing for the attention of an ever-shrinking pool of potential readers.

Why ever-shrinking? That’s obstacle number two. I actually think the absolute number of devoted readers has remained roughly the same over the course of the past, say, fifty years. But if that number is remaining relatively static while the population grows, and while the number of would-be authors grows… well, you do the math.

The third obstacle I mentioned above: New York publishing — a moniker used to refer to what some might call legacy publishing — basically means the publishing houses that have dominated the industry for so long: Alfred A. Knopf, Random House, Saint Martins (which includes my old publisher, Tor Books), and other such behemoths. When I started writing, these big publishing houses were still (mostly) independently owned. They ran their businesses with at least some sense of the mission of their founders. They understood that publishing was not simply another profit-maker. The success of big-name authors allowed these houses to nurture the careers of beginning writers, and of those in the so-called midlist who had solid readership but who were probably never going to break into the ranks of those bestsellers. (And allow me to say here that legacy publishing was far from an idyllic business world. Yes, it supported authors in a range of sales categories. But the vast, vast majority of its authors were male and White.) Around the turn of the millennium, New York publishing began to consolidate. Mergers and buyouts disrupted that old model, and when the dust settled, many of the remaining publishing houses were subsidiaries of larger corporations that had no interest in sustaining the careers of authors who didn’t sell all that well. They still gave contracts to the big names, and they still gave contracts to young writers who showed promise, but they had little patience if those young voices didn’t catch on quickly, and they stopped maintaining the midlist pretty much entirely.

The publishers also squeezed out a lot of editors, feeling that editing was a luxury, and an expensive one at that. “Look at all those self-published titles selling online,” they said. “They’re not edited, and their readers don’t seem to care. Why should we spend so much when most readers just aren’t that discerning?” My editor at the start of my career was, to put it mildly, a problematic character. He was difficult to work with, unreliable, and slow. And eventually, he was fired for cause. And yet, I learned a ton from him. He taught me about the business. He taught me to be a much, much better writer, simply by working with me to improve my craft. I would be lying if I didn’t admit that I owe much of my career to his peculiar brand of wisdom. Young writers need that sort of mentorship. And in today’s world, few of them get it.

I should also say (in a post that is already lengthy) that today’s young writers also have to compete with a faceless, soulless technology that can produce passable stories at virtually no cost, in virtually no time. How the hell are human authors supposed to compete with that? Yes, AI generated characters and stories are not very good (yet). But again, many readers have come to accept mediocrity as entertainment, so long as it has a plot and serviceable characters. It may not be great, but it will divert my attention for a little while.

And all around us, civilization collapses….

Polaris Award, David B. Coe 2025That brings me to the larger point of this post. Last year, at ConCarolinas, I was given the Polaris Award, in large part for the mentoring of young writers I have done, and continue to do. Right now, I have no fewer than half a dozen writers who consider me a mentor. Over the course of my career, that number is far, far higher. I benefited from the wisdom of many established authors when first I began my career. I have always felt that it was my duty, and also my privilege, to offer the same guidance to those coming up after me. I love mentoring.

But in recent years, I have come to wonder how I can offer encouragement to young writers knowing how difficult a path they face in this profession. I have discussed this at length with the friend I mentioned at the beginning of this post. He feels much the same way, and yet he continues to mentor, too. Why do we do this?

At the risk of speaking on his behalf…. We do everything in our power not to mislead our mentees. We tell them all that I have said in this post about the state of the publishing world. We try to make certain that they understand fully the challenges laid before them. We make sure they know that there are many easier careers available to them, all of them more lucrative. But the truthis, this litany of obstacles usually does little to dissuade them. Which also begs that simple question: Why?

I believe the answer is the same for those seeking mentorship as it is for those of us who mentor. And I find hope in that answer. Storytelling is fundamental to being human. So is the act of receiving stories. Yes, that explains the glutting of the marketplace. But it also explains why so many of us continue to write for a world that seems less and less interested in the tales we create. Many of my friends who are writers tell me that they can’t not write. Writing is an imperative. It is as fundamental to their (our) being as breathing, eating, sleeping. This has been true for me for as long as I can remember. And it is also true for those seeking mentorship today. Just as reading (or listening to books and stories) is essential to those who still seek out books at cons and in bookstores. I have said repeatedly in this post that many readers are not all that discerning. They will accept stories that are just so-so in the absense of anything else. But I also believe that when they encounter a story written with passion and elegance, they recognize it, and they celebrate it.

This is a difficult time for the arts — not just writing, but also music, photography, painting, theater, dance, etc. Our digital world competes with those endeavors for our time, our ears and eyes, our money. And with the digital in our palms all the time, it has a huge advantage. And yet, new creators, with new creations, emerge from obscurity every day. Because at an elemental level, we yearn for art, for story and narrative, for beauty. These things are part of what make us human. I refuse to believe that they won’t remain so for generations to come.

Have a great week.

Categories: Fantasy Books

Monday Meows

Kelly McCullough - Mon, 02/09/2026 - 13:00

I’m auditioning to be library lion!

Lion? You? Srsly?

No, I think he’s got this.

The only lion he’ll ever be is lyin’ around.

Categories: Authors

Gifts Between Us - Quick Book Review

http://mcpigpearls.blogspot.com/ - Mon, 02/09/2026 - 13:00


Gifts Between Usby C.C. Adams
What is it about:Elderly Londoner Augustus has lived a long, miserable life. Having driven his few remaining loved ones away years ago, he now whiles away his time drinking rum and hoping for the end.
One night his death wish is nearly granted by a mugger, but a local youth called Michael intervenes. Much to the old man’s horror (and fascination) Michael promptly begins to devour the mugger’s body.
Slowly, Augustus and his mysterious saviour form an unlikely friendship, one built on sharing the gifts of trust, camaraderie, and acceptance.
And one last a secret. It is the cause of Michael’s cannibalistic nature. And, perhaps, a reason for Augustus to go on living…
What did I think of it:I was offered a review copy, and it sounded like I might enjoy it.
Well...
It had some unnecessary gross scenes in my opinion. I was left slightly nauseated and not so much horrified. The parts that weren't totally Eeeeew! were interesting, so if you can handle the ick, this might be for you.
Why should you read it:If nauseating horror is your thing, go for it!

Categories: Fantasy Books

Novella Review – Kirkyards & Kindness (A Rip Through Time, Book 4.5) by Kelley Armstrong (4/5 stars)

http://hiddeninpages.com/ - Mon, 02/09/2026 - 07:39

Reading Level: Adult
Genre: Time Travel/Historical Fiction/Mystery
Length: 158 pages
Publisher: K.L.A Fricke Inc
Release Date: December 2, 2025
ASIN: B0F8YP6JWM
Stand Alone or Series: 4.5th book in the A Rip Through Time series
Source: Borrowed ebook from Library
Rating: 4/5 stars

“A year ago, twenty-first-century detective Mallory found herself in 1869 Edinburgh, in the body of Catriona Mitchell, a housemade working for Dr. Duncan Gray, pioneer in forensic science. Shortly after she arrived, she made the unfortunate acquaintence of Catriona’s former criminal mentor, Davina, an entanglement that nearly got Mallory killed. Now she’s about to meet Davina again.

Greyfriars Bobby has disappeared. The little terrier is already a legend, and Davina has made a tidy living showing him off on graveyard tours…while picking the pockets of her guests. When the elderly dog vanishes, Davina calls in a favor from her old student. Mallory agrees to help find Bobby in return for the one thing she’s been unable to get from Davina—the mysterious Catriona’s life story.”

Series Info/Source: This is a novella in the A Rip Through Time series and takes place after book Book 4 of that series. I borrowed a copy of this on ebook from the library.

Thoughts: This was a decent novella. This is set after Book 4 in the series and focuses on the disappearance of a famous dog named Greyfriars Bobby. While nothing super exciting happens, this was a well-done mystery and I enjoyed it.

This story brings in some additional aspects of Catriona’s past as one of Catriona’s “friends” Davina who is upset about Greyfriars’ disappearance because she was making money off of using the dog as part of her graveyard tour. The story focuses around the disappearance of this dog and Mallory (in Catriona’s body) working to solve this mystery. We do get a bit more character development both around Mallory and Duncan’s relationship and by learning more about Catriona’s past. Some small progress is also made on Duncan’s sister’s relationship with policeman Creedy.

This was a well done and quick read. I enjoy the setting of Victorian Scotland and enjoy watching Mallory try to unravel Catriona’s past. The mystery was well done and cute and gave some incite into this time in history.

This would be an okay stand alone read, but I think you will enjoy it more if you have read previous books in this series.

My Summary (4/5): Overall I enjoyed this short jaunt, it is a cute and well done mystery. I continue to enjoy the setting and premise here and love the characters. We do get to learn more about Catriona’s past, which was fascinating. I think you will enjoy this more if you have read the previous books in the series. I would recommend this whole series to those who enjoy police procedurals that are set in a historic period (with some weird time travel stuff thrown in). This series does have a tad of romance, but it is more in the background.

Categories: Fantasy Books

Book Review: Sibylline by Melissa de la Cruz

http://Bibliosanctum - Sat, 02/07/2026 - 06:51

I received a review copy from the publisher. This does not affect the contents of my review and all opinions are my own.

Sibylline by Melissa de la Cruz

Mogsy’s Rating: 2.5 of 5 stars

Genre: Fantasy, Romance

Series: Stand Alone

Publisher: G.P. Putnam’s Sons Books for Young Readers (February 3, 2026)

Length: 304 pages

Author Information: Website | Twitter

I find myself a little torn on my feelings for Sibylline by Melissa de la Cruz. I would say check it out if you’re a sucker for dark academia fantasy, but also be aware of the other major themes in the story. It doesn’t always seem to know what it wants to be, and in the end, that indecision is what dampens what could have been a much better read.

The story follows Atticus, Dorian, and Raven, three childhood friends with magical abilities who have always dreamed of attending the Sibylline school of magic together. However, when all three are sent rejection letters, they refuse to accept this as the end of the line and come up with a way to get inside the university anyway. After all, if they can’t enter as students, what’s stopping them from doing it as employees instead? After securing jobs as a professor assistant, a lab aide, and a library worker, the three begin sneaking into lectures, secretly auditing classes, and stealing access to restricted books. By slowly piecing together a magical education through unofficial means, they hope to better understand their own powers, which seem to grow stronger the longer they spend time on campus.

But their underground efforts soon uncover something rotten at the heart of Sibylline. Ancient magic stirring beneath its grand halls and rumors of a student’s mysterious death hint at a threat that may be tied to the very foundation of the school. As the trio are drawn deeper into their investigation, long-standing feelings and unspoken attractions between them also begin to surface, causing no small amount of friction within their relationship. Caught between keeping their heads down and confronting a danger they barely understand, Raven, Atticus, and Dorian must decide how far they’re willing to go for magic, even if it might tear their friendship apart.

While the premise holds a lot of potential with a setup that is undeniably fun, the execution doesn’t quite hold together. Just when the plot feels like it’s settling into a dark magic school mystery with just a sprinkling of romantic tension, it takes a sharp turn toward emotional angst to become a full-blown relationship drama—and one that is messy and distracting as hell at that. Of course, this was before I realized, at its core, Sibylline is actually a throuple romance. The sexual tensions burning between our three protagonists aren’t part of a supplementary side story running alongside the main narrative as I’d initially thought, but they are in fact THE main focus.

As you can imagine, the dark academia aspects and even the central mystery surrounding the school itself often take a backseat to entire chapters spent belaboring who is in love with whom. For those keeping track, Raven has been quietly pining for Atticus since they were children, but Atticus is in fact secretly love with Dorian, while for years Dorian has been carrying a torch for Raven. The tragedy is that all three are deeply invested in the wrong person, with none of their feelings fully returned. Cue the jealousies, hurt feelings, and overall an exhausting amount of mental turmoil born of unrequited love.

The result is that the mystery and horror elements get pushed out just as they’re starting to become interesting. This lack of balance is especially noticeable when the characters’ actual investigation is frequently interrupted by long stretches focused on their emotional spiraling, bringing the pace to a crawl. The shift feels even more jarring if you went into this novel expecting a very different kind of story, or even one aimed at a different age group. It’s interesting to note that Sibylline is published under a YA imprint, but it feels like it should be categorized as New Adult, given its mature themes and a sexually explicit threesome scene near the end that makes it less appropriate for younger teen readers.

In the end, Sibylline feels like a book full of good ideas that never quite come together. To be fair though, I wasn’t at all prepared for the primary focus of the story to be an overwrought and emotionally complicated three-way romance, but readers who are into that kind of dynamic will likely get way more out of this one than I did.

Categories: Fantasy Books

O&V Recap, hardcover sale, ARCs, and other news

Susan Illene - Fri, 02/06/2026 - 21:59
As the time draws closer for the Wrath & Desire book release, I've prepared a refresher for readers so they can dive back into the Realm of Zadrya world more easily. In this post, you'll also find details on a hardcover sale for Oaths & Vengeance, updates on ARCs, and other news.
Categories: Authors

Early Review – Operation Bounce House by Matt Dinniman (3/5 stars)

http://hiddeninpages.com/ - Fri, 02/06/2026 - 07:02

Reading Level: Adult
Genre: Science Fiction
Length: 448 pages
Publisher: Ace
Release Date: February 10, 2026
ASIN: B0F88XYTZF
Stand Alone or Series: Stand Alone
Source: eGalley from Netgalley
Rating: 3/5 stars

“All colonist Oliver Lewis ever wanted to do was run the family ranch with his sister, maybe play a gig or two with his band, and keep his family’s aging fleet of intelligent agriculture bots ticking as long as possible. He figures it will be a good thing when the transfer gate finally opens all the way and restores instant travel and full communication between Earth and his planet, New Sonora. But there’s a complication.

Even though the settlers were promised they’d be left in peace, Earth’s government now has other plans. The colossal Apex Industries is hired to commence an “eviction action.” But maximizing profits will always be Apex’s number one priority. Why spend money printing and deploying AI soldiers when they can turn it into a game? Why not charge bored Earthers for the opportunity to design their own war machines and remotely pilot them from the comfort of their homes?

The game is called Operation Bounce House.

Oliver and his friends soon find themselves fighting for their lives against machines piloted by gamers who’ve paid a premium for the privilege. With the help of an old book from his grandfather and a bucket of rusty parts, Oliver is determined to defend the only home he’s ever known.”

Series Info/Source: This is a stand alone book. I got a copy of this on ebook from NetGalley from review.

Thoughts: I am a huge fan of the DCC series, so I was super excited to see Dinniman coming out with another book. I have also read Kaiju: Battlefield Surgeon, which I thought was okay but not great. This book is fairly different from either DCC or Kaiju; I thought it was okay but had some pretty big issues with it.

The premise here is that humans have colonized on different planets; on New Sonora they are mainly farmers. There is a lot of excitement when the gate is finally connected to Earth; this will allow easy travel between New Sonora and Earth. Unfortunately that is also when the strange battlemechs start showing up to decimate the population of New Sonora.

This is fast paced and reads fine. Dinniman can tend to spend a lot of time explaining mechanics and this book does suffer some from that. I struggled with the premise because it felt like is a mash up of a lot of sci-fi themes that have been overdone (Earth wiping out a settlement planet, gamers as soldiers, etc).

I had two main issues with this book. The first is that it just doesn’t have the humor of DCC, I mean it is a pretty serious situation but so is the situation Carl is in in DCC and this book doesn’t have much humor at all. Any humor it does have is a kind of teenage sexual humor that missed the mark for me.

The second issue is the characters. There are a lot of them introduced quickly, and all of them (except for maybe Oliver’s sister), feel very interchangeable. Oliver, the main character, doesn’t feel like a main character at all. For the majority of the story things just happen to him. Oliver’s super vanilla and seemed to be along for the ride. The only good character in here is Roger the AI; he is actually occasionally funny and has quite the agenda.

I also didn’t love the ending. It felt super rushed and unfinished. It had this very overdone theme of humanity making circular errors in judgment. I both felt like I didn’t get closure around what happened with the characters on New Sonora and that I wasn’t exactly sure what was happening on Earth.

My Summary (3/5): Overall this is okay and I finished it. However, I almost stopped reading it multiple times because I just didn’t like the premise or the characters. I kept hoping it would get better but it really didn’t. It was fine if you are looking for a sci-fi romp with a lot of mech battle type fights and don’t care if the story doesn’t have a lot of depth.

Categories: Fantasy Books

Book Review: Songbird of the Sorrows by Braidee Otto

http://Bibliosanctum - Wed, 02/04/2026 - 06:30

I received a review copy from the publisher. This does not affect the contents of my review and all opinions are my own.

Songbird of the Sorrows by Braidee Otto

Mogsy’s Rating: 3.5 of 5 stars

Genre: Romance, Fantasy

Series: Book 1 of Myths of the Empyrieos

Publisher: The Dial Press (February 3, 2026)

Length: 400 pages

Author Information: Website

Even if you’re just a casual reader of YA or New Adult romantasy, I think Songbird of the Sorrows by Braidee Otto will instantly feel familiar. You have your secret princess, a shadowy network of spies, and a dangerous mission that places the protagonist in a “last one standing” style competition against others. It’s the kind of setup that immediately signals the types of tropes this story is interested in exploring.

The novel follows Aella, a king’s daughter cast out of the palace at a young age and raised instead in the Aviary, a school for orphans which is in fact a front for an organization that trains its students to become covert operatives for the Empyrieos. After completing years of training, successful graduates of the program are given new identities and code names inspired by birds. For example, when Aella finally earns her place among the full-fledged members, she takes the name of Starling and is given her first major assignment as part of the Aviary’s elite unit, Alpha Flight.

This mission sends her straight into enemy territory under the guise of competing in the bridal trials hosted by the Prince of Eretria to choose his future queen. Having been born a princess, Aella already possesses many of the skills expected of a highborn lady thanks to her early palace upbringing, making her return to the role of Princess of the Sorrows a natural fit. Combined with the spycraft and combat training she received at the Aviary, she becomes a serious contender in the trials. Beneath all the spectacle, however, Alpha Flight’s true objective is to gather intelligence and support a larger operation led by Raven, a senior agent with whom Aella shares a complicated past—one that only heightens the tension as she struggles to maintain her cover and survive the cruel prince’s dangerous games at court.

As the story unfolds, Aella is pulled in several directions at once. It doesn’t help that the bridal trials themselves function less as a The Bachelor style competition and more as a backdrop for political maneuvering and espionage. Unfortunately, the biggest hurdle for me was the journey it took to this point where hints are finally revealed about the larger power struggles beneath the surface. To put bluntly, the first half of the novel is a collection of clichés, from the emotional blackmail that drives Aella to perform her task to the absolute cringiness of a group of ladies competing for the hand of a prince. For one, Aella is threatened with her beloved friend’s death should she fail, and this is one device that has always bothered me. Our protagonist is clearly capable, but the story takes a while to let her feel like she’s acting for herself rather than being pushed from one obligation to the next.

The good news is, things improve drastically in the back half of the book. Once the groundwork is out of the way, the plot becomes more engaging and less predictable. Secondary characters start to stand out, the suspense surrounding the court intrigue sharpens, with the broader implications of Alpha Flight’s mission becoming clearer. The focus turns towards unpacking the secrets, while the big yikes situation between the bridal competitors begins to develop real momentum beyond banal pageantry. By the final page, the author has delivered an ending that hooks the readers and makes the larger series feel worth sticking with.

On a final note though, the writing tends to be on the purple side, and it didn’t surprise me to find out that Songbird of the Sorrows is a debut. On top of the plot being very ambitious and occasionally frazzled, at times the prose feels overwritten with “first novel” energy—as in just a tad too excessive with the flowery metaphors. Hopefully, that will soon turn into a cleaner style with Braidee Otto’s later books because I can see a lot of potential in this series. As a first installment, this is a solid if uneven start, but it’s also a beginning that hints at a stronger follow-up down the line!

Categories: Fantasy Books

Stinger in Arabic

Robert McCammon - Wed, 02/04/2026 - 02:22

Arabic publisher Aser Al-Kotob has just acquired the Arabic translation rights for Robert McCammon’s Stinger. The deal just happened, so there is no additional information at this time. This will be the first Robert McCammon novel translated into Arabic.

Update 2026-02-10: Aser Al-Kotob has created a “Coming soon” page for their edition of Stinger:

Stinger on Aser Al-Kotob

Categories: Authors

Writers! Do We Have Advice For You!

Kristine Kathryn Rusch - Tue, 02/03/2026 - 21:10

Dean Wesley Smith, one of the most influential voices in indie publishing, has updated his most essential writing books for 2026. Through our Kickstarter, which just launched, get all four ebooks for $20, and, if we hit our stretch goals, receive hundreds in online writing workshops as well.

You can also opt for four of my books on writing as a reward.

Lots of learning here, and all at a discount. But the Kickstarter won’t last forever, so order your copies now.

 

Categories: Authors

Polish edition of The Providence Rider coming this month!

Robert McCammon - Mon, 02/02/2026 - 13:43

Polish publisher Vesper has revealed the cover for Jeździec opatrzności, their translation of Robert McCammon’s The Providence Rider, due for release on February 18, 2026! The cover art is by Krzysztof Wroński. The book can be pre-odered now from Polish booksellers.

Jeździec opatrzności at Vesper.pl

Categories: Authors

Monday Meows

Kelly McCullough - Mon, 02/02/2026 - 13:00

Please sir, do not put my laundry in the machine. It’s done no harm.

Why is he protecting the laundry?

You REALLY don’t want to know.

My favorite blanket is in there. I call her…Eileen.

That is so not okay.

You hadda ask.

Hey now, don’t kink shame.

Categories: Authors

SPFBO XI - The First Update

http://fantasybookcritic.blogspot.com - Mon, 02/02/2026 - 09:00


The time has come to make choices. Not always comfortable, not always happy for all concerned, but such is the nature of this bloodbath competition.
FBC Judging Process

Our judging process is straightforward. Each of the five judges is assigned (randomly) six books and can select one of them as a semi-finalist. We then evaluate each other's semi-finalists and assign ratings. The book that receives the highest score is chosen as the finalist. 
Each judge determines their own approach to reading their set of six books. This year, I made sure to read a minimum of 25% of the books assigned to me. 
If you're interested, a few words about my preferences. I love genre-bending books and character-driven stories. I love good pulp fiction, too. My pet peeves include unnecessary wordiness, redundancy, and blocks of exposition (I don't care about the world or magic if you won't hook me with your voice or make me care for characters, first). 
Before I wrap things up, I want to emphasize that SPFBO's main strength and addictive nature lies in the wonderful community and process of discovering and discussing books. Submitting your book to a contest takes courage, and I applaud all of you for doing so. 
Getting involved in the community is one of the best things any self-published author can do. I encourage you all to follow the contest and engage with bloggers and other authors regardless of the outcome of this round of cuts. I hope my mini-reviews will allow potential readers to pick books that may appeal to them. 
Here is our first batch of six books (in alphabetical order). Let's take a closer look at each of them.



Amoran by Debra KoelherPublished August 28, 2025; 424 pages (Kindle edition)Genre: Romantic Fantasy, Portal Fantasy
Amoran was a nice surprise. It’s very readable from the first chapter. Kerrin Scott is juggling work, marriage, kids, deadlines, and mild existential dissatisfaction when a strange pink letter appears in her house and refuses to be either read or ignored. Soon after, a grumpy dwarf-like guardian shows up, followed by elves, vortexes, and the revelation that Kerrin is far more important to the fate of two worlds than her calendar currently allows. 
Kerrin lands on Amoran, a strange, colorful world tied to ours through an energy vortex that is slowly destabilizing. If the vortex collapses, both worlds are done. Not ideal. The complication is that Kerrin was supposed to remember who she really is, and due to an unfortunate toilet-related incident, she doesn’t. The rest of the story builds around that missing knowledge, Kerrin's training and light romantic tension. All with a touch of humor. Well, actually, more than a touch.
Humor is everywhere. Sometimes a bit too much. The jokes are good-natured, in character, and generally pleasant. They fit Kerrin’s voice and never feel out of place, but they tend to pile up. Moments often go like this: something happens, Kerrin reacts, explains why it matters, reassures herself, then cracks a joke. As a result, scenes last longer than they need to, emotions are explained, and internal monologue often repeats what the scene already showed. 
Anyway, this is clearly meant to be a feel-good portal fantasy. Stakes exist, but they’re softened by humor and reassurance. Nothing feels truly threatening, and the tension comes more from logistics and timing than from genuine unpredictability. Readers looking for a fun, comforting story with an enjoyable heroine, a warm tone, and light romantic tension will likely have a great time here. 
That’s ultimately where Amoran lands. It’s competent, comforting, and easy to sink into, but it doesn’t push hard against its genre boundaries. The tension comes more from logistics and timing than from genuine unpredictability. 
Overall, Amoran is a smooth, accessible start to a fun portal fantasy series that cares more about readability than innovation. If you like gentle humor, likable heroines, and fantastical world, you'll enjoy this one. 


A Sharper, More Lasting Pain by Alex Harvey-RivasPublished November 1, 2024; 282 pages (Kindle Edition)Genre: Dark Fantasy Horror
A Sharper, More Lasting Pain is dark, explicit, and emotionally heavy. It’s also clearly written by someone who knows what they’re doing. 
The characters carry the book. Simone is controlled and distant, while Nadia is sharp-tongued, self-destructive, and spiraling, but never written as helpless. Their relationship is intense and unhealthy, and often uncomfortable. The supporting cast (Etienne, Chantal, Luc) feels functional, not just there to fill space.
I mostly liked the writing, which is confident and effective. With one caveat - it doesn’t know when to stop. Metaphors stack up, emotions get spelled out, and scenes sometimes end past the point where they’ve made their impact. For a book this short, it drags more than it should.
Structurally, the story overpromises. The prologue hints at something bigger ( monsters, dangerous research, deeper magic), but what follows is a very narrow, character-focused story set almost entirely in one place. A dark-academia mystery teases itself into existence and then mostly refuses to develop. Many of the more interesting ideas are introduced and left untouched.
Basically, this is a tragic sapphic romance about illness, addiction, and self-destruction, and that part works. Everything around it feels underdeveloped by comparison.
Worth reading if you’re here for characters and atmosphere. Less so if you want plot momentum, mystery payoffs, or world-building that actually goes somewhere.

Empire of Ash and Blood by Matthew ThompsonPublished January 13, 2025; 433 pages (Kindle Edition)Genre: dark science-fiction dystopia
This is an ambitious, angry book. It follows Matias, a long-lived bloodman who has suffered deeply and wants you to understand exactly how and why. 
Matias is bitter, thoughtful, and shaped by loss. His relationships show how faith, violence, and love pull him in opposite directions. The plot sounds great on paper, since it contains escape, rebellion, forbidden relationships, and the looming threat of imperial power. Sometimes, it works well, sometimes it has a serious self-control problem.
The novel, you see, explains everything. Then explains it again. Then pauses to make sure you understood the moral implications. In other words, there are moments when backstory overwhelms forward motion. Whole sections feel like they exist because the author didn’t want to let them go, not because the story needed them right then. And so the book feels longer than it needs to be and heavier than it has to be. 
Still, there’s no denying the commitment here. Empire of Ash and Blood makes a serious statement about power, freedom, and who gets to define monstrosity. Whether it succeeds will depend on how much patience you have for monologues, ideology, and backstories.



Life Remains  by Niranjan K.Published September 16, 2021 ; 202 pages (Kindle Edition)Genre: Romantic Urban Fantasy
Life Remains does almost everything right, even though its portrayal of vampires is far away from what I prefer. I like vampires to be about death. These ones walk in daylight, eat normal food, run society, and spend a lot of time talking about coexistence. 
The story follows several connected threads. Mabel, whose parents were killed by vampires, is forced to live under the protection of Frederick, one of their leaders. Ken, a human hunter (and Frederick’s lover), tries to help people without starting a war. Luke and Clint are two boys caught in the middle, owned by vampires who decide their fate without asking. Secrets, latent powers, old connections, and shifting loyalties slowly push everyone toward conflict even though most of them would really prefer to avoid one.
From a craft perspective, there’s little to complain about. The book is well paced, clearly structured, and easy to read. The chapters move quickly, action scenes are clean and understandable, and the story never gets bogged down in exposition. Characterization is solid across the board. 
That said, the plot rarely surprises. The intrigue is competent but most twists are easy to see coming. If you’re waiting for a moment that genuinely changes the game, it never arrives.
Overall, Life Remains is a well-written, dark urban fantasy with vampires who are more interested in control, politics, and relationships than blood and death. To be fair, they don't experience emotions the way people do. A good pick if you want a smooth, fast read and don’t mind your vampires being civilized.



Pilgrim by Mitchell LüthiPublished October 31, 2023; 693 pages (Kindle Edition)Genre: Dark Fantasy / Horror / Medieval
As a fan of dark fantasy and cosmic horror, I was stoked to check this one out. And it delivered.
Pilgrim is set in 12th-century Jerusalem, at the tail end of the Crusades. Dietmar, a broke and grieving German knight, is hired to smuggle a holy relic back to Europe. That’s the plan, anyway. Instead, a sandstorm drops him and his companions into a nightmare road trip through lost cities, ancient gods, and places that feel fundamentally wrong.
I can't imagine the amount of research that went into it. Lüthi is clearly a scholar, and it shows. Pilgrim pulls from Christian, Islamic, Arabic, and pre-Christian traditions and smashes them together. 
The vibe is bleak. Monsters show up often, but the real horror is existential and theological. It shows faith breaking down, reality bending, and the sense that God might not be what anyone thinks He is. Any moment of safety gets erased fast and hope is in short supply by design.
That said, it’s long. Like, 700 pages long. And you feel it. The structure starts to repeat: arrive somewhere strange, encounter a horrifying mythological entity, people die horribly, survivors move on, repeat. Not every encounter feels necessary, and some conversations circle the same questions about faith and evil without really moving things forward. I liked the ideas being explored, but there were stretches where it felt like a lot of words to cover familiar ground.
The characters are interesting, but not always fully developed. Dietmar’s grief and guilt drive the story, but his motivations feel a bit muddy. Razin, on the other hand, is fantastic. Lüthi’s knowledge of Islamic philosophy really shines through him. Still, it can be frustrating that Razin, who clearly understands more than anyone, constantly withholds insight. I get that uncertainty is a theme here, but sometimes I just wanted someone to try and put the pieces together on the page and for people to communicate.
Pilgrim has issues. It’s too long. It repeats itself and drags in the middle. It could’ve been tighter. But it’s also bold, deeply researched, and unique. I’m really glad I read it, and I’ll absolutely be checking out more from Lüthi.



Reflections of Lilje Damselfly by Natalie KeldaPublished June 23, 2025; 219 pages (Kindle Edition)Genre: Romantic Fantasy
Reflections of Lilje Damselfly has a solid idea. Lilje is a water nymph suffering from a chronic illness and constant pain. Her father sends her to an Edwardian spa retreat to live among humans and, hopefully, get better. This means learning human customs, clothing (important), and social norms. Some of this is played for gentle humor, and it mostly works.
Lilje is a likable protagonist. Her illness forces her to leave her family and familiar surroundings, and that sense of loss comes through. The book takes a warm, affirming approach to disability and chronic pain, and despite the subject matter, the overall tone stays light and comforting. There’s also a sapphic romance, which develops without much melodrama (well, there's just a bit of it). This is very much a feel-good story.
Unfortunately, the execution didn’t work for me. The stakes are close to non-existent, and there’s no real urgency to the plot. Things happen, but rarely feel like they matter much. The characters are pleasant but shallow, and most of them don’t develop beyond a single defining trait. Even at just over 200 pages, the book feels over-written*. There’s a lot of description, a lot of explanation, and very little momentum.
I understand the story is, above all, about coping with disability and it can be therapeutical. With that said, I wasn't impressed by writing about disability. Lilje tells us she’s in pain. Often. But we rarely feel it through the scenes themselves. Combined with the slow pacing, this made the reading experience feel flat.
If you’re looking for an easy, cozy read with a warm take on disability, self-acceptance, and finding love despite hardship and illness, this might work for you. If you’re hoping for tension, depth, or a tighter plotting, it probably won’t.
* After checking GR reviews, I'm definitely in the minority. Most readers loved lyrical writing.
*---------------*---------------*---------------*

Verdict

The books in my batch were solid, but, being perfectly honest, only one impressed me. So, without further ado, our first semi-finalist is:

Pilgrim by Mitchell Luthi. Congratulations to Mitchell Luthi and commiserations to the fallen.




Categories: Fantasy Books

Pages

Recent comments

Subscribe to books.cajael.com aggregator