Archive for the ‘XNA’ Category
ShootMania updated
Cheez dropped a new rar of his source code tonight addressing a few problems that were in the first drop, and adding a few new features.
The game is fun; and I can’t wait to see how the rest of the levels will play out
Once you’ve played it, leave a comment on his site too!
ShmupMania preview released
Cheez has released a preview of his space shooter in development.
Give it a download; its fun to play and will give you an idea of what’s to come.
What am I doing with XNA?
Cheez asked me today when I was going to make a game with XNA. The answer is probably not for a long time, I don’t have any good ideas for one…none that i could even think about implementing now anyway. Instead I’m thinking about writing some components and/or some services that can be used with XNA.
To my knowledge there isn’t anything available yet to do regular keyboard input from within XNA, so that would be one component. Just to remain usable without a keyboard it would need a gamepad/mouse typing mechanism as well.
I have a few other ideas for components/services to think through before I decide what to work on first. Of course this competes with time I could be spending on work related things.
Welcome CheezLog
I set up a new blog this evening for my friend, former roommate, and constant target of my inane IM ramblings. I present CheezLog: An all out Cheezy experience in coding.
I’ll leave it up to him whether he wants to expose his name; so I’ll try to remember to call him by his nick, Cheez. His first post is up now; and he’ll be tackling the learning of both C# and the XNA framework as well as anything else cool that he can think of.
Nice coincidence
Interesting coincidence that my last post was so tied to my past experiences with Allegro. Turns out that Shawn Hargreaves is a developer on the “XNA Framework Content Pipeline” team, he is also the original creator of Allegro — though many many contributors have since taken charge of it.
XNA getting back to basics?
The latest post from the XNA team talks about what the XNA framework and components of it.
Most importantly for the beginner is the sample code at the end which sets up a very simple app.
*cue wavy screen effect*
As I mentioned before, I got into programming because I wanted to make games. I started with simplistic QBasic games, then moved on to non-gaming stuff when I discovered VB, then back to games to learn C when I found the Allegro library.
Ah….Allegro. I can’t remember exactly what version of Allegro was out at the time, but I do recall that it was still focused on just DOS development. Fortunately Windows 9x didn’t stand in the way of letting the DOS code work just fine. Thus I began learning C little by little making small projects here and there with Allegro.
You see, the beauty of Allegro at the time was that because it was just a DOS program you didn’t have to worry about windows messages, how to correctly interpret the various messages, and because it ran full screen you had full reign on what you wanted to do. Even better, Allegro was handling all the nasty stuff like speaking to the hardware and using interrupts for keyboard, timers, and video timing.
I don’t remember why I stopped using Allegro, I was fairly involved with the WIP builds for Windows that started using DirectX…maybe it was because I was getting into web development?
At any rate, I eventually went on to doing regular windows development, did a couple game like projects in MFC, but desired the simplicity I had when working with Allegro. I also looked at DirectX, but that brought another nasty with it…COM. I think at this time I hadn’t yet really understood pointers…I just used whichever . or -> caused intellisense to work. (Yes, I understand pointers now…I figured that out while taking a shower and thinking about some Q3 mod code)
*wavy screen effect*
So back to XNA, I mentioned the sample code before which I’ve also included below.
public class SampleGame : Game
{
private GraphicsComponent graphics;
public SampleGame()
{
this.graphics = new GraphicsComponent();
this.GameComponents.Add(graphics);
}
protected override void Update()
{
}
protected override void Draw()
{
this.graphics.GraphicsDevice.Clear(Color.Blue);
this.graphics.GraphicsDevice.Present();
}
static void Main(string[] args)
{
using (SampleGame game = new SampleGame())
{
game.Run();
}
}
}
The first thing I notice is the simplicity. My hope is that everything stays simple as you begin to add more components and demand more out of the framework.
For example:
- What kind of magic do you need to go through to have the keyboard act like both a game controller and in other cases like a character input device?
- Is the default game loop based on a timer to provide consistant update rates today and 10 years from now? And the corallaries: If not, how hard is it to add? If so, can you change the update rate?
A friend and I both had the same thoughts after reading that post, and to quote him: “XNA will let me do what I’ve wanted to do, write games, not write the code that lets me write games”