Xbox speeds up research results

There is an interesting article on the BBC today about some researchers using the Xbox GPU for parallel processing.

This would actually be fairly easy to do with XNA, though I would be really interested in seeing the types of HLSL they write for the algorithms. The only difficulty, as I see it, is that XNA doesn’t have a generalized API for data transfer to a server. The networking API’s allow you to communicate between other clients in multi-player games but they do not let you upload results to a server. They might let you upload top scores and a few other minimal stats but certainly not the large datasets these researchers are looking for. It would be really cool if the XNA team created a complimentary server client that would allow 3rd party indie game developers to create server software to enable this type of application as well as ones that might involve persistent worlds and things like that.

I would be very interested in something like that.

Charity Fragathon

The Twin Cities XNA User Group is hosting a very special event next month…

We’re hosting a huge Halo 3 Tournament at Microsoft to raise money for Children’s Hospitals and Clinics of Minnesota. We’ll also have Rock Band 2 and a few standalone machines for people to check out XNA Community Games.

Even if you aren’t a gamer, you probably know one. You might even have one in your family. This is an excellent cause worth donating to, and best of all: Magenic is matching funds raised by the event (up to the first $3000)!!

So… let’s take advantage of this opportunity.

For more information, and to register (or just donate), please visit http://www.charityfragathon.com

So please help spread the word. Tell your clients.  Tell your friends.

Rockband and Homebrew Aftermath

So it turned out that my homebrew was undrinkable. It seems it had sat too long and suffered from a mild infection so I had to dump it out. Fortunately we had Surly Bender to the rescue! After thinking about it a little bit I headed out to Midwest Supplies and picked up some equipment to upgrade my keggerator to be compatible with both American Standard and Kornelius kegs. This is a pretty nice upgrade!

  

Actually there was on piece that didn’t quite work right so I have a little bit more work to go. The piece was a splitter that turned out to be a one-way splitter. It turns out that you can’t combine the flow with this splitter, you can only split it. So I had to do a temporary splice directly from the tap to the keg, but I will probably go back and get something like this 3/8” Stainless Steel Barbed “T” instead and save my self $30 in the process.
The beer was delicious and the food was good and we had some good friends come over and had some fun. There were a few people who I was hoping would show up but couldn’t for various reasons (you know who you are) so that was a little unfortunate. Otherwise we ended up playing Rockband until 3am (much to the dismay of my upstairs neighbors I’m sure) and then I had to kick people out so I could crash.
One last thing, I couldn’t resist going out and buying Scene It since I knew so many people were coming over. We played it in impromptu teams and it turns out that it is hard as hell. Don’t plan on buying this game for your kids because I’d be shocked if they knew half of the answers, it is really intended for the truly discriminating movie buff.  That aside it was pretty fun, we were a little perplexed by the big button controllers since the ‘X’ on them didn’t light up when you pressed it like regular xbox 360 controllers but it turns out that they are not truly blue tooth enabled controllers, they communicate via IR with a reciever that goes ontop of your TV. I don’t know why they went that rout… probably just being cheap. However I am looking forward to the next version of XNA which I heard will have drivers to allow you to use these controllers for your games.

Rockband and Homebrew

I just recieved my Rock Band gift from Magenic for being apart of the Magenic Technology Council, today. I think it’s time to keg my beer and have a Rock Band and Homebrew party finally!

If you’ve got nothing better to do and you live in the twin cities area send me an email and I’ll let you know how to get to my place!

By the way the beer is a ESB, so if you are of the American macro brew persuasian you might want to bring your own. I will probably try to pick up a case of something lighter but you never know.

Drop In

 

Last night I attended the monthly Twin Cities XNA User Group meeting. Instead of having a single presenter we have six members of the group stand up and talk about some projects they’ve been working on for 15 minutes or so. I have a feeling that everyone could have just gone on and on about what they were doing but, alas, there was no time.
I gave a presentation of the XNA game I have been working on called Drop In. Drop In is a pretty simple game with 3 screens. Also all of the artwork was created with Paint.NET and the music as created by Zach Adams along with some of the sound effects being created using a free tool called sfxr by DrPetter. So you can say that Drop In was created entirely with free tools!
Main Menu
 
Credits
 
Main Game
 
Code
The source code is broken up into an engine and Drop In specific projects. Currently it will only run on a PC but with some minimal hacking you could probably get it to work with an Xbox. I think the main problem is loading up XML files for settings off of the disk which I’m not sure if it will work.
One of the most interesting parts of the game is the AI used for one player mode. I created a reusable MinMax evaluator in the game engine library. I looked at a great applet created by Yosen Lin at Berkley as a reference for improving my implementation of the MinMax algorithm with Alpha Beta Pruning. It actually seems to work pretty well too. There are some deficiencies with how I evaluate states I think and also there is a problem where the computer will evaluate all states and determine that every move it makes will result in a loss and therefore it ends up making an effectively random choice. It doesn’t account for human error and should still probably try to pick the “best” of the losing moves.
Anyway, I have posted the code in its full form so you can play Drop In and also as prebuilt binaries if you don’t care about the code. You’ll need the XNA runtime to play it or the XNA Game Studio 2.0 to build it. I have also posted just my game engine in case anyone else is interested in creating a 2D game or just taking a look at the MinMax algorithm I have created in C#.
Next Steps
Next month’s user group meeting might focus on AI if so then I can talk more about the MinMax algorithm I implemented for anyone interested. I might actually be looking to improve this AI a little by then too, I’m thinking of including some sort of mechanism for machine learning for example. I am also toying with some ideas for changing the goal of the game and adding in some features for complexity. For example perhaps the goal shouldn’t be to just get 5 in a row but instead to get as many in a row as you can when the board fills up. I’m also toying with ideas of special pucks that do more than just drop, such as pucks that push other pucks down and pucks that blow up and pucks that change the colors of other pucks. Etc.
I also want to make the AI evaluate the state continuously, not just on the computers turn and include the possibility of network play… which should be pretty easily actually since I have abstracted the players pretty well.
If anyone out there has any motivation to create a 3D Puck model for me I’d be pretty happy about that! I’m looking to take this game engine (and Drop In) to the next dimension and to do that I will need some good models.