Sunday, May 11, 2014

A Retrospective: My First Book

So as of late April, I became a published author, having finished my first book, GameMaker Game Programming with GML.  I decided to write about this experience, serving as a retrospective to both myself and possible other individuals who are considering writing a technical book.
My book's cover!


How did I even get started?

A lot of people asked how I even got a publishing deal.  It mostly started due to my LinkedIn page.  There, I had listed that I was proficient in GML, or GameMaker Language.   One day, seemingly out of the blue, I was contacted by the publisher and asked if I would be interested to write a book.
At the time, I had just been rejected -- again -- by IndieCade, a Independent Game's Festival, so my confidence in making games was a little shaky.
I thought the book would be a nice break from making actual games, something different.  I also enjoy writing, so I figured it wouldn't be that difficult to do.  So around July of 2013, I started writing this book, and after an extension, the book finally wrapped up sometime near the end of April of 2014.
I guess I should be thankful for this social media outlet.

What Did I Immediately Learn?

The first thing I learned is that technical writing is not the most exciting task.  A lot of nuances go into the writing and assumptions about the reader can't often be made, so sometimes, seemingly dull topics have to be covered in detail and can feel a little daunting. 
This combined with the schedule, which was fast -- around halfway through the book I had to ask for an extension -- and already working a full-time job, made things even more difficult.  I sometimes would fall into this cycle of having a stressful day at work, only to have a stressful night working on the book when I really needed a break.  Time management usually isn't an issue with me, if something needs to get done by a certain date, it gets done, but this was once instance that it just wasn't going to happen, or at least, happen in a way that would produce a product I would be proud with.
I think the most difficult thing was confidence though.  Being a self-taught programmer, even with my experience now, I sometimes don't feel as confident in the code or designs I am making than some other professionals.  As I was writing, there was always this little bit of doubt in the back of my mind, "Is this the best way to do it?" even knowing full well that there isn't really such as -- usually anyway -- the best way to do something but instead a good way to do something given the constraints of the current situation.
Working on the book and work in combination created a cycle like this.

Quick Overview of Phases

So this is how the writing went:
  • Rough Draft Phase:  2 to 3 weeks per chapter. 
    • Here, I would write the rough drafts.  I sometimes felt like I was over-thinking this too much, especially since I knew there was going to be additional phases and editing.  About halfway through writing this process, I received a lot of feedback on my early chapters, which made me panic in a way and request the extension.  I think if feedback would have been more regular in the beginning, I might not have panicked as much and been able to account for certain preferences that publisher had, but hadn't directly expressed while writing
  • Review Phase:  3 to 4 days per chapter
    • In this phase, I began correcting things from my rough drafts based on feedback from three to five different reviewers.  Some of the changes were simple, such as changing my heading to the sentence case instead of title casing.  Again, I personally wish these smaller things would have been pointed out earlier so I could have focused more closely on the reviewer's comments, even the more vague ones.
  • Technical Review Phase:  2 to 4 days per chapters
    • Then, I was introduced to a technical editor who made more comments, similar to the Review Phase.  These were more direct.  Some of them were a little confusing, and by this point, so many changes had been made -- not to the content, but to my writing style -- that sometimes I didn't recognize what I was reading, but possibly because it had been so long.
  • Pre-Final and Final Review Phase: 1 day per chapter
    • In this final phase, I was given a .pdf of how the text would look in the book.  I was directed to really only correct additional comments and really important changes.  This phase felt pretty fast; with the extension, the turnaround in this phase probably needed to be faster.

What Did I Learn In The End?

Anyway, after these phases, I was done with the book, and it was off to the printer's.  Despite one flaw, which was quickly remedied, I was done.  Now that it's done, I feel like I learned a few things:
  • Software updates
    •  About halfway through writing, GameMaker Studio updated, changing some of its interface and scripting.  This was rather troublesome as it had to be remedied.  Instead of ignoring it to the editing phase though, I should have noticed this as soon as I started writing and ask for a few extra days to make sure my current submissions didn't need any major changes.
  • You're working with a team
    • The reason I needed an extension is that, while juggling my job, I became frustrated and almost quit writing the book.  My Acquisition Editor at the time, convinced me otherwise and said I could get more time between chapters, which was the better solution.  I, however, maybe should have been more persistent with requesting help and feedback than I was
  • Nothing is perfect
    • Even now that the book is done, I feel like an artist whose work is in a museum and they want to just steal and it fix it, but it's probably better to just move on.  I think the book was a good -- maybe too long -- break from personal game development, and I'm ready to get back into it.
Overall, and again, I'm very happy this book is done.  It was a challenging experience, and I sometimes wonder if I would do it over again.  I will probably not be writing another book any time soon, but know I now what it takes to write a book.  Yet again, I still feel pretty accomplished, so congratulations to me!


  1. Where do I submit issues with the book code? There are problems in Chapter 6 with the code. The code in the book doesn't match with the code in the working game example.

  2. Same thing, but now in Chapter 7. Code is stated one way, then the same code is reiterated but with some changes, and then it is different, still, from the working code in the files...

    1. Please report all errata to

    2. Thank you. I will.