Radically Cross Platform: Scripting with Kablooie

This Dog is Turing Complete.

This Dog is Turing Complete. (believekevin on Flickr)

How would you design your own ideal scripting language?  Would you go with a functional language in the LISP family, or with a more procedural style?  Would you offer object oriented organization?  Would large parts of your ideal language be recognizable as C or another common language, or would you “go for broke” with a domain specific language that (probably) only you will be able to read?

One of the fun things about computer science is that people will answer this question in very different ways, and they can all be right.  Almost everything (including your dog) is probably Turing complete.  And since the ultimate goal is accomplishing whatever operations the script is performing, whatever helps you express that well is the right answer, for you.

When implementing my cross platform graphical app engine, a set of characteristics began to crystalize for my ideal scripting language: (more…)

Radically Cross Platform: Animation

Linnet_kineograph_1886(This is a continuing series sharing design and implementation notes for a cross platform 2D game or graphical app engine I wrote in C# using Xamarin and Monogame.)

It was hard to choose next between covering the animation system, physics engine, or custom scripting language, as each is essential in its own way, and they’re also tightly integrated. But let’s start with animation. (more…)

Radically Cross Platform with Xamarin

XamarinMultiPlatform

Shared cross platform development is a concept that resonates very positively with all of us as programmers. It’s a nice outworking of the DRY principle, and seems like it would free engineers up to accomplish more.  So why is it so rare that we do it?

I recently asked myself that question while planning a personal mobile project, and here’s what I came up with: (more…)

Projucer: Coming Soon (video!)

There have been several projects over the last few years here at Art & Logic where we’ve used the excellent JUCE cross-platform C++ application framework. It’s pretty widely used in the pro audio world, since it has extensive support for all the kinds of things that you’re going to need there (audio I/O support, VST/AU plugin hosting, nice clean filter graph library). Even if you never deploy on more than one platform (and it targets not only Windows,OS X, and Linux, but also iOS and Android!), its ‘batteries included’ philosophy and clean, well-considered design make it a great choice for all kinds of applications, not just for audio/music.

(more…)