Monday, July 25, 2011

Regarding Lana

I know Jim from working at Broadsword, and yes, he does like to invent languages and this one seems to be quite good so far. Just like me, he seems to have started out on a project and headed off in whatever direction his requirements drag him (at least that's why I suspect he added GC) and he's generating a language that looks up to scratch for general scripting work. But my mind keeps wandering off into what else is possible, especially in light of the last couple of years of experience I've had within my profession.

A language that provides virtually the same benefits as python or ruby, but small enough to run on a games machine (which is what Lana looks like to me) is very welcome, but my brain has been mulling over the possibility of a new language. I've been thinking about a low level language, one deeply entrenched in promoting the right way to develop software given the features of modern hardware. One driven by the fact of a future with thousands of cores at our disposal, driven by the need for cache coherency, driven by the possibility of reconfigurable computing on a high bandwidth vector machine architectures.

The basics for me seem to be, data descriptions, data stores, streams, and functions on streams. Obviously I've not fleshed this out in any detail yet, but from my experience of tearing down and refactoring code into a data oriented approach: there is little else to programming than having data and transforming it into other data. To this end, the shader architecture seems perfect for building upon to start this new language. The only shortfall I can see immediately is support for branchy data such as XML files or other hierarchical data formats. If you were only allowed to use shaders from now on, how would you parse an XML file?

Monday, July 18, 2011

Sounds like...

I went to Gamefest 2011, and although I'm no longer really an audio programmer, I attended two of the audio presentations on the second day. The first one was on voice recognition on the 360, and even though it was actually a kind of middleware tech speak advertising moment, it was quite interesting.

For me the highlights were the different things I hadn't really come across before:
Use of Mel-frequency cepstrum coefficients for phoneme detection
Use of the fisher kernel or polynomial kernel to make the support vector machine learning work.
use of the Viterbi algorithm to provide a good result from the Hidden Markov Model of the phonemes.

I've only previous used Markov Chains for compression and mistakenly thought hidden Markov Model was the same thing. Back to my university books on ANNs I guess.