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.