Managed World

Techno-babble from yet another babbler RSS 2.0
# Wednesday, October 17, 2007

Well, another day, more work done, more lessons learned, and some new and exciting discoveries and announcements made as well.

First of all, Soma announced on his blog today that F# is becoming an "official" .NET language, joining the ranks of languages like C#, VB, C++/CLI, JScript, IronRuby, IronPython, etc. If you're not familiar, F# is a functional language that started out in Microsoft Research as a project of Don Syme's. I think this is great news. And I'm thinking that perhaps I should give F# a try before I try Haskell or Erlang.

The other discovery of the day was the XSI ModTool from SoftImage, a free modeling tool that also has XNA integration. It sounds and looks like a pretty comprehensive tool (especially for "free") and I am excited to give this a try. You can find more information on XSI ModTool here: http://www.softimage.com/products/modtool/. Enjoy!

Other than that, just more work. Working on some presentations for the upcoming trip to Tech Ed Developer in Barcelona, Spain, continuing to work on Transactional NTFS, programming other Windows Server 2008 enhancements like Wait Chain Traversal, etc. I'm also back to spending time doing game development with XNA. I spent quite a bit of time with Torque X which I'll talk about here and on Xna3Way in the coming week or so.

Fun, fun, fun :). Now back to work (so I can hurry up and get stuff done in order to spend time with the wife and son today (oh, my son, there's another post I have to make, he's SUCH a joy!)).

Posted in Game Development | Programming | XNA
 #       Comments [0]
# Thursday, April 19, 2007

Okay, I admit it, I'm a WoW junkie. I spend WAY too much time in WoW, and not enough time doing the things that actually matter. Well, until recently (hopefully the trend continues). I started diving back into XNA again. Only this time, I'm diving back into it from a 3d perspective, not the 2d route I have always gone before. But why the sudden change?

Two months ago or so, I sent out an idea to an internal XNA discussion list at Microsoft that a bunch of us "hobbyists" should get together every other week just to geek out and do some game development after work. People loved the idea, so a bunch of us have been getting together after work to write some code and show each other what we are doing. Perhaps the coolest part is that since we are doing it in the same building where the XNA team is based out of, several XNA team members have dropped by just to check out what's going on.

In fact, at the first get together, Mitch Walker and others dropped by. Mitch had an idea about doing a month-long game development contest. So, that game development contest just concluded last Tuesday night. Oh MAN, were there some AWESOME games that people worked on. Me, being a total and utter dork, did not have anything to show. Truth be told, I had been writing next to NO XNA code, so there was literally _nothing_ to show. However, seeing some of these great games that were done, I figured it was about time to get back into it again. With how supportive this "user group" (of sorts) has turned out, I look forward to actually participating for a change.

So I'm back diving into XNA again. Instead of doing the usual 2d programming that I've always done in XNA, I figured it was about time for me to get involved in the 3d world. The game I'm going to do uses all the art assets from Spacewars and is going to be a vertical-scrolling shooter (like Ikaruga). Tonight, I decided it was about time to start prototyping the controls out and to make sure I could figure out how to display a 3d model (and show it from the top down).

Here's what the Shox Tonera prototype looks like after this evening:

I know that's not the best resolution, but you can at least see the ship (sort of). When you go left or right, the ship "rolls" to that side. When you go forward or backward, the ship "pitches" towards the direction. This is actually quite easy because the ship is technically in 3d. While the screenshot looks like a 2d game, it's actual 3d with the camera up in the air pointed straight down.

Also, you can see that the playing field is just the middle. I got bounding working so that the ship cannot leave the playing area. That was actually not too hard to do (easier than I thought it would be). I'm using the View and Project matrices to "project" the ship's position in the World into the actual screen coordinates. Then I can used the projected screen coordinates to ensure that the ship will not leave the area the playing area contains.

For those that are familiar with the Spacewars starter kit, I am just reusing the art assets from that in my own game. I will continue to do this for as long as possible. It definitely saves time.

The next thing I would like to do is to create the firing action of the ship using Point Sprits for the visuals. Hopefully either tomorrow night or this weekend I will get around to that. I would also like to do some refactoring to clean up the code. Tonight, I just threw it all in the game class for now to see if I could get it working (quite the departure from my usual behavior as any of my friends can attest to). I just need to be very careful not to get too wrapped up in refactoring and architecture like I usually do, because then I won't make _any_ progress on the game.

So why "Shox Tonera" for the name? Because I'm an unoriginal bastard, that's why. "Shox Tonera" is simply the letters from "XNA Shooter" scrambled up. I personally felt it sounded kind of cool too, so if you disagree, I don't want to hear about it :P.

Posted in Game Development | Programming | XNA
 #       Comments [2]
# Thursday, December 21, 2006

I have posted my first XNA Tutorial over to the new Xna3Way site that Chris, George, and I are partnering on.

This tutorial is on building a robust Sprite Animation Framework. In this tutorial, we discuss building a Sprite Animation framework that you can use to do all sorts of cool and complex animations of sprites. The framework we implement is very simple. At the same time, it also enables some pretty complex behaviors via animation composition. So make sure to check it out.

Posted in XNA
 #       Comments [3]


For those of you who don't like to read announcements: xna3way.com

A few months ago, 3 of us got together and decided to form a team of game developers. Each of us bringing our own specific talents to create something greater than the sum of its parts. We're like a superteam of game developer friends... the superfriends of XNA, if you will.

The really great part is that we've been working on some truly amazing stuff. One of those amazing things is Paradox.

Paradox (par·a·dox) -noun:
1. an apparently true statement or group of statements that leads to a contradiction or a situation which defies intuition.
2. A truly badass RPG built by the aforementioned superfriends using XNA, Game Studio Express & C#.
3. All of the above.

You can read more about Paradox in the xna3way blog.

Something else cool in the pipeline are the tutorials being created alongside Paradox. Want to see how we did something? No problem, in addition to being 100% open source, we'll also explain the how and the why behind the decisions we made.

Last of all, and quite possibly the coolest thing ever: This January, the xna3way virtual team will step firmly into the physical world for 4 days. In that 4 days (96 hours) we will dive headfirst into XNA and TorqueX and come back up with a game. Not a game idea, or a prototype, but a working, playable game*. We'll also be videotaping the whole process. The design, the coding, the fights, the heavy drinking, the birthday cake, the plastic weapons (how do YOU settle disputes??)

Think of this as XNA Code Room: The Lost (only?) Episode!

*Please understand, this game will NOT be Paradox. A game of that complexity can not be done in 4 days. This will be something totally standalone. Something so cool, so amazing, we don't even know what it is yet. That's part of the fun.

Posted in XNA
 #       Comments [2]
# Thursday, December 14, 2006

I honestly don't know how I missed this piece of news. I didn't even want to share the news as I wanted to keep it all to myself :).

Have you been messing around with XNA? If so, do you want to see your game on XBox Live Arcade? I know: who wouldn't. But you never know :P. If you would love to see this, there's an upcoming contest just for you: http://www.dreambuildplay.com/index.html. The prize that is currently hinted at is that the winner's game will be posted to XBox Live Arcade for everyone all XBox users to download and play.

Now that's just wicked cool!

Posted in Game Development | Programming | XNA
 #       Comments [0]
# Thursday, November 16, 2006

Well, it was bound to happen. Now you have some lawyers (or at least, people WELL more versed in the law than puny little me) stepping up to talk about the affect on Intellectual Property with the upcoming release of XNA. Check it out here.

I would comment myself but seeing that A) I'm practically a drooling moron when it comes to law (I probably couldn't even play one on TV (then again, I can't act worth crappola)) and B) It's like 12:30 in the morning and I'm friggen' tired and need some sleep, so technically I haven't "read it" completely yet.

Of course, it's probably a good thing I haven't read it. It would only come out sounding like some kind of dramatic space-opera poised to knock off George Lucas to become the first monstrous Space Guerilla to conquer "He-Who-Created-The-Dreaded-Jar-Jar-And-Should-Be-Killed-For-It" Lucas at King Of Space Mountain (and I'm not talking about that crappy little Disneyland ride Space Mountain either, "for the record" (as they would say in legalese (huh, who'd have figured, perhaps I can play a lawyer on TV after all seeing that I have the legalese down; that was easy)).

Anyway, like if you're into the whole Intellectual Property / Copyrights / Trademarks / Legal Issues that come about in regards to software, like, you should check the article out, and stuff. Peace!

Posted in Game Development | XNA
 #       Comments [0]
# Wednesday, October 04, 2006

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.

Posted in Game Development | Programming | XNA
 #       Comments [0]
# Tuesday, October 03, 2006

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 :).

Posted in Game Development | Programming | XNA
 #       Comments [3]
# Sunday, August 13, 2006

I know Dave, Tom, and Boyd had stated that they were pleasantly surprised that the announcements coming out at GameFest tomorrow hadn't been leaked. Well, close but no cigar (if this is indeed the announcement they were talking about). Of course, considering that it is already "tomorrow" on the east coast (and many of you won't read this post until "tomorrow" anyway), it's probably close enough :).

So, check out that link above :).

As a hobbyist developer myself, I have to admit that I did entertain thoughts in the back of my mind that it perhaps wasn't going to get any easier for us. Well, I'm happy to say that it looks like that thought was totally false. Not only was that thought wrong, it was WAY wrong. Microsoft (according to the Joystiq article) will release a free version of XNA Game Studio inline with their current Express products. So, for those of you enjoying writing games with totally free tools like Visual C# Express, you will be able to apparently continue doing so when XNA is released.

That isn't the most exciting part though. From what it sounds like, Microsoft is indeed going to support hobbyist game development on XBox Live Arcade. Of course, that isn't free. However, it currently appears that it will be fairly cheap, just $99/year. This could be HUGE. I mean HUUUUGGGGEEE. This opens the door for a Community-Powered XBLA, all in Managed Code nonetheless!!! Oh my, I'm getting tingles just talking about it :).

Imagine being able to write a game for your 360 yourself, AND be able to share it with friends. Heck, I can't imagine what the possible ramifications for the game industry are. If done properly, it could be history all over again. It could be "the next" Shareware model that will see a level of innovation not truly seen since the days of Commander Keen, Wolfenstein, and Doom. Will the next iD grow out of this new model. Could this be the next opportunity for hobbyists to be able to make a living of their game programming. Okay, I won't get carried away here, I can't imagine the same boom happening that happened in the 80s/90s. But geez, in some ways it could be even better.

I, for one, will HAVE to check this out when I can get my hands on it. Oh boy, good luck getting me to sleep tonight! Thanks guys!

(Andy, I can't wait to see you start writing about this stuff :P).

Update: I found this Microsoft PressPass Announcement

Posted in Game Development | XNA
 #       Comments [1]

Contact

Email Me Send mail to the author(s)

Calendar

<July 2008>
SunMonTueWedThuFriSat
293012345
6789101112
13141516171819
20212223242526
272829303112
3456789

About this site

Jason Olson's thoughts on Programming, Games, Music and Life in General

Disclaimer
The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.

© Copyright 2008
Jason Olson

Sign In
All Content © 2008, Jason Olson
Theme based on 'Business' created by Christoph De Baene (delarou)