MonoGame: Code Camps

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.

Title   Counts Status Reviewed On
Preface: the Series     1853 words        August 07, 2016
Preface: the Volume     2724 words        August 07, 2016
Chapter 1: a Brief History     3135 words        August 16, 2016
Chapter 2: Getting Started     4268 words        August 14, 2016
Chapter 3: Crash Course     2614 words        August 29, 2016
Chapter 4: Spit and Polish (and Tools)     1312 words        August 10, 2016
Chapter 5: Camp 2011 - Side Scroller     792 words        July 01, 2016
Chapter 6: Camp 2012 - Survival     804 words        July 01, 2016
Chapter 7: Camp 2013 - Endless Runner     1288 words        July 01, 2016
Chapter 8: Camp 2014 - Castle Crawler     750 words        July 01, 2016
Chapter 9: Camp 2015 - Fighter     468 words        August 21, 2016
Chapter 10: Class 2013 - Platformer     910 words        July 01, 2016
Chapter 11: Author's Choice - Puzzle     458 words        July 01, 2016
Chapter 12: Author's Choice - Board Game AI     640 words        July 01, 2016
Chapter 13: Libraries - GamePadEx     2431 words        August 01, 2016
Chapter 14: Libraries - TouchPanelEx     1802 words        August 01, 2016
Chapter 15: Libraries - Collision Detection     2258 words        August 01, 2016
Chapter 16: Libraries - Particles     4969 words        August 01, 2016
Chapter 17: Extras - Platform Issues     108 words        August 01, 2016
Chapter 18: Extras - Optimizations     117 words        August 01, 2016
Afterword: the Volume     11 words        August 07, 2016
Afterword: the Series     11 words        August 07, 2016
:      1 words        
:      2 words        
:      1 words        
Total:      33727 words     

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 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 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”.