Top

YotD Update

April 18, 2008

I’ve slowed down my posting quite a bit, and the reason is the game I’m working on is coming along a lot faster than I thought.
free image hosting
I had planned on posting a bunch of update videos, basically just capturing some of my unit tests and so on, partly because I thought they’d be interesting, partly because I thought they would generate interest in the project. I’m still not sure if I should do this or not. I want to, but since my own deadline is winter (a deadline I will probably beat by a good 6 months, at this rate), I’m thinking I should keep things under wraps.

A better reason (I think) to keep things quiet for now is that although I’m tearing through the game, it doesn’t look that great. I’m going to need to find myself an artist here at some point, because my noble efforts aren’t quite cutting it.

Camera Component Update

April 13, 2008

I’ve updated my XNA camera component quite a bit.

Initially, moves were handled by passing in a new position vector, a new lookat vector, and the time required for the camera to get there.  This was pretty horrible because it required a lot of calculations for very little payoff.  The biggest problem, though, was that certain moves were handled incorrectly.  For example, if I simply wanted the camera to turn around and look the other direction, the math wouldn’t necessarily turn in the direction I wanted.  So a simple 10 degree left turn might be processed as a 350 right turn.  Horrible.

What I have now is a much simpler system wherein moves are passed in as relative position translations, and relative xyz rotations.  Not only does this allow full control over the direction the camera turns, it also allows for a few other things, such as really simple absolute moves — there is only the intermediate step of subtracting the ultimate translation and rotation from the current translation and rotation in order to turn it into a relative move.  This also allows for zero error pause moves.  Just pass in two zero vectors.

Most importantly, though, the math is guaranteed to be correct, which means that the view and up vectors are rotated using the same matrix.  The result is an end to weird projection errors after a couple moves.

The video below demonstrates a couple moves:

XNA Gymnast

April 7, 2008

Walaber has released version 1.0 of Gymnast, a physics enabled gymnastics game built using XNA and the Farseer 2D physics library. Check out the trailer video below. Read more

An XNA Camera Component

April 1, 2008

I’m currently working on a camera component for XNA.  Ideally I’d like it to be really complete, but I know that ultimately it’s just going to contain the functionality I need for YotD:BI.  At any rate, here’s a little description of what it will do, and a video of the camera in action. Read more

A Few New XNA Tutorials

March 29, 2008

A couple new XNA tutorials you might want to check out popped up on my radar recently.

Read more

Paper Tetris: Hours 6-10

March 20, 2008

I managed to squeeze 4 more hours in on the 24 hour Paper Tetris project. Added items were piece rotation, score keeping, board scanning (to detect complete rows), some adjustments to the background graph paper to accommodate the width and height of the blocks, and some basic collision detection — well, basically making sure a move is legal by checking it against the game arena for any block clashes.

It might look pretty much done, but there are still a few things to do:

  1. In real Tetris, a move doesn’t end the instant your piece butts vertically against a fixed block. In this version, that’s exactly what happens. So a little delay needs to be added to allow you to slide pieces underneath gaps.
  2. The game background was separated into two textures, a background image (the graph paper) and a HUD texture. I still need to make the HUD look cool and look a little more functional.
  3. There’s a strange bug that might be mine, or it might be in the GameStateManagement sample. Basically, if you start a game, then end it, then start another game, we get a null pointer exception. Not sure why yet.
  4. The block drop speed should increase as points increase.
  5. Nothing happens when you lose yet!
  6. Sound and music!
  7. Some nifty effects? (if time permits)
  8. Input handling is a little whack. You have to hit the arrow keys (or gamepad controller) every time in order to force a move or rotation. I’d like that to remain for the rotations, but I’d like to handle left/right/down properly if you hold down a key/direction.

None of that should take very long, which will hopefully leave enough time left over for some eye candy.

Paper Tetris: XNA Tetris in a Day

March 18, 2008

In my last post, I mentioned that I’d be doing a Tetris in a Day article soon.

Since I’ve got a lot of real world work to do, my “day” is going to be spread out over a couple days. I am keeping track of time put in though, since part of this article is going to focus on exactly how fast you could build a simple concept game like Tetris using XNA.

Here is the result of the first 5 hours:

free image hosting
Paper Tetris: 5th Hour

As you can see, the concept is “Tetris on a Sheet of Paper”.  I’m kind of revealing my game geek here, but I used to draw out my favorite games in math class and do my best to “play” them when I was supposed to be paying attention.  I’ve always wanted to recreate that experience with a new game, and I’m using this Paper Tetris project to test the idea.

If you’re curious, the background graph paper is just a scan of a sheet of graph paper (with some adjustments to make sure things are evenly spaced).  I am also using the pretty awesome Art Rage 2 program for the game arena and the blocks, to get that “created on paper” look.

Stay tuned.  The first 5 hours saw most of the art completed, and the block & shape classes 70% complete.  All that’s left is to add a little game logic and some scoring, and of course input handling, and it’ll be ready to go.

Coming Up in March

March 16, 2008

As you know, the focus of Stromcode currently is on game development with XNA.

As of this post, I’ve covered a little bit of the basics: the model class, the GameStateManagement sample, and an overview of how to use shaders both on models, and as post-processing effects. I’ve also gone over how to use the open source Blender to build textured, animated models for XNA and use the new content processor in the SkinnedSample to render animations.

So here’s what’s coming up:

  • Game in a Day: a full implementation of Tetris in under 24 hours
  • Intro to HLSL
  • Handling Input
  • Audio with XACT

If you have any suggestions — things you want to know about, or things you want to know more about — let me know. Post a comment here and tell me what you’d like me to cover.

Why XNA Matters

March 10, 2008

tempest.pngI remember the first game that really grabbed my attention, and hooked me. It was Tempest, and I was enchanted by it. Read more

YotD: Cube Assault

March 3, 2008

I might as well announce this right away.  Part of the impetus for shifting Stromcode’s focus from win32 and related topics to C# and XNA is that I will be building a game for the first round of XNA community games, targeting the holiday 2008 date range.

The game is tentatively called Year of the Dragon: Cube Assault, which is a horrible name and not the final name at all.  For quite a while, one of my dream projects has been a very ambitious FPS called Year of the Dragon, something that I’ve had to satisfy myself with designing rather than coding due to its scope.  In the meantime, I’ve been trying to figure out how to at least develop a few mini games in the Year of the Dragon universe to support that project, whenever it may be that I’m able to do it.

Watch Stromcode for updates, videos, and more as the project comes together.

Next Page »

Bottom