The first of the two is everything I anticipated it to be. It’s chock full of reference material and sample code for virtually every typical game physics scenario one could think of. And it’s totally written for coders, yet can be read by a non-coder who might know the syntax; the sample code is C++ but could just as well be elegant Java or C#. I’m very excited to have this book.

The second book just jumps right in and vomits math formulae all over the place in a game-world applicable fashion. It’s a good book, too.

Unfortunately, both books (but especially the latter) are over my head as I hardly even know how to read these math notations much less comprehend them. It’s time to dig higher, closer to the surface. I ordered a few more math books, this time hopefully this additional investment will pave the way for me to more appreciate the books I already bought.

4GB 800MHz DDR2 RAM. RAM these days can be ~1300MHz, but I’m not complaining.

A Quadro video card. Personally, I would have preferred to go with a souped-up GeForce. The Quadro’s are just super cheap and crappy GPU video cards, marketed to the "Workstation" crowd rather than the gamer crowd. What the difference is, I am not sure, but they are twice as expensive and half as capable as a modern GeForce card.

An MSI K9N SLI motherboard. Nah, we’re not using SLI. Just makes for a decent motherboard.

Windows Vista 64-bit, running in a VMWare Workstation 6 virtual machine, on a Windows Server 2003 host. VMWare Workstation 6 lets me manage hard drive snapshot trees, and yes, it supports dual-monitor displays. Vista running in VMWare on this machine rates my machine is in the 4.5 to 5.8 range (max is 5.9) for all components except for the Display (which measures at 1.0 because of the display virtualization bridge) and one other measure, I don’t remember which (memory I think).

an nVidia GeForce 7950 GT video card (the second or third fastest and baddest nVidia consumer video card for DirectX 9)

a 20" 4:3 LCD monitor, and

a 19" wide-screen monitor.

It’s running Vista 32-bit. I originally pieced it together to do music production, but lacking inspiration now it’s being used to play games and to tinker with games programming. I also use it for Remote Desktop from my living room, and for blog posts (like this one).

It’s running Windows Vista 32-bit. The ‘O’ key fell off and even though I have a repair ticket / RMA number for it, I still haven’t sent it back for repair (procrastination). I rarely use it because of that stupid ‘O’ key and because I have at least one desktop PC nearby with access to anything I really need.

Today I started poking around and asking myself, with my PCs being so almost ridiculously souped up, where are things still choking, and what should I plan for my next killer development PC?

Surprisingly, it’s the same stuff as it always was, less the monitor size at this point.

But I did notice, gosh, 20 inches on 3:4 ratio (which is much bigger than 20 inches wide-screen; vertically, 20-inches 3:4 is the same as a 24-inch widescreen) really feels average now. I am so spoiled. Yet, think about this… we used to be happy with 640×480, and 800×600 used to be really big. Back then, 17" monitors were HUGE, reserved for the really talented high-end graphics designers at high-end multimedia or television workplaces.

But today, SQL Server Management Studio and Visual Studio 2005 feel rediculously crammed in a tiny space on a 20" monitor. This is because of all the little tool windows that are scattered all over these IDEs, along with pages of source code one must wade through. Big displays are no longer a necessity for graphics artists, they have become a necessity for productive developers as well.

I’ve noticed also that maintaining equal resolution and dimensions / ratio between two displays on a dual-monitor setup will enable some interesting functionality in software. One important one is it enables Windows Vista’s Remote Desktop (which I use all the time) to support dual monitors. I like that idea.

I’ve got a 20-inch LCD and a 19-inch LCD on my fastest home computer right now. The 20-incher cost me $450 used, and with its casing it’s a massive, thick beast; they’ve really slimmed down the LCD screens in the past couple years. I have also always noticed how dark the display is. Now, two and a half years later, the same monitor can be had on eBay for about $250.

So after 2008, for my home environment, I’d like to get rid of the 19-inch and 20-inch CRTs (the former of the two I bought ten years ago, and the latter of the two I got for free when my employer threw it in the trash) that are with my old archiver PC, and move my current 19 and 20-inch LCD screens there, then set myself up with two 24-inch widescreen LCD displays for my home gaming & development PC.

Hard drive space.Hard drive space is getting cheap these days, thanks to perpendicular hard disk technology. Believe me, having 1 TB of hard disk space is very nice, but it upgrades from the previous office workstation of, literally, 60GB, and "back then" (a month or two ago) my boss kept reassuring me, "Nah, you have tons of hard disk space, just delete some Windows Update uninstaller files." My boss is the coolest boss on the planet, making my job the best job I’ve ever had, but sometimes I scratch my head and wonder if he’s still living in the 90’s.

The 750GB drive I bought for my office development PC was bought by me as an emergency band-aid to resolve a problem: I was hosting a virtual machine on which I had my entire workstation and all of the software tools I use.

Unfortunately, the 750GB I added for my VMs is making me suffer; my Vista OS running in a VM is much slower now, because it is on a 7200 RPM drive rather than the RAID 1+0 array of 10000 RPM Western Digital Raptors. I might need to rebuild the VM to use two virtual drives, and have the virtual system drive running on the physical RAID array.

I eat software for breakfast (sometimes literally) and don’t like to apologize to anyone for being liberal with hard drive space. I’ve found that it is a far greater blow to productivity to constantly limit myself for hard drive space consumption and to scour my hard drive for things to delete than to simply install what I need and apologize later, or never.

By the end of 2008, I expect 7200RPM 2.5TB hard drives to be available in the $350-500 range. I want one of these.

Hard drive speed.At the office, I insisted on a RAID 1+0 config while the others on the team were preparing to go RAID 1 plus a simple, cheap, high-capacity "swap drive" for project files. But RAID 1 is slow; reads are about as fast as no RAID, and writes are slower because of the redundancy. Whereas, with RAID 0 (striping) both reads and writes are 50% faster because the drives themselves are always the bottleneck and the controller simply toggles between drives while interfacing with the motherboard at its native speed. Combine the two RAID options and you get redundancy and performance combined.

I’m a heavy software user. I don’t like waiting for the system to boot. I don’t like waiting for apps to load. I don’t like waiting for data to be written or updated, where I’m actually doing work. And the fastest drive should be where the swap file is; hard drives are 1/100th the speed of RAM, so minimizing that impact when virtual RAM kicks in should be a huge priority.

The biggest slow-downs I’ve ever had on a PC was with doing anything with it. I say that tongue-in-cheek, but it’s true; the only time I haven’t been annoyed by how slow my PC is while hard disks were being accessed is when I’m accessing old documents, human-consumable media files (MP3s, etc), or installer files from an archive drive. This is why I keep a huge archive drive, but I only use it for archived files. I like a big, fast C: system drive because I have a lot of program files and developer tools.

And games? At home, I keep all my games on my RAID 0 drive array. Why? Well when you get back from waiting five minutes for Battlefield 2 to finish loading, come back and ask me that question again. Media assets that are loaded up at once in order to make something usable are very serious candidates for moving to the fastest drive(s).

I do keep some regularly-accessed files on my archive drive, namely those files that, when used, are specifically timed for [relatively] slow use–that is, files that are consumed by a human being. These would be documentation files (HTML files, Word docs, PDFs) and media files (MP3s, MPEGs, WMAs, WMVs).

The Western Digital Raptor SATA drives, running at 10000 RPM, and comparable in performance to 15000 RPM SCSI drives, are truly fantastic drives; however, I am using them all over the place now, and they set a bar for expectation. It’s frustrating to me, though, that they are only 150GB in capacity. I already said I need space.

SanDisk has been promoting their new solid-state (Flash-RAM) drives, now running at 60GB in size. 60GB is the size of the hard disk I was using at the office before the recent killer workstation update; it’s plenty for a basic development workstation, yet blazing fast.

I’m still not sure about hybrid hard drives. We haven’t seen how the price/performance/capacity ratios will end up looking like. But I am certainly curious.

So, by the end of 2008, I expect Western Digital Raptor (10000 RPM SATA) drives to be available in the 300GB capacity range, and fast solid state drives to be available in the 150GB capacity range. I want altogether either 500+ GB Raptors in a striping RAID array alongside 1TB 7200 RPM archive space, or else a single 150GB solid state drive alongside 1TB of RAID 0 space @ 7200 RPM. I don’t care about RAID 1 at all because Windows Vista has an automatic backup feature, and I am using VMWare Workstation for my productivity environment anyway. (Virtual machines are easily backed up.) But if a rendundant RAID array is mandated by my employer, just double the fast drives, please. (Heh. "Just.")

RAM.4GB sounds like a lot, but it’s not. Here’s the deal.

I am virtualizing my desktop workstation environment.

I have Windows Vista x64 hosted in a VM. Within it, I have allocated approx 2.2 GB of RAM (and between Office, Visual Studio 2005, VS 2008, Internet Explorer, Firefox, Photoshop, and more, all being open at once, I use almost all of the allocated RAM).

I host that alongside a Fedora 7 virtual machine where I am trying to a) keep myself knowledgeable of Linux, b) learn LAMP (Linux, Apache, mySQL, and PHP) development, c) familiarize myself with Mono development, d) get to know the CMS software (Krang) that originated by the company I work for, all so that I can e) be proficiently flexible enough to better-integrate Krang with our .NET system, or add tie-ins to LAMP features. The Fedora 7 VM is a complete workstation VM and uses about 1GB of RAM.

I host SQL Server in both the host and the Vista VM environment. To do the Fedora VM, though, I have to keep the host SQL Server shut down.

I play occasional 3D game, such as Half-Life 2. To do this, I have to stop the SQL Server service and suspend or shutdown the VMs, because, combined, they eat up all 4GB of my available RAM.

I would like to be able to do all these things WITHOUT having to suspend ANYTHING. In fact, ever since I switched to 64-bit computing, I have been asking, what’s the deal? Why are we still toying with "shock and awe" over gigabytes of RAM?

4GB DIMMs are already in the sub-$500 range. By the end of 2008, I expect 8GB DIMMs to be in the sub-$500 range (currently they are ~$1,250, and yes they do exist). I’ll take four of them (32GB), thanks, or at least four 4GB DIMMs (16GB), running at at least 1300MHz.

CPU.Seriously, I’m very comfortable with the performance of my system right now. But earlier today, I was setting up a couple Linux VMs on my AMD Athlon 3000+ home archive PC, and was noticing how it was taking me at least twice as long to set it up as it took me at the office. In fact, at the office, I never once got impatient. Setup was very comfortably fast. But now I was sitting back, thinking, sheesh, this is slow. Now, if I was doing this about two years ago, and hadn’t worked on my killer office workstation doing the same thing on an Athlon 6000+ machine, I would not have been complaining. I’d be thinking, ahh, this is comfortably fast. But now, I think it is only adequate. Not fast.

So in all seriousness, where are we heading? I expect by the end of 2008 I’ll think my office workstation is only adequate, not fast.

Quad-core CPUs are already in the sub-$400 range. By the end of 2008, I expect quad core CPUs to be the standard workstation CPU, and eight-core CPUs to be available for high-end workstations. I’ll take one of those eight-core CPUs, thanks.

So, here’s what a dream custom-built 2009 gaming and development workstation will look like, for around $5,000 or so I expect, whether a new killer home PC or perhaps the next tech refresh at the office, in mid-2009:

I decided I should start posting my notes on my side interests with game development. I have always wanted to be a games programmer, since I was just a kid, but I went straight into Web and Windows application development (general) and never saw my dreams fulfilled. Phooey, it’s never too late, I’m delving in now, while I’m still single.

7/13/2007 2:30am(-ish) – TorqueX for Creators Club Members

Downloaded and installed TorqueX which is now free for paying XNA Creators Club members. Don’t have time to play with it right now but will.

Started tracking game dev logs. The previous entries (below) are retrospective recollections.

7/12/2007 6:15pm(-ish) – Playing With The Dream, Build, Play SubmissionsGot home from work early, played these XNA submissions on my Xbox. My favorite game is the robot badminton game Blazing Birds, highly addictive and revealing that you don’t need huge amounts of elements to make a great game, just solid physics, accuracy, a smooth user experience, and some polish. Download Video (here)

Vacuum Ball is a relatively ugly game (relative to above and below) but was still pretty fun and addictive and worth noting.

I thought the most interesting submission, if not quite the most enjoyable but it’s certainly unique, well-polished, and technically advanced, was Magic Crystals.

I’m extremely concerned about the load times of these XNA games. I’m not sure who’s at fault, the games designers or Microsoft’s XNA platform, but it sometimes takes as long as five minutes just to get to the start screen and into the game for some of these games. One thing’s for certain: it is incumbent upon the designers to have a loading progress bar. At one point after waiting five minutes or so I killed the Xbox, convinced it was frozen. I don’t know if it was frozen or not.__________________________________________________________________________________________

7/12/2007 5:15am (-ish) – Found and been downloading tens of Dream, Build, Play game submissions and putting them on my Xbox. I don’t know why these were so hard to find, it seems like there is only one URL on the entire Internet that I was lucky to find:

7/08/2007 3:05am (-ish) – Game Programming at Phoenix’s Desert Code Camp 2007I signed up to do a couple presentations at the local users group Desert Code Camp 2007. I’m hoping this will help me get my butt in gear and actually make some games for a change. I believe that the best way to learn something is to teach it because it forces you to do homework.

One session I’ll present is a quick perusal of several gaming APIs for different platforms. The other focuses on Microsoft XNA. Surprisingly, more people signed up for the former rather than the latter, I guess they’re curious and already bombarded with Microsoft XNA materials that are dished out by Microsoft.__________________________________________________________________________________________

7/07/2007 2:55pm (-ish) – Getting Back Into Game Dev

For the past month or so I’ve been playing with my own little 2D gaming engine running in Windows Forms / GDI+. Right now I just have some balls that bounce around, bump into each other, bounce off barricades, cast 2D shadows, emit location-based stereo bump sounds using DirectSound, can slow down to world friction, and can fall down by world gravity. I also have custom mouse cursor support. I have another sandbox where I’m drawing polygons (right now two triangles) and colliding them with line intersection, but transference of velocity is broken as mass is not properly calculated.

Played with something targeting the XNA engine called Farseer. Maybe I should shrug off this whole GDI+ experiment, or fork off and do something in parallel in XNA, since I bought the XNA Creators Club subscription and it’s a waste to not use it.