Wednesday, May 16, 2012

One Year Later

Seriously? It's been over a year since I updated this blog? Time flies when you're having fun I hear, but it also seems to fly when you're BUSY AS HECK.

Remember this?
It's gone. "WHY?!" you ask? Well there are several reasons including the MDI interface being unwieldy in real world use. Also using the XNA content pipeline project as the storage turned into an absolute nightmare. Winforms, in general, is falling out in favor of WPF. Needless to say, there are a great many reasons the editor died.

The good news however is that the project has been restarted from scratch using all the latest technology of Visual Studios 2010 (express edition anyways) using WPF and the MVVM pattern.  

Is that the Ribbon UI everyone's been hating in the new versions of office? Yes. Get off my back.
I am happy with how it's looking so far. The map editing functionality is pretty much all there. Multiple layers, multiple tilesets, fill, draw, erase, etc. I'm also using the built in DataContract annotation in the .NET framework to help with loading/saving map files. Originally a simple 100x100 map file was around 3mb thanks to XML and my verbose element names. I wrapped loading/saving with a CompressionStream and now the files are less then 100kb. I'd say that is an improvement.

Is that it? That's all I've accomplished in a year? Well yes and no. While I have lost a lot of time to rewriting the editor; I have gained a lot of knowledge on my travels in the world of C#. I am foregoing the concept of component driven design (as was all the rave in my last post) and gone back to a tried and true inheritance model. I know it isn't perfect, but I have too little time to spend on game development these days as I am now a father.

My little girl was born on December 7th, 2011, and I couldn't be happier.

I am hoping that by rekindling this blog, I can find the inspiration to complete my game. I first need tools so that's why I've spent so much time with the editor.

Until next time!

Monday, February 14, 2011

I suck.

So it's been about four months since my last post. What does that mean? Have I stopped working on my game? Have I stopped programming at all? NEVER!

It's true though. I have sucked at updating this blog in the last four months. I've been working on my game though. Directions have been shifted and roadblocks have been lifted. I am now deeply entrenched in the concept of component-based game design. I've eliminated the inheritance tree that I was so fond of and began distilling it down into behaviors that can be attached to a game entity. Behaviors contain attributes that can be shared using the entity as a sort of gateway. When a behavior is added to an entity it adds it's attributes as well. This way a "Render" behavior can access the "Position" attributes to know where to draw the entity.

What of the tools you ask?

What's this? A loss of progress?! NOT SO!

The Sprite Editor - Simplified!

Behold! I have in fact made forward progress. I've simplified the tools so that I no longer need to manage the asset tree. It was a nightmare waiting to happen and required me to create my own asset management in my game when the perfectly useful content pipeline in XNA was just waiting to be used.

I'm going to try and post something every day this week to kick my butt into a habit. We shall see how that goes though.


Wednesday, November 10, 2010

Sprites and Cells

Ha! Less then a week later and I'm already posting again! Success!

The sprite editor which I discussed last week has come together pretty well. I ended up dropping the idea of display a list of the animations and decided to go with something a little flashier: animation previews. You can now see a preview of all animations in a sprite without having to click anything. This will hopefully be visibly appealing AND useful.

The Sprite Editor.
I've tried my best to make the interface intuitive. I know the application is only going to be used by me, but if I can't use my own software then what kind of developer would I be?

I've begun work on the map editor (referred to as a cell editor for reasons unknown to even me) and I am thus far pretty happy with it.

The Cell Editor.
Who knows if this will be the end result though. I've changed my mind in the past on how I want things to work. Maybe I'll even put the effort into changing the name 'Cell' to ... you know ... 'Map'.

I'm going to try to start posting more information about the code for this editor and my game. If nothing else I'd like this blog to serve as more then just a reminder to me that I have projects I should be working on. I'd love to be able to host guides and articles about game development in general. Today, however, I must focus on real work. I do have a full time software development job that takes precedence over everything game development related. A shame to be sure.

Until next time...

Thursday, November 4, 2010

The Editor

Yeah. So I'm not so great at updating a blog at regular intervals it would seem. A life lesson I guess.

Progess has been made on my current project "Frozenmoon" which is an action, dungeon-crawl in the same vain as Gauntlet and Dungeon Explorer.

I've begun work on a game editor (textures, tilesets, sprites, maps, etc) because I know that the if the process of creating content is difficult then finishing the game will be difficult. The editor will use a simple MDI approach to organizing internal windows. I'm kinda a fan of the MDI interface because of how easy it is to keep a large number of different windows contained.

An example of the MDI interface.

Since I'm using XNA I've made it my mission to use every pieces of the framework. The content pipeline component allows me to automatically serialize and deserialize information in both the editor and the game. This way I can build something in the editor and load it directly into the game without having to write my own Export/Import functionality. Score one for lazyness I guess.

So far I've been able to complete the texture and tileset pieces. Since both are relatively straight forward they were the first to be done.

An example of the Texture and Tileset components.

The sprite component is a little more complicated. It is essentially a tileset that also has a list of animations (start frame, end frame, fps, looping). I've made it so you can select a range of tiles and create an animation from them, but I'm struggling on how best to display animation information. Maybe a datagrid? Maybe a simple list? I'll have to experiment!

An example of the Sprite component.

Take Care!
(hopefully it won't be another two weeks until I update again)

Friday, October 15, 2010

Who am I?

My name is Kyle Smith. When I was about 13 years old my father brought home a computer that his boss was about to throw out. It was a Zenith 8088 clocked at 4Mhz (with a turbo button that upped it to a blazing 8Mhz). Shortly after giving it to me I discovered my calling in the form of GW-BASIC.

Over the years I slowly upgraded my language skills (and my hardware). I worked my way through QBasic 4.5, QuickBASIC, QB7.1, Visual BASIC, C++, Perl, and PHP. College brough me into the world of .NET and with that VB.Net and C#.

I am now a lead software developer focusing on .NET and Database applications. Oh, and my employer? The very one who gave my father that very first Zenith 8088. Talk about investing in your future.