Wednesday, June 08, 2005
I'm involved with the PDC this year and I'm really looking forward to it.  We'll be doing some fun things as well that are related to my new job (not telling yet :-) ).  One thing that's really cool is the amount of energy an excitement you can find over on Channel 9.  There's even a section dedicated to the PDC.  One subsection lets you set up pieces of PDC "flair" to put on your webpage.   Of course, being the irreverent bastich that I am, I created my own flair.  Feel free to use or abuse it :-)
 
 
6/8/2005 8:27:06 AM (Pacific Daylight Time, UTC-07:00)  #    Comments [0]  |  Trackback
Tuesday, June 07, 2005

Yes, folks, two months have passed, and regular as clockwork, the fine engineers in the DirectX group have delivered another update to the SDK.  So, what is special about this release?

  • Support for Visual Studio 2005!
  • Improved samples!
  • Enhancements to PIX!
  • And lots more!

Oh, and for those of you really into getting the latest on DirectX goodness, don't forget to register for Meltdown 2005! (Yes, I'll see you there!)

6/7/2005 11:40:15 AM (Pacific Daylight Time, UTC-07:00)  #    Comments [0]  |  Trackback
Saturday, June 04, 2005
Recently, I was asked what kind of books I keep on my bookshelf as I'm doing my game programming.  This collection is a small monument to the money I spend on game programming books (Yikes!  I just realized there's about $1500 worth of books there).  The sad thing is that there are several that I haven't thoroughly read yet (I just recently got the Game Programming Gems books, plus the 3D Architecture and Game Physics books by David Eberly).  Several of thesed books cover the same kind of material in various levels of detail, and at some point in time I'm going to cull this collection WAY down.  In the meantime....I keep reading, programming, reading, programming, reading, programming...
6/4/2005 1:53:03 PM (Pacific Daylight Time, UTC-07:00)  #    Comments [1]  |  Trackback
Writing a book is no easy task, especially a technical one.  In my case, I'm writing the second edition to my relatively-popular "Beginning .NET Game Programming in C#" book.  The challenge is that this is looking more and more like a rewrite than a second edition.  Why?  Let's look at the list:
  • Four out of the eight chapters are being removed
  • Code examples will be rewritten to use new .NET 2.0 features in appropriate places
  • The book will be written (hopefully) to put beginning developers on the solid path to writing games for Longhorn, although I won't cover Longhorn features explicitly
  • I will attempt to bring the black art of shader programming to the beginner level (In the inimitable words of Spongebob, "Well, good luck with that.")
  • I may (or may not...still not 100% decided) include some chapters on Avalon game programming
  • DirectPlay is now deprecated (hey you with the surprised look on your face...did you read the README in the latest DirectX SDK release?), so I need to use a different approach for networked gaming (and, no, it won't be Indigo -- I want to provide a foundation where the managed game developer can scale into native development)
  • I intend to add explicit chapters on physics, AI, and collision detection.
  • I will also have a chapter devoted to helping the developer understand the relationship between Windows programming and working inside the CLR
Originally, I had planned to have the book on the shelves by the end of this year, but I need to balance that with offering a book that has relatively stable examples.  There's nothing more frustrating than buying a book and having it become horribly outdated in less than a year.  That's why I try to keep the source code printed in the book as minimal as possible, and instead point you to the downloadable source.  In addition to the potential technical delays, my new job is going to keep my hands VERY full over the next several months.
 
Lastly, at the moment, I'm sticking to a C# version for now, but my publisher is asking (more like begging) that I consider a VB version, as well as a C++/CLI version.  While this is interesting, I just don't have enough visibilty into the demand for something like that.  I did a VB version of my first edition, which hasn't seen a lot of demand.
 
 
6/4/2005 1:00:16 PM (Pacific Daylight Time, UTC-07:00)  #    Comments [0]  |  Trackback
Thursday, June 02, 2005
Wednesday, June 01, 2005

I've had a blast being a technical evangelist for the Developer Division over the last 3 years, but I've recently accepted a new position as the Community Manager for the Windows Graphics and Gaming Technology group (I officially start on July 1st).  This is going to be a totally rocking job, and will let me reach out to a community that has been pretty starved for attention for quite some time.  My job will focus primarily on developer outreach for Windows game programming (both Native and Managed). 

First on my list is to re-energize the DirectX Community site, which is quite spartan right now.  This is a big challenge, because there are so many places that Windows game developers already go to for dicussions and information (GamaSutra, GameDev, The ZBuffer, CodeSampler, FlipCode, IGDA, Channel9, etc.).  We don't want to try to displace all those great sites, but we want our developers to know that their issues are being heard by the Windows Gaming team.  This means that we need to channel feedback in appropriate ways so that we become better listeners, preferably in partnership with sites like the ones above.  I'll be posting more details about this as time goes along.

Second on my list is working with current and new MVPs to help us with community outreach.  These folks are brainy-smart people (much smarter than I am about game programming!) and are outstanding community leaders.  If you know somebody that is deserving of an MVP role, please don't hesitate to drop me a note!

Third is "everything else about Windows Gaming."  That means speaking to independent game developers at various conferences, helping people understand some of the "Whys" about DirectX, getting community feedback on what you want/need in future SDK releases, etc.

In a nutshell, my new job is all about Windows Gaming.  All I can say is.... "w00t!" :-)

David "ChiliConCarnage" Weller

6/1/2005 12:03:02 PM (Pacific Daylight Time, UTC-07:00)  #    Comments [1]  |  Trackback
Wednesday, May 25, 2005
Most people inside Microsoft know who Hans Bjordahl is, or are at least familiar with his funny "Bug Bash" cartoons.  It really captures the essence of the IT world, and FAR be it from me to suggest that some of the ideas were influenced by things that have happened inside Microsoft! :-)  Anyway, please take the time to check out Bug Bash!
5/25/2005 3:11:00 PM (Pacific Daylight Time, UTC-07:00)  #    Comments [0]  |  Trackback

So, eWeek decides to post a headline article today entitled, "Microsoft .Net Framework 2.0 Breaks Apps."  Hmm.  The article itself isn't that bad, carefully note that between the blazing headline and the closing quote from "one developer familiar with breaking changes related to the rollout of Windows XP SP2, who asked not to be identified", there are lots of good points about the successes our customers have had and how we're being as thorough and careful as possible to keep developers informed and aware. Yes, there have been a few unavoidable compatibility issues, but that headline seems woefully wrong based upon my own experience with 2.0 adopters.  We've had millions upon millions of lines of code migrated already by our early adopters, and we've responded as quickly as possible to issues that come up.  We've also thoroughly documented places where impacts can happen.

In the past, we (Microsoft) might have groused about such a poorly-titled headline and moved on, but blogging allows anybody inside Microsoft to have a voice.  In this particular case, S. Somasegar, the VP of the Developer Division here, decided to respond to the article

5/25/2005 2:30:39 PM (Pacific Daylight Time, UTC-07:00)  #    Comments [0]  |  Trackback
In case you're one of those rare people that still doesn't have the beta of Visual Studio, you can still get it by visiting here.
5/25/2005 12:23:23 PM (Pacific Daylight Time, UTC-07:00)  #    Comments [1]  |  Trackback
Monday, May 23, 2005
In case you haven't heard yet, the new Avalon and Indigo release (Beta 1 Release Candidate) is now available.  Runs on the Beta 2 build of Visual Studio 2005.  Get the bits while they're fresh!
5/23/2005 9:10:43 PM (Pacific Daylight Time, UTC-07:00)  #    Comments [0]  |  Trackback

Kinda like this.

Ok, not that extreme, but interviews at Microsoft, even internal ones, can be pretty exhausting.

(Don't ask.  I'll give details later.  Stay tuned.)

5/23/2005 9:04:30 PM (Pacific Daylight Time, UTC-07:00)  #    Comments [1]  |  Trackback
Sunday, May 22, 2005

I was tinkering this weekend with the new C++ compiler and wanted to try out the samples from the DirectX SDK April 2005 Sample Browser.  Of course, the April 2005 SDK wasn't written for Visual Studio 2005, so here's a couple of simple steps to make things work:

  1. Add correct references for your headers/libraries:
    • Select Tools-> Options->Projects and Solutions-> VC++ Diretories
    • In the "Show directories for:" dropdown, pick "Include files"
    • You will see a list of directories there.  Verify that "$(DXSDK_DIR)include" is in the list.  If not, add it (click on the little "Folder" icon to add a new entry)
    • Now, in the "Show directories for:" dropdown, pick "Library files"
    • You will see a list of directories there.  Verify that "$(DXSDK_DIR)lib\x86" is in the list.  If not, add it (click on the little "Folder" icon to add a new entry)
  2. Pick the sample you want to install (I tried this on EmptyProject, Blobs, and CustomUI)
  3. After installing the project from the DirectX Sample Browser, double click  the <Project>_2003.sln file to launch Visual Studio and run the conversion wizard.
  4. You should have a successful build and be ready to roll, but you might also encounter fatal linker errors (CVT1100 and LNK1123).  If you get these messages, remove the .manifest and .rc files from your "Resource Files" project directory and try again.

Have fun! :-)

5/22/2005 10:30:48 PM (Pacific Daylight Time, UTC-07:00)  #    Comments [1]  |  Trackback
Tuesday, May 17, 2005
Ok, the "big cat" is out of the bag: The XBox 360 will be able to run old Xbox games!  This has definitely been a nail-biter for the industry and hard-core gamers, so it's great that we've paid attention to these concerns.  The Xbox 360 is going to TOTALLY rock and make the living-room gaming experience something cool again.  My buddy, Brian Benincasa, had several cool announcements in his latest blog post, including his promotion to Lead Evangelist over in the Gaming and Graphics group and "leveling up" his family.  More interesting are Brian's comments about whether the Xbox 360 will replace the PC as a gaming platform.  I definitely agree with Brian here -- the PC will be a FAR more flexible platform for gaming.  But each are two platforms offering different, but uniquely satisfying experiences.  Not unlike trying to decide if you want to go for a ride on this or this. :-)
5/17/2005 9:31:57 AM (Pacific Daylight Time, UTC-07:00)  #    Comments [3]  |  Trackback
Sunday, May 15, 2005
And old friend of mine, Casey Chesnut, got adventurous and looked into porting NASA's Worldwind "Virtual Earth" program to the PocketPC.  Mind you, this wasn't a trivial task, but thanks to the fact that Managed Direct3D for Mobile Devices is available now (at least in beta), and the fact that Casey is a mobile computing freak, this is a tremendous achievement!  Not to mention the fact that it was Casey's first foray into the world of Direct3D.
 
 
P.S. Interesting story about Casey (and myself)...I first met him when I was in the last leg of interviewing for a job at Valtech back in early 2001.  Casey and a friend were hosting the very first Dallas .NET Users Group meeting in Valtech's education offices, and the CTO of Valtech (Tim Snyder) encouraged me to attend.  Now, you have to keep in mind, I was a pretty hard-core Java person at this time.  I'd recently had an article on regular expressions published in the Java Developer's Journal, so I wasn't really that open-minded about "another Microsoft marketing ploy" (man, if you had told me then that in just over 2 years I'd be an evangelist working for Microsoft, I'd have stomped you flat!).  Anyway, Casey's presentation was done really well.  He touched on several good points and even did some comparisons to Java, and I was impressed!  It wasn't, however, until the tragedy of 9/11 that I got to dive deep into .NET (I was a traveling consultant and the world kind of stopped then, y'know?).  At that time, Tim asked me to do some deep investigation using the latest beta of Visual Studio.  4 weeks later (after working VERY hard at trying to prove that Java was a better choice) I was completely won over, and told Tim I never wanted to work in Java again.  The rest, as they say, is history :-)
5/15/2005 9:01:47 AM (Pacific Daylight Time, UTC-07:00)  #    Comments [1]  |  Trackback
Friday, May 06, 2005

My next door neighbor at work, Robert Scoble, has posted the full text of Steve Ballmer's reversal of position regarding the Washington State anti-discrimination bill.

I'm greatly relieved that Microsoft will be supporting this bill, because it is a fundamental acknowledgement of the fact that Microsoft does support diversity.  These last couple weeks have left many people, including myself, doing some inward soul-searching.  Our neutral stance on the bill bothered me, because I felt it was backpedaling away from what we consider to be core company values.

I've said enough now.  I'm sure others will have a LOT more to say about this.

5/6/2005 10:59:51 AM (Pacific Daylight Time, UTC-07:00)  #    Comments [1]  |  Trackback
Thursday, May 05, 2005

Tom Miller finally states the last word on the subject of game loops in Managed DirectX code.  Now that I'm starting the 2nd editions of my book, I'll be incorporating this into the code. 

And while I'm talking about game programming... check out Grant Palmer's Physics for Game Programmers.  Yeah, yeah, I know there's about a billion books on Physics for game programming already (well, it seems like it), and I also readily acknowledge that Grant's publisher is Apress, who happens to be my publisher.  But....but...Grant's book is FUN!  First, you can get the source code directly from Apress' website (I'm glad to see Grant chose this option, just like I did -- it keeps publishing prices down).  Second, although this book throws massive volumes of brain-cramping formulae at you, the implementations (and most explanations) are in simple terms.  And he's no language bigot either -- you can get the samples in C#, Java, and C (the text samples are in Java).  Third, and this is the fun part, his book is full of semi-useless trivia about physics that are just plain fun to read.  Chapter 13, on explosions, gives you an interesting, but brief, outline of the composition and uses of popular explosives like TNT, dynamite, and C4.  About the only downside to his book is that he doesn't dig into some stuff as deeply as I'd have liked.  However, I think his book perfectly hits his target.

Speaking of exploding things, my favorite director, Kevin Smith (Clerks, Dogma, Chasing Amy, etc), has written a thorough review of the new Star Wars movie, "Revenge Of The Sith"  Before you click on the link, I am giving you fair warning...this review has TONS of spoilers!!!!  If you don't want to know what happens, do NOT read this review.  (Can't say I didn't warn ya :-) ).  Thanks to Doug Purdy for pointing me to this link.

Oh, and I finish my weight loss program tomorrow....6 months later....60 pounds lighter.  Woot!  10 more to lose on my own to hit my target weight.

5/5/2005 1:06:55 PM (Pacific Daylight Time, UTC-07:00)  #    Comments [2]  |  Trackback
Thursday, April 28, 2005

Two cool tidbits. 

First, my colleague, Karsten Januszewski, did a totally cool demo at the Flash In The Can conference where he showed some new features coming in the next release of Avalon.  Check out what you'll be able to do with multimedia in Avalon now!

Second, something near and dear to my heart: Anti-productivity applications!  Better known as "Games." :-)  MSDN is hosting a series of webcast videos, produced by the game-instruction masters at DigiPen Institute, on how to write games.  The cool thing about this one is that you can use Visual C# 2005 Express Edition to follow along.  Go forth and have fun!

Other interesting, non-work-related things:

It appears that a palmtop nuclear fusion device has been invented by Oak Ridge National Laboratory.

Another part of Oak Ridge National Laboratory called BS on those findings.

Coming next week....my take on Tiger (my OS upgrade gets here tomorrow.  Woohoo!)

And, yes, I will revisit the "Mac Experience" that I've posted before.  Thanks to some great feedback, I've purchased Aaron Hillegass' book "Cocoa Programming for Mac OS X, 2nd edition".  I'm going to dive deep into looking at what the new XCode 2.0 has to offer, as well as some other new features (for instance, did you know that Avalon lets you quickly write Konfabulator-style applets, similar to what you can do with the new "widgets" on the Mac?  Of course, when people see them, they'll say, "You copied that from the Mac!"  *sigh*).  It's gonna be a loooong weekend for me!

4/28/2005 9:47:32 AM (Pacific Daylight Time, UTC-07:00)  #    Comments [0]  |  Trackback
Friday, April 22, 2005

I've only worked with Vic Gundotra for a little over a year now, but it's been an absolutely fantastic experience.  Today, he started a blog.

Mind you, this isn't some kind of blog where a corporate PR person makes up stuff and the exec pretends he said it.  Nope, Vic is the real deal.  He's grokked blogging right from the beginning. That's why there's people like Robert Scoble in his organization.  But until today, he's kept behind the scenes in the blog world.  This seems strange to me in a way, because Vic is kind of what I consider an "Evangelist's Evangelist."  This probably explains why he's the GM of the Evangelism group, but it goes beyond that.  His energy, enthusiasm, and outright passion is quite infectious.  But he's not simply a mouthpiece for Microsoft.  Vic believes in the power of software, and when he sees something that doesn't sit right with him (or more importantly, our customers), he can bark pretty loudly.

Ok, I've rambled too much.  Go read his first post, "In Defense Of The Company I Love" and hopefully you'll get a taste of what I'm talking about.

4/22/2005 8:31:50 PM (Pacific Daylight Time, UTC-07:00)  #    Comments [2]  |  Trackback
Monday, April 18, 2005

I was browsing Andy "ZMan" Dunn's website, The ZBuffer, this evening and came across some interesting new tidbits.  I continue to be amazed at that people are doing in C# with Managed DirectX.  Case in point: HADDD.  These guys have created an amazing free 3D engine for first-person shooter games.  They've created two demo videos (XVid codec required) which are well worth downloading.  The first video does a great job of creating a "teaser" trailer for a game....dark lighting, mood music, things that go bump in the night.  Turn off all the lights and watch it with the volume turned up.  Creepy.  Written in C# (Using the latest C# Express beta no less!) and Managed DirectX.  Enjoy!! 

P.S. -- Brush up on your Spanish if you intend to read the forums or the source comments. 

4/18/2005 9:18:00 PM (Pacific Daylight Time, UTC-07:00)  #    Comments [0]  |  Trackback

One of my co-workers, Jeremy Mazner, has posted openings to hire technical evangelists for Longhorn and Internet Explorer.  Jeremy is a great guy to work with, and being an evangelist at Microsoft jut plain R-O-C-K-S!!

4/18/2005 4:33:19 PM (Pacific Daylight Time, UTC-07:00)  #    Comments [0]  |  Trackback
Sunday, April 17, 2005
The latest news, in case you haven't seen it:
  • MSDN has a new area called "Coding for Fun" that includes a section on game development
  • Two other Managed DirectX websites that have been around, but I've somehow missed: Inner Realm, powered by Community Server (which also powers the MSDN blog site where my InkBlog posts are echo'ed on), and Michael Russel's "Roms Rants".
  • ArcsOfFire.  Interesting Tablet PC game, but it still has some rough edges.  Source is available though.
 
Finally, Kitten Cannon has been a great time sink for me.  It's funny to find a game like this, because I'm actually writing something similar for my book.  Except I won't use kittens......because full-grown cats have MUCH more momentum :-)
4/17/2005 7:07:51 PM (Pacific Daylight Time, UTC-07:00)  #    Comments [2]  |  Trackback
Wednesday, April 13, 2005
Only a sick, twisted person like me (and thousands of other gamers) could love a cartoon like this.
4/13/2005 11:03:08 AM (Pacific Daylight Time, UTC-07:00)  #    Comments [0]  |  Trackback
Thursday, March 31, 2005

I used two different styles of game loops in my Managed DirectX books.

Both approaches were wrong.

It seems that our stalwart Rick Hoskinson has spent a little groktime on this and has reached, he believes, the Perfect GameLoop.  My publisher is pressuring me to do a second edition of my game programming books, so maybe that's a good time to make the move.  Anyway...give it a read if you're into getting the most performance out of Managed DirectX apps (and who isn't? :-) )

P.S. -- For those of you reading this post on InkBlog (my "personal" blog), you'll notice a few changes.  I finally got around to upgrading to dasBlog 1.7.  Welcome to my new old blog :-)

3/31/2005 3:26:58 PM (Pacific Daylight Time, UTC-07:00)  #    Comments [1]  |  Trackback
Thursday, March 17, 2005

I bought a Mac Mini last week.  The day before I left on vacation, a tiny box from Apple appeared at my doorstep.  In a fit of boldness, I decided to take it with me and spend part of my weekend in Texas pounding away at it.  I wanted to get a feel for the kind of user/developer experience a Mac user would get as an “out of the box” experience and share it with you.

 

A few of caveats before I begin:

  1. This is a really long blog entry.  I spent an entire weekend in a love/hate relationship with my new Mac.  I want to share the whole experience with you.
  2. I deliberately avoided the “multimedia experience” of the Mac.  The features of Apple's iTunes/iDVD/iPhoto stuff are pretty well-known.  I was more interested in what kind of experience an average Windows developer would have.
  3. It's possible, especially during the development part, that I've done something that wasn't "The Apple Way."  I haven't touched an Apple since 1991, so any errors/omissions/undeserved grousing is entirely my responsibility.  If you read something in here where you think I'm just plain wrong/daft, pop in a comment and correct me.  I love my PC, but I'm also a Mac owner now, so any suggestions you can offer that would make my experience on here a better one is very welcome
  4. Yes, I work at Microsoft.  Yes, I'm an evangelist at Microsoft.  No, I'm not being paid to write this, nor am I writing this to be a shill for Microsoft's products.  I spent my own money to buy a Mac, and what you are reading is my own opinion.  I will say good things and bad things about the Mac.  You have been warned.  

 

The Out Of the Box Experience

 

Big kudos goes to Apple here.  My Mac Mini was a relatively high-end configuration. It had a 1.42Ghz G4 CPU, 80gb HD,512Mb RAM, DVD RW, built-in Bluetooth/802.11b/g, plus Bluetooth mouse/keyboard.  Microsoft employees actually get small discount from Apple, and the total “shipped to the door” cost to me was under $1000.  Looking back now, I recommend bypassing the Bluetooth mouse/keyboard combo and sticking to whatever Mouse/Keyboard combo you like (Microsoft, Logitech, etc.).  Aside from my rants about the mouse (see next section), I also noticed my Apple bluetooth keyboard occasionally didn’t send a character to the screen.  I can’t tell if this is because I’m having difficulty in typing with a “non-split” keyboard or if it was a Bluetooth problem.

 

Opening the (extremely small) box was simple, as was hooking the computer up to the monitor.  Startup was very simple, and after a short “first user setup” sequence, it hooked up to the Internet and identified several updates to install.  This procedure was simple, and each step was clear.  Other than the mouse issue, a Windows developer would have little to no difficulty getting used to OS X (and to an old Unix guy like myself, I'm quite fond of popping up a bash shell anytime I want -- of course, I can install Windows Services for Unix and get bash on my XP box).

 

The overall visual and performance, even for such a tiny box like the Mac Mini, is quite impressive.  The glass effects and visual behaviour of the dockbar is impressive, and overall visual presentation is simple.  One really cool thing is Expose, which allows you to quickly organize and look at all the open windows at once with just one button.

 

Apple’s Glaring Wart

 

In my opinion, this is a major Achille’s heel of Apple – their persistent belief that people want/need a one-button mouse.  My Mac Mini came with a Bluetooth keyboard and mouse, but the experience of a one-button mouse was nothing short of miserable.  What is ironic is that I suffered the EXACT same problem when I was first developing on a Mac IIfx running A/UX back in 1990.  You'd think that Apple would at least offer a three-button mouse as an option (although the latest news from Engadget says Apple is about to offer a two button mouse -- That would be nice -- a 21st century OS with an early 90's mouse). Fortunately, the Microsoft wireless mice/keyboards work GREAT with the Mac.  Even better, almost ALL software on the Mac is actually smart enough to understand right-clicks and the scroll wheel.  Um, Apple...if you wrote the software to support 3 mouse buttons and a scroll wheel, why not offer hardware to match the functionality?

 

Would You Like To Play A Game?

 

Let's be honest, you probably won't buy a Mac Mini for its gaming power.  That being said, I decided to give a few games a whirl.  The Marble Blast game that came with the Mac was cute (but simple).  The "Nanosaur2" game bordered on stupid (both in terms of gameplay and controls).  I also own World of Warcraft, which will install on either a Mac or PC, so I loaded that up and gave it a run.  Not pretty.  Yes, it was playable, but barely.   

 

Developers Developers Developers Developers

 

This was really the ultimate test.  What is the experience like to develop on a Mac?  How easy is it, compared to something like VB.NET or C# development?  This is my summary: In spite of Apple's XCode development tools coming for free with Mac OS X, developing on a Mac sucks like an inverted hurricane.

 

There are two primary paths a developer can take when writing code for OS X:

1)    Carbon: This is the C/C++ interface for writing Mac OS X applications

2)    Cocoa: This is the Objective-C/Objective-C++ interface

 

Unlike the managed/unmanaged demarcation Microsoft has with .NET, the Carbon/Cocoa difference is more about preference and background more than execution environment.  For instance, you can call Carbon APIs from Cocoa, and vice versa.

 

Performance-wise, Carbon apps are (theoretically) a little slower because they use a more object-oriented framework.  As a comparison, one game programmer indicated that a file management component took 800 lines of code in Cocoa, versus 18,000 in Carbon.  Generally speaking (from what I can tell), newer apps should be written in Cocoa, while older apps (C/C++ based) will benefit from using the Carbon APIs (Office for Mac is written using Carbon).  I will focus on Cocoa app writing for this entry.

 

I wanted to start with a simple window that had a few controls, just to get a feel for what my development would look like.  When you launch XCode and create a new project, you’re faced with a large array of startup options, generally either Cocoa or Carbon apps, but also including the ability to develop Java EJB or Swing applications (I'll skip over this part except to say this -- if you want to write a Java app, forget about XCode and use Eclipse).

 

After you select a Cocoa application, the XCode project window opens with a set of pre-populated files.  Although it looks nothing like Visual Studio, I didn’t find the layout to be too arcane/overwhelming.  One thing that was VERY different, however, was the process to create and wire up a GUI.  To begin with, you must launch a separate Interface Builder tool.  The tool is laid out rather oddly (from my prespective), but a quick read of some developer documentation helped. Unfortunately, playing “drag and drop” with the controls was the only easy part of the task.  The process of wiring up outlets and actions (similar to properties and events in .NET) is nothing short of wierd.  What would take a .NET developer a scant few minutes to do takes easily three to four times as long with the Interface Builder.  Compounding this is the fact that generating the code is effectively a one-way trip.  You really can't go back and add/change things without a lot of pain (According to the Apple docs, “Once you have created .h and .m files for a new class…, you should not use the Interface Builder Info window to add more actions and outlets to the class.”).Once the code is generated, you're back in the XCode development tool, and you begin "filling in" the code stubs generated by the Interface Builder tool.  This process is also quite painful, as the XCode editor has only redimentary code sense and contextual help (again, I emphasize I'm comparing to Visual Studio).  In addition, there is little to no help to warn you about potential errors in your code (I didn't turn on the "predictive compilation" feature though, so maybe that would have changed things -- XCode has some interesting features that appear to be turned off by default).  Once you've managed to write your Objective-C code correctly, you go through the standard "compile and run" cycle.  Debugging is also a challenge, but if you're familiar with gcc/dbg, you should be somewhat comfortable.

 

My Final Thoughts

 

Apple has a nice hit here with the Mini.  It's definitely lowered the bar for people wanting to bring a Mac into their lives, and it boggles me why PC manufacturers can't offer something in as small of a form factor as Apple has done.  For a non-gaming Mac user experience, the Mini delivers in a nice package.  For a developer experience though, the Apple developer tools have a long way to go.

3/17/2005 2:22:20 PM (Pacific Daylight Time, UTC-07:00)  #    Comments [2]  |  Trackback
Sunday, March 06, 2005

Some of you remember a post I had made in late September about my climb up Tiger Mountain.  I decided to do it again, now that the nice weather has returned to the Seattle area.  Of course, things are a little bit different now.  Back when I first climbed Tiger Mountain, there were two important things to note:

  1. I weighed 285 pounds (not including the 30lbs in my backpack)
  2. The entire round trip took me 4.5 hours (3 hours up, with many stops, and 1.5 hrs down).
During this time between my ascents up Tiger Mountain, I went into a rigorous program that corrected my bad eating and exercise habits, and have _so far_ lost over 50 lbs.  So this time, there were a couple minor changes:
  1. I now weigh 230 lbs (and I'm still working to get down to a comfortable 210-215 range).
  2. The entire trip took me about 2.5 hours, and that included a leisurely 30 minute rest at the summit and stroll back down.  The ascent alone was completed in 1 hour, 10 minutes.
Anyway, I did take a few pics...although I didn't get some real stunners like I did the last time, probably because I did the hike MUCH faster than I thought it would take me (time flies when you're having fun!).

Here's my (blurry) happy face as I started the hike.  Yes, I should have turned the flash on.  Compare that pic with the fat version of me (the next pic) from my first hike!

The start of the trail...about to begin a 3 mile, 2000ft hike.

Reached the top in 70 minutes...I was tired, but not exhausted (like the last time).  Heck, I even passed some people on the way up.  The last time I did this, SNAILS were passing me :-)  You'll also see that I wasn't the only one that decided to get out and enjoy the hike.

And here's a couple of scenery pics.  The first one is looking east, the second one is looking west.  The blurry city you see in the pic is Seattle.

 

3/6/2005 10:50:32 PM (Pacific Standard Time, UTC-08:00)  #    Comments [0]  |  Trackback
Tuesday, March 01, 2005

I've been knee-deep in WSE for the last bazillion weeks, and am finishing up an article for MSDN on it.  Since I'm on a WSE kick right now, I should point you to Mark Fussell's notice telling people that WSE 2.0 SP3 is ready for downloading.  Enjoy!

News coming up next week: Some talk about upcoming Avalon goodness, packing for a vacation to Texas, and hoping I don't get get people at work pissed off because I bought a Mac Mini. :-)

3/1/2005 9:10:00 PM (Pacific Standard Time, UTC-08:00)  #    Comments [3]  |  Trackback
Thursday, February 17, 2005

ok, officially, the title is A parent's primer to computer slang, but it applies to any type of 1337 gamz0r talk.  Especially in WOW :-)

2/17/2005 4:04:55 PM (Pacific Standard Time, UTC-08:00)  #    Comments [0]  |  Trackback
Tuesday, February 15, 2005

Today's hot buzz, IE7 is coming soon!

And in case anybody is curious, IE is NOT my default browser.

But neither is Firefox :-)

I (currently) use Avant Browser.  I used Maxthon for a while too, they're both great replacements for IE6.

2/15/2005 10:33:19 AM (Pacific Standard Time, UTC-08:00)  #    Comments [0]  |  Trackback

I'm usually more prompt with these notices...the latest DirectX SDK (including some small Managed DirectX updates) is available here.

I'm only 6 days late announcing it :-)

2/15/2005 5:58:52 AM (Pacific Standard Time, UTC-08:00)  #    Comments [0]  |  Trackback
Thursday, February 03, 2005

To all 50 attendees that came to my talk last night: Thank you!  I got some great questions and I had a blast giving the talk!  I also hoped you enjoyed the first public demonstration of Managed Direct3D for Devices.  I'm really jazzed about the potential THAT has!  I'm going to work with the mobile devices team to get the Space Donuts game ported to it as soon as possible.

And, as promised, here's the slide deck from last night's talk.

2/3/2005 2:17:14 PM (Pacific Standard Time, UTC-08:00)  #    Comments [1]  |  Trackback
Sunday, January 30, 2005

Well, it was kinda short notice, but I'll be doing a talk on Game Programming with .NET this Wednesday (Feb 2) at the Microsoft campus (this presentation is for a .NET Users Group, so it's open to the public).  I hope to have a small bit about Avalon game programming as well, but I'm not sure if I will have the time.

I hope to see you there!

Date: Feb 2, 2005
Location: Microsoft Bldg 43/Adams Room
Time: 7:00pm

1/30/2005 3:04:21 PM (Pacific Standard Time, UTC-08:00)  #    Comments [0]  |  Trackback
Thursday, January 06, 2005

Advance warning: For those of you expecting some cool geeky detail in this blog entry, I apologize in advance (well, wait, for those of you that want that, a fellow Managed DirectX developer, Jason Olson, has posted an interview with Tom Miller, the brains behind Managed DirectX).

 

I'm sitting in a Starbucks in Santa Barbara right now on the tail end of a business trip, and thought this is a good time to reflect on last year and what is coming in this year.

 

It's safe to say that last year was really good for me, I got two books done on game programming and had a GREAT time at work.

 

This year holds a lot of potential for me as well, except for one little detail: My father is gravely ill from cancer.  Considering how close I have been to my father, this isn't simply one of those trivial "fact of life" things to deal with.  Some days, in fact, I feel as if I will be absolutely crushed by the emotional burden.  I've tried to compensate with it in several ways, mostly by burying my nose in World of Wardcraft at home, which is a great escape, but doesn't solve the emotional turmoil I'm facing.  Even worse, as I try to accomplish writing my new book on Avalon gaming and do my "normal" day job, I find that my ability to focus/concentrate is practically nonexistent.  This means my work moves at a snail's pace and my bookwriting is...well, I have a table of contents and a very bad draft of one chapter, and that's after several weeks.

 

In any case, I'm still trying to learn how to deal with this.  I love my job and I love writing books on gaming (most of the time :-) ), so this all tends to have a spiraling effect (because I not only worry about my dad's failing health, but then I get all messed up because I start worrying about my poor work performance). I'm hoping that by writing about this that I can get myself on some road to emotional recovery. 

 

Anyway, that's the big issue I'm dealing with, but I still have honest "New Year Resolutions" to accomplish.  One bit of good news is that I am NOT doing the traditional resolution of "I'm going to start losing weight", that's because I already have been (35 lbs in the last 10 weeks!).  I'm in the 20/20 program just like Jeff Sandquist and Brian Benincasa were, and it's had a GREAT effect on me physically (And I'm less than 1/2 way done with the complete program!).  So what are my top resolutions this year?

  • Get smarter about managing my time and priorities
  • Finish my Avalon gaming book in time for PDC 2005
  • Publish at least two articles on gaming with Managed DirectX
  • Bring my life into better balance (more socializing with real people, more guitar playing, more fun)
  • Do at least ONE thing that makes the world a better place for people that are less fortunate than I am
  • And, of course, find some way to come to terms with what my dad is facing (I already lost my biological mother to cancer in '94, so on top of all this, I get the added worry that I'm genetically predisposed to cancer)

 

ok, that's enough somber notes for one day from me. 

 

 

1/6/2005 4:39:34 PM (Pacific Standard Time, UTC-08:00)  #    Comments [2]  |  Trackback
Wednesday, December 22, 2004

I just found out that "Beginning .NET Game Programming in C#" is going into its second printing.  Thanks to all the readers out there and for all the great reviews!!

Next week I begin to write a game programming book for Avalon!

12/22/2004 1:54:55 PM (Pacific Standard Time, UTC-08:00)  #    Comments [5]  |  Trackback
Monday, December 13, 2004

You gotta admire the dedication and hard work these guys have.  To my knowledge, no other team in Microsoft yields SDK updates on a quarterly basis.

You can find it here.

And for you VB people, here's a couple goodies for you:

  • The "DrawText" bug (discussed here) is fixed
  • There is a VB.NET sample added to the DirextX Browser (Basic HLSL).

The bad news: There's still no "Empty Project" option for you to start with :(

Also, although the release doesn't officially work for Visual Studio 2005 Beta 1, I verified that the C# "Empty Project" sample compiled and ran ok.  That doesn't mean your code will work, I'm just saying that a quick 5-second test worked ok for me.  YMMV.

12/13/2004 3:56:15 PM (Pacific Standard Time, UTC-08:00)  #    Comments [4]  |  Trackback
<
Thursday, December 09, 2004