Subscribe to GameFromScratch on YouTube Support GameFromScratch on Patreon
11. May 2012

 

Alright, I have been programming long enough I shouldn’t have made this mistake, but… I did.  In the comments section for Working with Spritesheets, there were a couple comments about being unable to run on the device.  I swore when I was testing this I ran it on my actual Vita, but apparently I did not.

 

I really should have, because frankly it doesn’t work.  It just hangs and makes your Vita extremely unhappy with you in the process.  Running it through the debugger, I found it was dying a hideous death on this line:

XDocument doc = XDocument.Load ("application/" + imageDetailsFilename);

 

Hmm, nothing out of the ordinary there.  So off to Google I go!  Ends up that this is a bug in the SDK, welcome to the wonderful world of beta software!  From the same thread, the fix is fairly straight forward.  In Walker.cs change the beginning of the constructor to look like this:

 

//XDocument doc = XDocument.Load ("application/" + imageDetailsFilename); FileStream fileStream = File.Open( "/Application/" + imageDetailsFilename,FileMode.Open); StreamReader fileStreamReader = new StreamReader(fileStream); string xml = fileStreamReader.ReadToEnd(); fileStreamReader.Close(); fileStream.Close(); XDocument doc = XDocument.Parse(xml);

 

You will also need to add SYstem.IO to your using declarations. Now everything will work fine when deployed to an actual Vita.  Hopefully Sony fix the bug in Xdocument.Load soon.

 

 

In the future I will make sure I test all tutorials on my device before pushing them live!

Programming


25. August 2011

 

I am currently working on a beginner level tutorial using SFML and just ran into a show stopper that I want to share.  If you are already using SFML 1.6, this is probably old news to you, but it caused me enough pain that I want to share it here.  Maybe someone in the future will find this on Google and they wont end up wasting a couple hours like I just did.

 

Anyways, I was developing away at my game and doing most of my work on my portable laptop, which has an integrated Intel chipset.  On occasion I did a little bit of work on my primary development laptop which has a higher end Radeon GPU and everything works fine.  Anyways, earlier this week Deus Ex: Human Revolution came out and PC gaming being what it is, I had to download and install the latest drivers.  Fast forward to today, I load up the project make a few changes and:

 

image

 

Completely hung.  Zero response whatsoever.  If I run the same application outside of Visual Studio, it requires me to kill it in Task Manager.

 

So I jump to the logical conclusion and figure it was something I changed recently in my code, so I start hacking and slashing out the changes until I am back to nothing.  Still hangs.  WTF?  Now I start hacking even more until the point I get to my main() consisting of a single return statement and still it hangs!  WTF x2?  Obviously at this point it’s a linker problem, and my lost likely culprit is SFML, so off to Google I go!

 

End result, yes, the dynamically linked version of SFML apparently has a bug with the OpenGL implementation of modern ATI drivers.  Yay.  Apparently it is only in the dynamic version of SFML, so you can switch to static linking and it will go away, but when writing a tutorial, this kind of added complication simply isn’t realistic.  That said, there is a work around and there is a fix... of sorts.

 

Apparently the problem is caused in atigktxx.dll and you can grab a copy that works here ( along with additional explanation ).  I haven’t an actual clue what the bug itself is ( it’s wayyyyyy outside my code ), but by including this copy of atigktxx.dll in your executable folder, it overrides loading the one that is installed on your machine, thus preventing the bug.

 

Oh, and although that post was in February and the fix is “coming soon”, the problem still occurs.  I do however believe this is fixed in the 2.0 version of SFML, but please don’t quote me on that!

 

So, long story short, if you are using SFML 1.6 and you want to support ATI cards with recent drivers, ship your game with atigktxx.dll in your executable directory.

 

Oh and moral of the story…  don’t always go blaming your code first!  I kow have a ton of damage to undo that I needlessly caused!  Moral number two…  ATI still suck at making drivers!

Programming


11. May 2011

 

So I finally got around to moving from 2.56 –> 2.57 and apparently it some API changes seem to have broken the Unity importing.  In my case, once saving the .blend file to my assets directory I get an error message of “Blender could not convert the .blend file to FBX file”. The solution was found on the Unity forums in the post by user Woodn.  For simplicities sake and due to the importance of this fix, I will repost it here.  Again, all credit goes to woodn for compiling this fix, and to alewinn and jorrit.  Thanks!

 

Ok, collecting all infos until unity is updated officially:
Credits go to jorrit and Alewinn!
Mac:
- Get Blender 2.57a from blender.org or a recent build from graphicall.org and unzip it somewhere. Assign blend files to open with the just downloaded blender.app.
- Browse to the Unity folder and right-click "Unity.app" and select " Show Package content". Then browse to the folder Contents/Tools/ and backup "Unity-BlenderToFBX.py". Then replace it with the one in the attached zip file or change the lines described by alewinn a few posts above yourself.
- Done.

 


Win:
- Get Blender 2.57a from blender.org or a recent build from graphicall.org and unzip it somewhere. If you use a zip package, make sure you register the blender.exe by executing "blender.exe -r" in a cmd prompt or with a shortcut. If you use the installer, you don't need to do this.
- Browse to the C:\Program Files (x86)\Unity\Editor\Data\Tools folder and backup "Unity-BlenderToFBX.py". Then Replace it with the one in the attached zip file or change the lines described by alewinn a few posts above yourself.
- Done.

 

Once I replaced the .py script and restarted Unity, everything worked normally again.

File attached below.

Unity-BlenderToFBX.zip (903.00 bytes)

Art


AppGameKit Studio

See More Tutorials on DevGa.me!

Month List