Call for new tests on IGP

Hi all,

I’ve been through all the feedback from the Indiefreaks Game Profiler  users and got all known bugs fixed. I’m now looking for some more testers so if you have a few minutes to give this real time Xna game profiler a go, that would be awesome.

The download link is the same:

http://downloads.indiefreaks.com/igp/v1.0.0.0/Indiefreaks Game Profiler for Xna Setup.zip

As usual, once you install it, you’ll find a PDF file explaining how to setup everything for your project to be profiled.

All feedback will be very much appreciated and, if as expected, this current build is bug free, I’m sure a lot of other Xna developers will find this utility very useful to track their performance gaps and potential memory leaks to spread the word ;)

read more

The Indiefreaks Game Profiler for Xna is here!

I’m really excited with this news as I consider it as a tremendous personal achievement.

I finally made it and I’m pleased to announce the immediate availability of the Indiefreaks Game Profiler for Xna games and it is totally free for use. ;)

You can download it here:
http://downloads.indiefreaks.com/igp/v1.0.0.0/Indiefreaks Game Profiler for Xna Setup.zip

If you want to have a quick view on what you get with it, here is a quick video reminding what it is capable of on all platforms supported by the Xna framework: Windows, Xbox 360 & Windows Phone 7.

It should be a good companion on your games development when looking to optimize things ;)

On a side note, I also just made available a PayPal Donate button on the sidebar of this blog so, if you want to support the efforts I put on this tool as well as the Indiefreaks Game Framework, I’ll be eternally thankful if you participate sharing some dimes so that I can pay the website and domain name hosting, as well as the inherent costs of such software development.

Thanks and let me know what you think about IGP ;)

read more

IGP beta status: New Code Injection System

I spent the entire week end talking with really helpful and talented .net developers that know very well how the .Net framework works behind the hood to sort out my issue with the code injection on the “to be” profiled assemblies relying on the Xna Xbox 360 Compact Framework. They really helped me a lot understanding what was going wrong and what were the options for me to solve the issue. I’ll therefore make a small tribute to them and their work:

Gael Fraiteur (Twitter, Website), creator of PostSharp which is an amazing and very easy to use AOP framework I recommend to use for your day to day developments on Windows, ASP.Net or WP7.
Jean-Baptiste Evain (Twitter, Website), creator of Mono.Cecil which is an amazing addition to the Mono framework expanding way more what System.Reflection library provides on the standard .Net framework
Philip Laureano (Twitter, Website), creator of the LinFu framework which is a very convenient framework adding mixins, inversion of control, DbC, and other language features to the Common Language Runtime.

Revamping IGP

So, to sum up the current situation, the current beta builds of the Indiefreaks Game Profiler work perfectly on Windows & WP7 (at least, I didn’t receive any bug/issue/feedback from the current beta testers).

However, as I pointed out on my previous blog entry, I’m meeting a very annoying issue with the Xbox 360 build. It compiles fine but it doesn’t work at all when applied to an Xbox 360 Xna project.

The reason is on the code injection and AOP approach: I’m using PostSharp to inject the profiling code before and after each method in the profiled assembly and the framework cannot process it because the Xbox 360 Compact Framework Runtime dlls are just stub assemblies used only to verify .net framework calls when building on Visual Studio.

I first tried to by pass the System.BadImageException I received on my tests, but it couldn’t be done unless Gael Fraiteur would add support for the Xbox 360 Compact Framework in PostSharp but their isn’t enough value (our potential customers) for him to go down this road which I totally understand.

The discussions during the week end lead me then to use Mono.Cecil to perform the code injection and I must admit than, even if I’ll have to play directly with IL byte cote, it is first very interesting to learn how it works behind the hood (for potential later optimizations on my own games and the Indiefreaks Game Framework) as well as extremelly porwerful.

I have moreover high hopes that it’ll make the Indiefreaks Game Profiler setup on your Xna assemblies even easier than it currently is as I’d be able to put it all in a simple console application that you’d execute on a Post Build event in your project properties or even potentially on a MSBuild custom task which would be even easier.

IGF v0.6.0.0 status

On a side note, while I was waiting for the great advices from the above mentioned .Net players, I opened up the Indiefreaks Game Framework code and documenting the new namespaces and classes for v0.6.0.0 release. I documented around 1/3rd of the new classes and as soon as I get that done, I’ll spend some time building a dedicated sample for the Steering Behaviors, Finite State Machine and Goal Driven AI. Once finalized, I’ll have v0.6.0.0 ready for release which I expect to happen in the first or second week of July.

Until then, be sure to check out the impressive work made by Indie Studios using the SunBurn engine for their Dream, Build, Play 2011 entries: they made a wonderful job demonstrating the engine capabilites ;)

read more

IGP beta: Xbox 360 issue & WP7 breeze

Well, that was to be expected: some beta testers reported a bug when using Xbox 360 distribution of the Indiefreaks Game Profiler. I’m working on it and I should hopefully get it running soon enough…

But at the same time, I’m really happy to show you that it works perfectly on WP7 projects (up until now ;) )

The current Xbox 360 build isn’t functionning properly since I’m meeting a very annoying bug at the Xbox 360 Compact Framework PE level.

In order for me to inject code inside the Xbox 360 targeted assemblies, I need to load a set of the Xbox 360 CF assemblies and then manipulate directly the IL bytecode to inject the profiling feature directly. Since the Xbox 360 CF assemblies are of a specific PE (Portable Executable) format, all my trials to get PostSharp to apply my injection failed.

I’m now looking into using directly Mono.Cecil or a AOP or IoC framework to perform the same but I have low hopes that it will work since it would require these libraries to be Xbox 360 CF PE agnostic which shouldn’t be the case since I’m probably touching some stuff that never got tried again except on the Xbox Homebrew scene…

I’ll keep you informed on my advancement on this topic and if I have to abandon the Xbox 360 Profiler for now which would be very disappointing from my point of view :(

read more

Indiefreaks Game Profiler Beta Opens

I reach a point in the Indiefreaks Game Profiler development where I need to get input from developers to see if it works properly on their own projects, find bugs and eventually improve it with missing features or adjustments. Therefore, I’m from now on accepting Xna developers for Windows, Xbox 360 and Windows Phone 7 projects applications to get an early build of the builds for a beta test session.

If you’d like to participate, please use the Contact form you’ll find in the top menu of the website and set the subject to “IGP Beta Application” and fill in the following information for better communication:

  1. Targeted Xna Platform
  2. Current project status (Early phase, middlish, polishing or Almost hitting the publish button on AppHub)
  3. Development frequency (Occasional, Every day, Every week end)

Once I receive your email, I’ll get back to you by email sending over the release builds for your platform as well as some documentation on how to quickly setup your project to use Indiefreaks Game Profiler.

In order for you to provide me feedback, I created a set of forums here so that you can post and share with other beta testers the issues or improvements you’d find while using it.

I thank you all by advance. ;)

read more
Page 1 of 212