I finally reached this first milestone: getting Ace on Steroids available for Play test on Xbox 360!
I reached a total count of 20 days of spare time development (actually, it’s exactly 19 days, 7 hours and 4 minutes) and I’m really close to get it all setup for release and start working on the tutorial videos explaining the inner concepts of the framework by example
The framework itself is also getting closer to a new version release which I expect to happen somewhen before the end of next week: I’m waiting for SynapseGaming to release SunBurn 2.0.18. I’m not totally sure but it may end up being the official Indiefreaks Game Framework v184.108.40.206 depending on the feedback I get from the beta tests on Xbox 360 and other platforms.
By the way, if you are willing to participate on the beta test for Windows or WP7, feel free to contact me and tell me which platform version you want me to send you.
If you’re willing to play test the Xbox 360 version, you can visit this page: http://catalog.create.msdn.com/en-US/GameDetails.aspx?catalogEntryId=8a21618d-3eb3-4c44-8aaa-b523c8f71b92&type=1read more
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:
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 capabilitesread more
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 viewread more
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:
- Targeted Xna Platform
- Current project status (Early phase, middlish, polishing or Almost hitting the publish button on AppHub)
- 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