18 Apr 2019

I Wrote A Book About Shaders!

From the looks of my blog archive, it’s been 13 months since I dropped off the map and stopped posting. That’s because around that time I got an e-mail from Apress Books asking if I wanted to write for them. I’ve gotten several messsages like this since I started writing my blog, but this one was different in two key ways:

  1. They didn’t have a book idea in mind already, instead, they wanted to know what I might like to write.
  2. Their sales pitch was “you’re already writing about technical things, why not get paid for it?” which I found pretty convincing.

So I replied to the e-mail, and pretty quickly I decided that I wanted to write a book with them, and now you can purchase that book (Amazon link)! The schtick of it is that it’s an example based approach to learning shaders. If you’ve never written a shader before, and want to get your feet wet and learn a few things without necessarily needing to learn a ton of math or graphics api details, this is the book for you. It’s not super technical, it’s really more about having some fun and building a bunch of different things.

Here's what it looks like!

It’s kind of surreal to be holding a physical copy of this thing. Both because it’s the first physical thing that I’ve produced in my career, and because I can’t believe this project is finally finished. So to celebrate, here’s a disorganized collection of thoughts I have about the whole experience.

Writing A Book Is Hard Work

When I started this project I honestly didn’t think it was going to be that much different from regularly writing blog posts. Having now done both, let me say very clearly that writing a book is nothing like writing blog posts. Not only do blog posts not have deadlines, but they can jump around, and can assume any level of ability on the part of your readers, and you can always delete or edit a blog post if you get something wrong. Writing a book is 1000% harder than writing a blog.

There were a lot of days that I didn’t feel like writing. Hell, there were a lot of weeks where I didn’t feel like writing. When people asked how writing was going, my standard answer was “the fun runs out after page 100,” which, depending on the day, was either just a funny default response, or painful truth. I’m completely convinced that books are mostly written out of pure stubbornness, and that the people who write books aren’t necessarily the most qualified people to write about that topic, but they are perhaps the most qualified people to write about that topic that feel like finishing a book.

Finishing A Book Is Scary

Speaking of finishing a book, that’s a scary proposition in itself. By the time things were done, I was both relieved to be done writing and terrified at how many things I knew that I would change if I had more time to work on the project. Now I’m just hoping that there aren’t any huge and embarassing content mistakes that slipped through the cracks.

Just like making games, having a final deadline where you have to ship the thing is probably the only way that a lot of books ever see the light of day. Without that, by the time I felt ready to publish we’d all be rendering things with quantum computers that path trace on the blockchain, and the book wouldn’t be relevant any more. So instead, I’ve just had to come to grips with the fact that the book isn’t perfect, but it’s done, and that’s ok.

Finishing A Book Is Pretty Great Too

Despite all my complaining, getting the copies of my book in the mail was pretty amazing. Actually finishing the project and seeing the end result has been hugely rewarding, and I’m really glad that I stuck with things until the end. Hopefully people like the book, but even just following through on a large personal project is a great feeling.

Apress Was Pretty Great To Work With

There are lots of horror stories floating around about working with publishers like Packt or Apress, but I have a lot of good things to say about them. The folks that I talked to day to day were professional, easy to work with, and always accommodating when I needed to move a chapter deadline because work was going crazy (I’m a stickler for schedules and deadlines, so they may have been flexible because this only happened a couple of times). They also paid me on time, which seems to be a common thing that other people complain about with technical book publishers.

I was a bit surprised at how little the copy editing team there corrected my grammar and sentence structure, but given how many other mistakes they caught that would have been disastrous to actually print in a book, I can’t say I’m too upset about it. It’s not like I was writing the next great Canadian novel. I also didn’t express this concern to Apress during the copy editing phase of the book, so this is also on me.

I Don’t Want To Write For A While

I think it’s fair to say that I’m a burnt out on writing right now. Even though it’s been a few months since I’ve had to do a lot of writing for the book, I still don’t have much desire to start writing blog posts again, and I think I’m going to write a lot less this year in general. Instead, I want to spend more time learning new things and working on things that don’t necessarily translate into a good blog post. Hopefully by the time I feel like writing again, I’ll have some new, interesting things to share.

Hopefully some of you pick up the book and learn a thing or two! In the mean time, I’m always available to chat on on Twitter. If you want to make my day, shoot me a message if you grab a copy. Have a good one!