Tuesday, July 27, 2010

Version 2 Documenation

The Version 2 Documentation has been updated and is much more readable than before.
Added a Documentation page for the Version 2 Game Components, which can be found in their own release.

Thursday, July 15, 2010

Example Projects

I'm again starting to write some example projects, sorry if they come out a little slow I'm a bit preoccupied with other projects and things in life at the moment. You can find these examples in the MedaiFire account I created for things related to this project.

A link to it can be found on the homepage of the XnaHelpers codeplex page. The URL is actually a mediafire one but since the sharing url was super long (probably would have taken up half of the screen) I just used bit.ly to shorten it.

Tuesday, July 13, 2010

Version 2 Source Code

To download the Latest Version of XnaHelpers V2, goto the Source Code tab of the codeplex page, do NOT download it from the downloads page, since changes I make to the library though Tortoise HG do not update anything inside the Zip file in the downloads tab.

Xna Helpers V2 Changesets

Thursday, July 8, 2010

Version 2 Examples

I'm working on some examples on how to do some common things in the XnaHelpers V2 library. Right now I have an Input example for windows, I'm working on one for the Xbox. I plan to make one on File I/O and using the GuideHelper efficiently. I also plan to make some upgrades to the library, the changes will show up in the source code tab so check it out once in awhile to see if there's anything new!

Tuesday, July 6, 2010

Now using TortoiseHG for source control

Version 2 is probably going to remain the main release for awhile, I'll just use Tortoise to add patches or small new features. Keep an eye on the Source Code tab to see if there's a newer version!

Monday, July 5, 2010

Version 2 Documentation

Since the method of setting up Version 2 won't change even after the stuff I'm going to be adding I'm going to start uploading pieces of the documentation to the Documentation tab of the Codeplex page. So keep an eye out for new pieces of documentation.

Up for download

I've decided to update a Alpha build of what I have written so far which will give me an opportunity for user feedback and to see if anyone is actually still interested in the project. If there are any questions on how to use a piece of it then please post something in the discussions and I will answer it promptly.

Version 2 Dev Update

Right now I have majority of the library done.
Right now I am cleaning up the setup to make it a little neater and tweaking how things are accessed.

Mostly all of the things are done,
File I/O - includes Xml Serialization and Deserialization along with 2 new classes FileReader and FileWriter

I'm going to redo the AnimatedSprite class and make it more single purposed since most games will have their own setup.

I've removed most of the Drawing helpers since they are frankly kind of useless. I have left a couple in for debugging purposes in the Helpers class.

I am going to be bringing back the Bar class but not the Box class. There will be no BarManager as there was in previous versions since most games will have their own managers.

Once it's all done I will start creating the documentation and writing some code samples which may take awhile so I'm planning on having it released around the 10th or 11th.

Saturday, July 3, 2010

Version 2 Update

Just a quick little update.

GuideHelper class is now finished, probably will touch it up a bit but it works like a charm now. Will probably port it to a game component to make it more universal.

InputManager class is now finished, maybe some more touchups but not that much. I am going to look into supporting button combos but to me it makes more sense to leave it as it is and make an example of how to create something like that.

Once I'm entirely done with all the code I will be putting together a documentation and hopefully some samples on how certain things can be accomplished.

Friday, July 2, 2010

Version 2 Dev Update

Version 2 is coming along nicely.
A major improvement over the old setup I was using. Just about everything is public so there's no private variables that you wish you could access, but there are still accessors to keep everything neat and tidy. Right now V2 is setup as a game component so all you have to do is add it in your game class's constructor and then you have access to everything in the static XnaHelpers class which is updated by the game component so you never have to call anything like Update or SetVariables for it.

What I have so far...

*Xact and Non Xact audio manager classes to make playing sounds easier.
*FrameRate counter game component
*Input class is almost entirely rebuilt
*Built in spritefont so you can print out debugging information without every manually loading a spritefont to do so! - since content embedded in a assembly file cannot be unloaded I will release a version that doesn't include the font embedded in it

Whats in development

*Guide helper to make it easy to use the guide's, keyboard, messagebox ect ect (I'm actually thinking about writing my own versions of these since the guide can be painstakingly slow)
*Storage systems for both the xbox 360 and Windows platform
*Data serialization

Right now I'm not sure but I may make a shader to draw simple primitives such as lines but I don't have alot of experience with shaders but this seems like a good time to learn so keep an eye out for it.

Tuesday, June 29, 2010

Version 2 In Development

Right now I'm converting the whole project to a neater and more portable GameComponent so it does all of its work behind the scenes so you don't have to manually call the methods. I'm hoping to bring some big improvements that will really make the library more useful. I'll be posting more updates as I get more done but for now here's a list of things I plan to implement.

*Add portable components that can be used in other projects and are not dependent on the rest of the library, e.g. Framerate counters and other statistics gathering classes
*Storage handlers - This is primarily for the Xbox 360 but it will have its uses on the Windows platform.
*Xbox Guide helper
*Possibly an Exception handler class
*I'm going to try and create a primitives class that will make it easier to draw things such as boxes or lines - most likely will be strictly for debugging until I learn how to make it efficient at drawing a large quantity of them. Will be useful for things like collision detection.
*Data Serialization - I'd like to add a different way of serializing and deserializing data in other types of files other than XML since xml to me is a bit annoying to setup for serializing. Obviously it probably won't be as complex and will mainly be used for something such as writing scores to a file or simple user settings

Hopefully I'll come up with more stuff to add. Again if anyone has any ideas or comments email me! I'd love to hear anyone's ideas on what to add or just what they think of the project in general.

Sunday, June 27, 2010

Version 1.3 is up for download

Version 1.3 is up for download on the codeplex page along with the documentation for it.

Friday, June 25, 2010

V1.3 Update

I've just finished the new and improved Animation class. It is a complete rewrite from the old one.

Now supports:
*2 Dimensional Sprite Sheets - NOTE: They have to be even, if you have a 5x5 sprite sheet it must have 25 frames i plan to change this in the future.
*Allows an array of integers to be passed that controls how long that particular frame will be displayed. If you have 5 frames the array would look like...
int[] times = new int[] { 10,20,50,1,100 };
This will be make the first frame last for 10 milliseconds, the 2nd for 20 and so forth. All times are measured in Milliseconds.
*Positions are based off of Origin, however you can choose to draw as if it were at the upper left corner of the frame.
*You can choose to play between 2 sets of frames, eg for an attack you could have the inital attack and then something else. E.G.. animation.Play(1,5,6,10); This will play frames 1- 5 ONCE then loop through frames 6 - 10 until it is stopped. I'm going to add a feature that lets you decide weather it will loop the 2nd time or just stop as well.

There are numerous other updates and I will be writing a documentation for it when I release it. All of the code is documented so it shouldn't be very hard to read. It is not perfect at the moment though, I will be working to make it more efficient as I work on this release and future releases.

Again if anyone has any ideas or requests of things they would like added to the library please Email me at AB4@comcast.net

Happy Coding

Wednesday, June 23, 2010

V1.3 Update

Right now I'm working on V1.3, probably would have had it out sooner but I've been mainly working on my game and a few technique tests but I hope to have it released in a couple of days. Things I plan to add.

New ways to access items from the Variables class, eg a Load method so you do not need to use Variables.Content.Load ect instead you would just do Variables.Load(string)
Not sure how useful it will be but I've found it annoying as I've been using it in my game.

Several improvements to the animation class to make it much more flexible.
Right now I'm adding 2 dimensional sprite sheet support, more specific loop control such as first loop play frames 2-5 then on the second loop play frames 3 - 5. I'm not sure if I will get it working in this release but I would like to add the option to add how long to display each frame so if you have an idle animation that goes into a animation or one frame is very long you will only need to specify that in code and not make 30 copies of the same frame.

Sunday, June 20, 2010


I'm running low on ideas for the library so if anyone has any please email me.
Right now I'm working on my own game and have created my own little version of the library with things I've found that I've needed but most of it is propriety and cant be made universal so I might just make some tutorials on how you can modify it to suit your needs.

I plan to add things like a Sound manager class once I learn more about using them efficiently, upgrade the Animation class to support 2 dimensional sprite sheets and more control such as at the start playing frames 1 - 5 then loop through frames 3 - 5

Tuesday, June 15, 2010

V1.2 Released

V1.2 is now up for download on the codeplex page. I will be updating the documentation on the codeplex page right after I post this so it should be fully updated by the time anyone sees it.

Monday, June 14, 2010

Dev Update 6/14/2010

X86 upgrades to the project are done. Working on the Xbox changes, mainly just cut and paste from the X86 version with a few new features.

*Adding new extension setup for Rectangle and Texture2D extenders. The namespace is now split into 3 namespaces.

-Contains extenders for calculations, can be used with other namespaces
-Contains draw methods for both Texture2D and Rectangles and call their own SpriteBatch.Begin and End 
-Contains draw methods for both Texture2D and Rectangles, uses the passed spritebatch to draw. Begin and end must be called before and after a draw is called.

NOTE: The 2 drawing namespaces technically can be used together since they all have different arguments but I would recomend using one or the other. note that it can be more efficient to have a minimum number of SpriteBatch.Begin and End calls.

I plan to have it uploaded sometime tomorrow onto the codeplex website and I will have the documentation updated shortly after

Sunday, June 13, 2010

Dev Update 6/13/2010

Right now I'm running short on ideas and am currently working on my own game so I haven't been adding many new things. Since I've been using it in my game I've come up with some things to add that will hopefully make it more useful.

*Spritebatch dependent and independent - Since SpriteBatch.Begin and End can be costly if used in excess amounts I'm going to have 2 copies of the extenders namespace that are used for drawing, one has the begin and end included while the other will just draw it and use the begin and end that you called around it.

*Reference to the Game class - will make exiting the game and probably other things that I can't think of at the moment easier to do. A method has been implemented into the Variables class that will close the game.

These are the main ones, hopefully I will be able to come up with some other things to add or change. If anyone has any ideas please post or email me at AB4@comcast.net

Wednesday, June 9, 2010

Version 2 Update

For now I think I'm going to abandon the Screen Manager, after coding pieces of it and thinking of ways to make it useful in different situations I've decided to not implement it into the library. Instead, I will be posting tutorials and samples on how to create them in my Xna Tutorials blog. Link in sidebar.

Version 2 In development

I'm currently working on Version 2 for both Windows and the Xbox 360.
Right now I'm working on developing a screen manager that will have screens that are Xml Serializable so that one day I might be able to make an Editor for them. Once I get that done I will work on polishing it, e.g. making it fade to black when going to a different screen ect...
Hopefully once that is done I will be able to get a XboxGuide class working for the Xbox 360 version to aid in showing a players friends list and I plan to add a Gamertag helper to assist in getting things such as GamerPicture, Gamertag, and so forth.

Version Release

Version 1.1 has been released!
It now is written in for both Windows and the Xbox 360.
Additions can be found on the codeplex website along with the documentation but I will list a few here.

Windows & Xbox
Bar and Box manager
More texture2D and rectangle extenders
Xbox only
Methods for having the user select a storage device

There are links on the sidebar to the codeplex project along with one that goes directly to the documentation.

Dev blog

Development for my Xna Helpers project