On August 21, 2015, I tweeted to announce my intention to expose the writing process of my next game programming book to the world.

Decision made. New #gamedev / #indiedev @MonoGameTeam book will be written in public view, hosted on @github pages.

It’s a scary proposition for me, but exciting at the same time. I’m used to writing in a vacuum, dumping the resulting work into the wild at the end of the process. My current setup allows for official bug reports via GitHub issues, or via Facebook comments at the bottom of each chapter.

My Motivation

I teach a game programming camp for teens and tweens in Banner Elk, NC, every year. It’s their games that inspired each of the examples in this book. I’ve been using my 2007 book on XNA game programming to guide the class, but it is starting to show its age. (Heck, it was showing its age in 2008.)

It’s time for a new book. And this time around, I want the process to be open and I want to solicit feedback from my audience early in the process. I wrote my first book for me (a hobbyist game developer), and it did well enough. I hope this new approach will yield even better results.

Current Status

If you’re the kind of person that likes statistics, here’s the current status of the project. This list is automatically updated whenever I make an edit to the book’s content.

Preface the Series   1853   draft        August 21, 2015
Preface the Volume   2723   draft        December 07, 2015
Chapter 1 a Brief History   3060   draft        September 13, 2015
Chapter 2 Getting Started   2493   stub        September 02, 2015
Chapter 3 Crash Course   2261   stub        September 03, 2015
Chapter 4 Tools, Spit, and Polish   229   placeholder        December 07, 2015
Chapter 5 Camp 2011 - Side Scroller   573   stub        August 25, 2015
Chapter 6 Camp 2012 - Survival   585   stub        August 29, 2015
Chapter 7 Camp 2013 - Runner   456   stub        August 25, 2015
Chapter 8 Camp 2014 - Castle Crawler   531   stub        August 25, 2015
Chapter 9 Camp 2015 - Fighter   295   stub        August 25, 2015
Chapter 10 Class 2013 - Platformer   696   stub        August 25, 2015
Chapter 11 Author's Choice - Tower Defense   181   placeholder        January 01, 2015
Chapter 12 Author's Choice - Real-Time Strategy   181   placeholder        January 01, 2015
Chapter 13 Author's Choice - Puzzle   439   stub        August 25, 2015
Chapter 14 Author's Choice - Artificial Intelligence   616   placeholder        January 01, 2015
Chapter 15 Author's Choice - Isometric Puzzle   173   placeholder        January 01, 2015
Chapter 16 Libraries - GamePadEx   2365   ready for edit        September 18, 2015
Chapter 17 Libraries - TouchPanelEx   1754   ready for edit        September 18, 2015
Chapter 18 Libraries - Collision Detection   2213   ready for edit        September 18, 2015
Chapter 19 Libraries - Particles   4835   ready for edit        September 18, 2015
Chapter 20 Extras - Platform Issues   108   placeholder        September 14, 2015
Chapter 21 Extras - Optimizations   108   placeholder        September 14, 2015
Afterword the Volume   11   placeholder        January 01, 2015
Afterword the Series   11   placeholder        January 01, 2015
TOTAL:    28750  

Support the Project

If you like this idea and want to support me, the easiest way is to follow me on twitter. It’s fast. It’s free.

If you’re the kind of bloke (or sheila) that likes to buy things … I’m hosting the content on GitHub Pages, using Jekyll, but I’ve built the site in such a way that the same markdown files that render in your web browser are in the format expected by LeanPub.com. That’s a link to the book, but I haven’t published it yet. I want to get more of the content out of draft status. And by “more” I mean “some”.

And if you’re a big spender, I plan on printing the book as a perfect-bound paperback via lulu.com. I used them for my humor book in early 2015, and I was impressed with the quality and value of my initial order.

If you’re short on cash, remember that following me on twitter is free! Also keep in mind that I intend this content to be available on the web (also free), updated with some level of regularity.

The License(s)

Just to be clear about the licensing … I want this content to be as permissible as possible, but I want to retain ownership of the text. In general, you should feel free to use the content for any purpose, including commercial uses, but you may not copy-and-paste the text then claim it as your own.

Sounds reasonable, right? If not, feel free to shoot me a tweet – @groundh0g.

The Text

The text of the book is licensed under the Attribution-NonCommercial-NoDerivatives 4.0 International (CC BY-NC-ND 4.0) license.

  • You may not claim the text as your own. You must give “appropriate credit”. A link to this site or my twitter account would be nice.
  • You may not sell the text.
  • You may not modify the text. Although I welcome pull requests for typos or errata.
  • No warranties are given. This content is provided “AS IS”.

The Code

The example code from the book is licensed under The MIT License (MIT).

  • You may use the code in derived works and distribute those modifications.
  • You may sell works derived from this code. (Commercial use is fine.)
  • No warranties are given. This content is provided “AS IS”.

The Media

The media used within the example code or text of the book may be licensed using some other method. Where appropriate, I’ll list the license where the media is used. As a general rule, I’ll only use content that I’ve created, which you may consider to be in the Public Domain, or assets that are similarly “unlicensed”.

  • You may use the media in derived works and distribute those modifications.
  • You may sell works derived from this media. (Commercial use is fine.)
  • Depending on the license of the artist, attribution may be required.
  • No warranties are given. This content is provided “AS IS”.