Scurvy Media Logo Contest

So I’m really interested in finding a really good logo for the Scurvy.Media library.  Ideally, it would work in, or at least be related to the Scurvy Bones logo:

scurvy_logo_big

But that’s not a requirement.  I won’t go into the properties and virtues of a good logo, since if you’re the kind of person that could come up with a great logo, you’d know them better than I.  Though if I had to give any direction (aside from the scurvy bones logo above), I’d say that I really love farseer’s logo:

FarseerPhysicsNoBorder430X260

It’s so simple, and iconic … and explains exactly what the farseer physics library is all about.

What will you win?  aside from my undying gratitude … the winner will be forever recognized (with a link and info on any scurvy media distribution site) as the logo’s designer.

:-)

Comments off

Scurvy Media v0.7.2008.0427 Released!

I’m happy to announce that the next version of Scurvy.Media has finally been released :-) My original plan to support audio in this release was subsumed by some actual requests for the following features/fixes.  It’s rather exciting to see the library actually being used for some projects and I hope that these items, along with further feedback will propel the project to greater and greater heights.

Download

https://www.codeplex.com/Release/ProjectReleases.aspx?ProjectName=ScurvyMedia&ReleaseId=8615

Release Notes

  • XBox 360 Project Support!
  • Streaming playback mode is now multithreaded.  On xbox, it defaults to Core#2.
  • Texture setting is now double-buffered to avoid stalls.
  • Internal video related functionality has been moved to the Scurvy.Media.VideoModel namespace to avoid crowding up the root Media namespace.
  • Fixed InvalidOperationException bug.  Description here. This was a side-effect of the double buffering feature above :-)
  • Improved runtime allocation profile slightly by removing debug write statements (lots of string allocation).

Known Issues

  • Using “In Memory” playback type throws an exception. This will be fixed in a follow up release.
  • Using compression partially garbles the texture playback.  There is an active thread on the XNA forums about this here.  Once resolved, the content pipeline will be able to support larger videos, and have a smaller disk footprint of the processed XNB file.
  • Importing a large video will still throw an OutOfMemoryException.  I have a bug logged on the XNA Connect site.  However, it has been closed with no hint as to whether it was deferred, or solved.  If the compression issue noted above is resolved, it will mitigate this issue.

Comments off

XNA Wiki

Check out the new XNA Wiki.  I really like the organic nature of wiki’s, so hopefully this will take off and become a serious reference for anyone doing anything with XNA.

Comments off

New Version of Scurvy Media

If all goes well, I should have a new version of scurvy media out sometime this weekend.  stay tuned for more details :-)

Comments off

All dressed up, nowhere to go

So I’m fairly excited, having just installed phpMyID, a simple OpenID provider that I control on my own website, I find myself wanting to find somewhere to log into.  Sadly, looks like aside from commenting on random blogger blogs, there’s not too many people that accept openid. 

Wouldn’t it be nice if the following accepted openid:

  • Forums
  • Blog Comments
  • Sites like Digg, Flickr, and Facebook

Here’s a clue … if you are even remotely involved in building web-based software.  please be familiar with this: http://www.dataportability.org/

:-)

Comments off

XNA Game launcher should show on my gamercard

I filed a suggestion on XNA’s connect site:

https://connect.microsoft.com/feedback/ViewFeedback.aspx?FeedbackID=337992&SiteID=226

I think that the launcher should show up on your gamercard. I would be proud to show the fact that I had recently been deploying and developing XNA games to my xbox :-) This could also come with some achievements that obviously only XNA Creators Club members could get, like:

  • “Deployed an XNA Game”
  • “Used Multithreading”
  • “Used Xbox Live API”
  • “Deployed 100 Different Games”
  • “Had a Game Published”
  • “Peer Reviewed Someone Else’s Game”
  • etc.

What achievements would you be proud to show off as a creator’s club member? add feedback/votes to the connect item if you agree :-)

Comments off

Triumphant Nerds

After watching parts 1 and 2 of the 3 part documentary Triumph of the Nerds (http://www.pbs.org/nerds/), I have to say that I find myself inspired by the fact that, arguably, the entire personal computer revolution began as a result of what is today known as user groups.  It makes me extremely proud of the fact that I founded the Orlando .NET User Group (http://onetug.org).

Getting a glimpse into the passion and determination of those early pioneers also inspires me to start plugging back into the community.  An aspect that I’ve largely been disconnected from for the past two years due to work and life. 

It is so important to think of the community as a whole instead of only your own personal ambitions.  Who knows what world-changing effort will find it’s roots in the central florida developer community.  I don’t know, but I’d like to say I was there :-)

Comments off

Ain’t life grand

Recent happenings:

  • I’ve joined Twitter to see what all the hullabaloo was about.
  • Met up with the guys from Likemind.us … cool bunch.  Turns out the guy that runs those meetups, Alex Rudloff, was one of (or the?) guys that built twitterholic.
  • Work is going quite well.
  • Planning on going to the next ONETUG meeting this coming thursday.
  • Have actually rediscovered the joy in coding for fun :-)
  • Work is underway for the next version of ScurvyMedia.  The one where you can sync up the audio track to the video.

In short … life is grand :-)

Comments off

The Difficulties of Audio

So now that I’m looking @ the next features for Scurvy Media … the issue of Audio comes up.  Currently, if you add a video to play in your XNA project, it will be silent.  Now, the problem is that the “audio pipeline” is completely separated from the content pipeline. 

Even though technically speaking, the XACT project is added and processed by the content pipeline … the audio is still gated by the requirement of wave forms being added to the XACT UI.  Thus, being able to add audio items programmatically is an issue.

I toyed around with the possibility of extracting the .wav and programmatically creating an xact project from the video importer … but comments on the forums suggested that having more than one AudioEngine instance wouldn’t be smart.  So it looks like in the meantime, I’ll have to simply provide a separate tool to extract the audio from the .avi, and then an API to sync up the audio playing with the video.

If anyone has any ideas, they’d be very welcome :-)

Comments off

XNA/XACT Pre-Mortem

Hehe … poking around on the internet, I actually came across an old post of mine on the old XNA forums from when they were on the MSDN forums.

I believe I had posted this on my blog previously as well, however, since I changed blog engines this post has been lost to the ages, so I figured I’d reprint it since it’s still good info.

After reading this very useful post-mortem and working with XNA and XACT for a bit, I decided to do a bit of a pre-mortem to share what I’ve learned so far.

  • You should only have one instance of AudioEngine. You can have as many sound and wave banks loaded into the same engine as the hardware will support, but the only restriction is that they all share the same global settings data. This leads me to deduce that the best practice is to have one XACT project for your entire title.
  • XACT is already multithreaded. Apparently, the heavy lifting of playing audio on Xbox happens on hardware thread 4 (the second thread of core #2). Calling AudioEngine.Update on a different thread is not likely to bring any performance gains unless you “have millions of crazy curves and variables and things”.
  • Despite my initial confusion, XNA does in fact support streaming wave banks. All you have to do is designate the wave bank’s Type property as Streaming, then call the WaveBank class constructor that takes the offset and packetsize arguments.
    The main issue I have with this is that it is not documented very well. They try to provide guidance on what to set the packetsize argument to, but the guidance is for streaming from a DVD (something XNA doesn’t support quite yet). The documentation should also provide guidance for a title running from the HDD.
    Also, it’s important to note that you must call Update at least once and check the Isprepared property to make sure it’s true before attempting to play any sound that uses one of those waves. Thankfully, this is documented in the streaming constructor topic, but I think there should be a “how to” article on how to stream audio.
  • According to the docs, XACT supports in-game auditioning using a special development-only API. I have not seen that these APIs are available in XNA … this would be a pretty cool feature :-)
    The toolchain in Superman Returns: The Videogame had a very similar feature where the console would run a tcp/ip server that would change audio properties at run-time. The tool running on the audio designer’s PC would then send messages when its knobs and switches were manipulated. I wrote the piece that ran on the PC (using C#, winforms, and .NET Remoting) … based on the feedback I got from the audio guys, this really helped them nail the audio mix. So I would love to see similar functionality be available to XNA titles in development.

All in all, I think XNA and XACT does a pretty good job of leading people into a Pit of Success. I’ve still got a lot to learn, but I’m really enjoying audio programming so far. Hopefully that will be reflected in my Dream.Build.Play entry.

Sadly, my dream.build.play entry never got to see the light of day.  It was going to be an audio only game in the spirit of “In The Pit“.  Perhaps someday it will still see the light of day … no pun intended ;-)

Comments off