August 12th, 2007
I’m trying to get away from just having a blog and an “under construction” page on my site. I don’t really have time to create the site that I want from scratch, so I’ve decided to take advantage of the community server software that’s included in my web hosting package. I don’t plan on making the site live until the book launches, but I’m providing a link to the work in progress here, so you can take a looksee and offer feedback.
http://www.codetopia.com/cs/
I’ve also posted videos of the book’s demo games on YouTube.com. You can find them here.
http://www.youtube.com/groundh0g
Oh! I almost forgot. I also posted executables for the demo games from each of the book’s chapters. You can find them here.
http://codetopia.com/cs/files/default.aspx
While I’m flooding you with links, I’ll go ahead and point you to some simple clip art I did for a diagram in the book that you may or may not find useful.
http://codetopia.com/cs/photos/default.aspx
The last chapter was turned in to the publisher around six or eight weeks ago, and I’ve been reviewing the post-proof / post-layout text. There are some minor code formatting issues, but overall, I’m very pleased with how things have turned out. I sent the CD off to press earlier this week, and I expect the text to be ready for the printer be the end of this week. I’m confident that the book will be on shelves this month.
And just in case you forgot, here’s a link to the book on amazon.com
Posted in XNA, The Book | 3 Comments »
May 2nd, 2007
I’m posting a new video of the example from the chapter on localization / embedded resources.
While capturing the video, I got to thinking about the issues that I’ve come across when designing my XNA examples to run on Windows AND Xbox 360. For the most part, there’s not really much to consider. The XNA team has done a wonderful job of making the transition from one platform to the other pretty much seamless.
The only Xbox 360 issues that I’ve come across so far are related to obscure 3D features (like no support for flat shading mode for shaders on Xbox 360), poor performance for pixel-based software rendering (duh! the 360 is designed around hardware accelleration), and threadding.
I’ll just have to get over the graphics issues. My problems in that area are almost always due to me trying to do something that 99% of folks in their right mind would never want to do. APIs can’t be designed around the 1% of us weirdos.
As for the threadding issues, the biggest tip I can give new XNA developers is to always remember that the XNA runtime is based on the Compact Framework. The vast majority of your experience in Windows will apply, without change. But the Compact Framework was designed with vastly different goals than the full runtime. Garbage collection, threadding, and globalization work slightly differently in the Compact Framework world.
Some of the gotchas that caught me off-guard while writing the examples for my book:
- There are no parameterized thread starts in the compact framework. This isn’t a huge deal. You can implement your own cross-thread communication to hand data off to your worker process(es). But it means that you’ll need to account for synchronization issues on your own.
- There is no Thread.CurrentUICulture in the Compact Framework. On mobile devices, you don’t set the culture on the fly — it’s set for the device, not the thread. To get to your localized resources, you can use CultureInfo.CreateSpecificCulture to create a CultureInfo object based on the culture code, and then use the overloaded ResourceManager.GetString (etc…) method that takes a CultureInfo instance as a parameter.
Like I said earlier, the transition between platforms is virtually seamless. And if you always refer to the Compact Framework API documentation when designing your applications, you’ll reduce the number of encounters that you have with the rare platform differences.
Posted in XNA, The Book | No Comments »
May 1st, 2007
I was just backing up my website when I came across some doodles that I did a while back. I forgot that I had posted these to show a friend. I’m not an artist. I totally stink at drawing, but it’s something that I enjoy doing. Now that I’m actually keeping a blog, I have a place to post the links.
Like I said, I’m not a very creative person, so these doodles are things that I drew while looking at the work of real artists. I have some neat stuff in my head, but it never comes out quite the way I envision it.
Posted in Personal | No Comments »
May 1st, 2007
I’ve been busy with last minute book tasks and with real-life demands on my time. I hope to post videos of the rest of the chapters this weekend (or next). Here’s a few screenshots from one of the last chapters that I turned in to the editor — it’s on Localization and Embedded Resources.
And, yes, that handsome little devil is me.
Posted in XNA, The Book | No Comments »
February 15th, 2007
I just finished up the chapter on audio. The example video for this one isn’t that impressive. I cover XACT and the XNA Audio APIs in some detail. Since this is a chapter on audio, I didn’t want to distract too much from the content with a lot of graphical fluf. The example has 3 sounds: a looping background music track, a play-and-forget sound (a laser), and a pause-able / resume-able sound (one of my little girls telling a story that she made up). The player can change the volume of the music and game sounds independently. The laser has been configured in XACT to vary it’s volume and pitch each time it’s played.
I’m about to submit several more chapters this weekend. I’ll try to get some more videos posted then.
[EDIT: I couldn’t stand the low quality of this example, so i added a little “graphical fluf”. It’s still not the most eye-catching example, but it’s better than what I posted earlier. New video has been uploaded. Use the same link, to the right of the blog.]
Posted in XNA, The Book | No Comments »
February 13th, 2007
I just noticed that the book is listed on amazon.com now. A friend from one of my previous contracting gigs has become my first sale! (Thanks, Todd!)
I’m currently wrapping up around a dozen chapters for my editor to work on. Then I’ll be focused on getting those last few chapters done before the end of the month. I’ve already decided to add some “bonus chapters” to this site after I’ve wrapped up the text that’s going into the printed work.
I would type more, but there’s a lot left to be done if I hope to hit my 100% milestone.
Posted in Personal, The Book | No Comments »
February 6th, 2007
As usual, I’ve been busy working on the book. This is the last month before my official 100% milestone. I still hope to hit that milestone, but it’s going to be tight. I’m taking a week off from my day job later this month to focus on getting my content wrapped up.
I’m currently working on several chapters at the same time. I find that working on multiple chapters in parallel gives the text better continuity than just working on each chapter as an independent island. For example, I’m writing the Content Pipeline, Embedded Resources, and Localization chapters now.
I’m also working with a couple of friends on getting some decent music for the audio chapter and a few of the example games. One buddy is offering some tracks from one of the CDs that his (rock-ish / alternative-ish) band has produced, and another friend (a PhD with a theatrical / classical background) is composing something original for me.
I’ve really enjoyed writing the book. It’s something that I’ve always wanted to do and I hope that it is well-received, but I’m not sure that I would ever write another. This has been very taxing on my health, sanity, and family. I’m looking forward to having my weekends and evenings back. 
Posted in Personal, The Book | No Comments »
February 6th, 2007
I know it’s a little lame, but I didn’t have any software to capture my Windows-only examples until tonight. I stumbled across fraps this evening, and decided to capture one of my earliest examples, the “game” from the mouse input chapter. Other than the utilities that are developed in the book, this is the only example that does not run on the Xbox 360 — since there’s no mouse support on the 360.
As usual, the link to the video is to the right of this blog.
Posted in XNA, The Book | No Comments »
February 1st, 2007
I know it’s been a while since I last updated the blog. I’ve been busy writing new code and chapters for the book, and I’ve been out of commission this week, sick.
I took a little time tonight to capture some video of the example from my top-down scroller chapter. It supports two players. The goal? Shoot the bad guys.
Enemies drop random bonus items — points (blue, 85%), health (red, 5%), shield (green, 5%), and weapons upgrade (yellow, 5%). Each enemy flies along one of 6 paths. If you play long enough, and collect enough yellow stars, your ship will shoot a continuous stream of bullets.
I’m actively working on several other chapters, and I’ll try to get some more videos posted soon, but the completed text for the book is due to the publisher at the end of the month, so I don’t know how much time I’ll have for video captures in the short-term.
Posted in XNA, The Book | No Comments »
January 16th, 2007
My good friend, Andrew Rollings, has agreed to write the foreword to the book. If his name sounds familiar to you, it’s probably because he has authored several popular game development titles.
His latest work (The ZX Spectrum Book) is a self-published title that pays homage to the device that launched the home computer market in the UK.
Andrew is a great programmer, and a great friend. Once I had his commitment to write the foreward, I kept pestering and bribing him until he agreed to do the technical editing as well. I’m very excited to have Andrew reviewing my work. I know the quality will benefit.
Posted in Personal, The Book | No Comments »
January 15th, 2007
I took a little time off from working on the book so that I could get some videos posted. All of these examples were captured from my Xbox 360 using a TV tuner card, then compressed to a web-friendly size. Sorry for the quality, but I didn’t want to post the 40-meg versions.
NOTE: All of these examples run very smoothly on my 360, but the video compression really distorts the animations — most notably on the keyboard, particle system, and solitare videos. I’ll try to post cleaner videos later. I’ve already spent too much time away from my word processor.
- Bitmap Game Font - bitmap font library that consumes images generated by a tool that’s developed in an earlier chapter. the game font tool takes any TTF and creates a bitmap font. supports Unicode characters. this example renders 2 fonts (Verdana 12 Bold and Mistral 11 Normal), aligning each along their baselines. it also demonstrates breaking the text into seperate characters and using the font measuring feature to animate the text.
- GamePad Demo - shows off the Xbox 360 controller. part of my introdution section on player input. represents every available button and demonstrates handling disconnected controllers.
- Keyboard Demo - simple app to show how to process keyboard input. (yes, the Xbox 360 supports keyboards). cursor keys move the ship, spacebar fires spinning bullets.
- Particle System - simple particle system with gravity, wind, and movable emitter. in a later chapter, I take this same example and make it multi-threaded.
- Pong Clone - what book on game programming would be complete without pong or some Tetris variant? Since it’s so late, I had to play against myself. I won.
- Puzzle Clone - a simplified clone of my favorite puzzle game.
- Board Game w/ AI - a reversi clone with support for a human opponent or one of 4 CPU player opponents. for this example, I chose the fast AI, and it kicks my backside. the AI processing is done on a seperate thread so that the main thread can keep the gear animations runing.
- Solitare - a playing card game. sorry to make this video so long, but it’s not often that I win a game of Solitare.
This is just a sample of what’s been done so far. I’ll try to post more soon. My 3D examples aren’t ready for show time yet, but I’ll post them here too. When everything’s complete, I hope to have around 10 games in the second section of the book (four sections total — see previous post for book layout details).
Links to the videos are to the right of this post.
Posted in XNA, The Book | No Comments »
January 14th, 2007
So, I guess I’ll start with a quick overview of the book. It has been consuming my every waking minute for the last several months, and promises to do so for at least the next two months or so. I’m an independent consultant by day. Luckily, I’m on a long-term contract that only demands around 40 hours per week.
There should be 35 chapters, and around 600 pages when I’m done. The publisher is Thomson Publishing / Course Technology. The book is divided into four sections:
- Introduction – Provides the basic building blocks for writing XNA games for Windows and Xbox 360. Covers graphics, audio, player input, and setting up your development environment.
- Genre Studies — Apply the building blocks that you learned in the previous section by developing actual games. These aren’t award-winning, commercial-quality titles. They’re designed to show how to take a game idea from doodles on a napkin to a playable game.
- Components, Libraries, and Tools — Develop tools and reusable components to support your game development efforts.
- Tasty Bits — Covers more advanced topics, like threading.
I’m better than half-way done with the code and text. Where ever possible, I’ve included Xbox 360 and Windows versions of the examples.
I’ll be posting videos of the examples that I capture from my Xbox 360 shortly. I’ll also try to make regular posts to this blog on my progress.
Posted in XNA, The Book | No Comments »
January 14th, 2007
For the curious, I thought that CornflowerBlue would make a great name for an XNA blog (for reasons that are obvious to anyone who’s written any XNA code), but I learned that someone had already beat me to it. So, mine will be “CornflowerToo”.
Posted in Uncategorized | No Comments »
January 14th, 2007
Well, I just finished setting up my blogging software. I guess I need to post the typical “Hello, Blog!” entry. To make sure that everything is working. I’m in the middle of writing a book on XNA and Game Studio Express (the free tools from Microsoft to develop Windows and Xbox 360 games). So, for the next few months at least, this blog will be focused on those efforts. For now, it will likely just be a place for me to journal my experiences with writing the book and diving deeper into this new technology.
Keywords for the search engines: XNA Book, groundh0g, groundh0gXNA, Joseph B. Hall, Joe Hall, XNA Videos, Complete Lameness, Sexy Coder, Game Studio Express, Windows, Xbox 360, Game Programming, Visual C# 2005 Express Edition, XNA Framework.
Posted in Uncategorized | No Comments »