I guess I truly can't deny that I was able to create another human being now :). My wife and I just got back from our 12th week appointment with the mid-wife. Everything's a-okay. Rebecca is perfectly healthy and doing well. The bonus? Today we got to hear the baby's heartbeat!!!! Man, I'm totally on Cloud 9 right now. I can't believe I just heard our baby's heartbeat. There's like a little human being in there living and growing :). The miracle of life is, well, miraculous. Okay, that's pretty cheesy. I admit I'm no elegant linguist like Rory, but still, I'm going to share my excitement in my own kind of way :). So, after today, I'm one step closer to my goal: Step 1. Get wife pregnant Step 2. Hear baby's heartbeat .... .... .... Step 125. ALL YOUR BASE ARE BELONG TO US!!!
Well, I have some exciting news to share with everyone who reads this (all three of you (Hi Mom!)). I've been about ready to burst, but my wife and I wanted to wait until we were a ways into "the project." So, about eight weeks ago or so, we found out my wife is pregnant (FINALLY!). She is almost 11 weeks in. In fact, the next time we get together with the midwife this coming Thursday, we may even be able to hear the baby's heartbeat!!! Of course, with how long we've been trying (three-four years now?), it still seems too good to be true. While I'm looking forward to the next 6-7 months, I'm DYING to hold our baby in my arms :D. Oh boy, my life is going to change in ways I can't even imagine, and I am friggen' ecstatic about it!
Well, day four of Stones. I didn't get too much work done last night because I went out and had an excellent dinner with my wife and my father (who was in town on a business trip). Oh, and I also was working out some plans with some friends on an ultra-secret project :). I can't say anything yet, but hopefully once things settled down and we're a way into the project, we'll reveal it publicly. Until then, mum's the word :).
Soooooo, here is Stones on Day 4:
In this image, there are three things to show you. First, the images of all the stones are finished. Yes, they are very "Programmer Art" right now, but they will do until I finish the game.
Secondly, if you are at all familiar with the rules of Bejeweled, you will notice that there aren't any "matches" on the board (three, four, or five stones of the same color in a row). To make this possible, I needed to implement some rudimentary rules for "match detection" to prevent the random board generator from generating a board with matches from the get-go.
Lastly, there is now a cursor on the board. Using the keyboard, navigation is fully enabled. You can swap two pieces just like you can in the full blown game. I still need to enable "rules detection" on the move to detect whether it is a valid move or not.
It's coming right along. Not bad for four to six hours of work having never worked with XNA before. Of course, XNA deserves all the credit there as it is more because of XNA that I'm able to crank along like this. The first thing I need to do next is to do some cleanup and refactoring. There are some new GameComponents that I can extract after tonight's coding session. There are also one or two other "abstractions" that I would like to do to clean up the code a bit.
After the cleaning session, I will move on to verifying the validity of a move before allowing it. Once that's done, I will move onto adding the actual removal of matches, crediting of the scoreboard, shifting of the board down, and generation of new pieces. Yeah, that sounds like a lot, but a good amount of the framework is already there to plug into.
Well, until next time folks :).
Update: Yikes, it appears that my comments are disappearing (I suspect WebHost4Life is doing some backup/restore kind of thing). Well, I got a comment from someone (sorry, I forgot your name) regarding my usage of Vista above (even though Vista is not supported by XNA GSE). I have to admit that I am actually running an early internal build of a future VC# Express (SP1, I believe?) that adds support for Vista (one of the perks of being an MS employee). However, it's not all perks, I still can't really do any XACT audio work. Once I move into my house this weekend, I will be getting my desktop computer out of storage and working on XP just like the rest of you folks are.
Well, today was my second day in XNA land working on Stones (my Bejeweled clone and my first XNA game (and also a subtle play off of Jason Mauer's Bouncing Balls demo)). Once this game is finished, I'll be using it as a vehicle to do a series of game development screencasts on XNA (most likely it will also be in tutorial form that will be included with the video in the download).
I'm still just psyched how good XNA is. Maybe once I come down from "Cloud 9," I'll be able to come up with some constructive criticism. But until then, I'm going to just enjoy the ride. So, here's what Stones looks like today after Day 2:
I have navigation between the Title Screen and the Play Screen working. Of course, that only took all of about two minutes. Above, you can see the play screen. That's a generic background image I'm drawing (I just grabbed it out of my Sample Pictures directory). The playing grid you see is actually a superimposed texture using alpha blending. The playing grid image is actually shades of gray so that I can tint it according to the color pallette of the background image.
Next, I'm going to make some stone images and see what they look like with the board filled up. After that, I will make PlayingField a GameComponent that I can simply add to the GameComponentCollection that I have encapsulated in the TitleScreen. Once the PlayingField is finished, I'll move on to the business rules and scoring. When tackling the scoring system, I'll probably also tackle what the scoreboard looks like there on the left.
The "Play Screen" text you see on the screen is actually being displayed by a VisualDebuggerComponent that I have built. The VisualDebuggerComponent publishes a IVisualDebuggerService that can be pulled and used anywhere in the game using Game.GameServices.GetService(). Eventually, I plan on extending the VisualDebugger to include a debugging console that will drop down from the top that can be used for debug logging as well as actual visual debugging of things like bounding box visualization and stuff like that. It should be pretty cool :).
Of course, all these components and such I'm building into a Harvest Game Library that I'm building. Currently, Harvest Game Library will mostly be for my personal use as I build several games, but I'm hoping to release it in the future so everyone can enjoy it.
Now I can't wait until tomorrow night when I get to work on it again :).
You know, when I read George's opinion last week, I was still skeptical. But I figured that I would tune in and watch it tonight. Oh... My... Goodness!!!! George was right, this show kicks total buttay. I just can't get enough of it. After an hour, I was pissed that it was over and I have to wait another week (ANOTHER WEEK!) to see the next one. please, Please, PLEASE let the network not cancel this show. This is one of the best TV shows I've seen in a while (although now I don't know whether I like this or Eureka better). Man, between Eureka and Heroes, I'm in TV heaven right now.
Hey folks. After a good amount of time away, I have decided to come back to game development land. This time, I will continue work on my game Spaceballs (a Geometry Wars clone), only using XNA this time around. I can't believe I'm going to admit this, but to give myself time to do this, I have even canceled my World of Warcraft account (again). I just have way too much stuff on my plate, and if I want to get back into game development, something has to go (thanks go to Chris and George for encouraging me to do so simply by reading their posts). So, I've started "porting" Spaceballs to XNA. Maybe not so much porting, as re-writing (as I want the game architecture to reflect the new XNA environment and framework). My first impressions of XNA? Oh boy, does it kick butt. As a guy into design patterns and such, some of the first things I notice are the architecture of a framework I'm working with. And, truth be told, the XNA framework is one of the first frameworks (not including the .NET Framework) that I have just LOVED the architecture of. The separation of GameComponents from GameServices from the Game itself is fantastic. The way that the GameServices collection in the Game serves as a ServiceLocator of sorts is just fantastic. I'm so used to having the "why did they do this? This is crap! Oooo, that's ugly" kind of thoughts with other frameworks, I'm just so pleasantly surprised to not be having those thoughts with XNA (quite the opposite actually). Now, if you're not too familiar with a Services (ServiceLocator) pattern, then I can see how the distinction between GameComponents and GameServices might be confusing. I hope to shed some light on that in the future as I will be planning to resurrect the tutorials from before (perhaps this time in Screencast form). I have found that when working with the XNA framework, I have noticed a good amount of my old code from Spaceballs simply disappearing because the Framework is handling what I need it to handle. That's a feeling I like to have. Not only that, if used properly, you truly start to build re-usable components that you can use in various games since you're encouraged to think about GameComponents and GameServices. One of the other things I'm looking forward to is that we, as game developers, can finally stop talking about "the perfect game loop" and those sorts of conversations, and start talking about the cool GameComponents we are building and such. I think the XNA framework could be a huge step forward in providing us a way to share patterns and practices with each other. Not only sharing patterns and practices in a "word of mouth" sort of way, but by actually sharing the GameComponents themselves with everyone. Man, there are exciting times ahead of us as hobbyist game developers. At the rate I'm going though, it might not actually take that long for me to get back to where I was when the GWB game development contest finished. Hopefully then I'll crank through the tutorials/Screencasts. I'm currently shooting for sometime around Christmas time, but it might be afterwards. I would like to give one shout out right now. David Weller and team, GREAT JOB. You guys did such a good job developing this product for us. If it was just for PCs, I would still brag about how cool it is. But considering it will be XBox capable as well? You guys truly are amazing. Keep up the great work!
|