Shader Syntax Coloring Plugin in MonoDevelop Addins Repository

Xamarin 5.0 provided the impetus to finally put the shader coloring plugin into the live Xamarin Studio Addin Repository. This will host and build versions of the plugin for both Xamarin Studio 4.x and Xamarin Studio 5.x. An added benefit is you can search, download and install the plugins within the Add-in Manager in MonoDevelop. The steps to do this in Xamarin Studio are simple:

  1. open the Add-in Manager from the menus
  2. on the Add-in Manager Update tab hit ‘Refresh’
  3. on the Add-in Manager Gallery tab search for ‘mime’
  4. install “Unity Mimetypes”

Build Something

I write this blog, in part, as a response to the impermanence of Twitter and Facebook. If I’m going to have the audacity to post publicly on the internet then I want it, good, bad or indifferent, to be permanent. I want to build something.

You’re fucking swimming in everyone else’s moments, likes, and tweets and during these moments of consumption you are coming to believe that their brief interestingness to others makes it somehow relevant to you and worth your time.

We’re just starting 2014 and Rands nails it again:

When you choose to create, you’re bucking the trend because you’re choosing to take the time to build.

And that’s a great way to start the year.

Go read The Builder’s High.

C# Memory Management for Unity 3D

If you’re developing games in any space or developing anything in the mobile space you’re going to have to be concerned about memory management. A lot. It doesn’t matter if you’re doing it manually, reference counting, using ARC or garbage collection. If you’re pushing the envelope in any way the details of how memory is managed matter greatly. In Unity 3D the C# garbage collection is one of those details, and there’s very few articles which deal with it specifically. Wendelin Reich just changed that:

I learned the hard way that in game development, you cannot rely on automatic memory management.

Wendelin Reich’s C# Memory Management for Unity Developers

Visual Studio 2012 Supports Debugging Optimized Code

Bruce Dawson reveals this great feature. A year ago this would have been incredibly exciting to me. Even now it’s great news for native developers using Visual Studio:

It turns out that Microsoft shipped this feature in Visual Studio 2012, but forgot to tell anyone. This could be the most important improvement to Visual Studio in years but it s been almost top-secret.

Microsoft really should be shouting about this. Debugging Optimized Code – New in Visual Studio 2012.

What’s really amazing is that this isn’t considered a make-or-break product feature. IIRC Watcom C++ did this around 1996. Visual Studio survived. Watcom didn’t.

Playscript: Actionscript For .NET

Miguel de Icaza:

PlayScript is a superset of ActionScript and it was based on Mono’s C# 5.0 compiler. PlayScript is ActionScript augmented with C# 5.0 features.

Zynga’s PlayScript allows developers that have some ActionScript/Flash code to bring their code to any platform that supports the ECMA Intermediate Language (Microsoft .NET and Mono) and blend it with other .NET languages.

But the PlayScript has a fabulous feature, it allows mixing code in both C# and PlayScript in the same compilation unit.


There have been a bunch of interesting new languages on the .NET platform which haven’t reached critical mass. Are there enough ActionScript developers and code out there to make PlayScript viable?

Syntax Coloring Shader Files in Xamarin Studio 4

Since Xamarin released the renamed MonoDevelop 4 as Xamarin Studio I’ve been using it alongside Unity 3D for all my development. It’s definitively better than the Unity-bundled version of MonoDevelop (2.8 with Unity’s patches) for C# development on a Mac. I think I’ve found my new favorite IDE – a title that MonoDevelop has previously never quite taken. There’s still a few rough edges though. The ones I care about most are Unity related. The Unity debugging plugins are missing, but I can live with that for a while. Unfortunately syntax coloring isn’t enabled for shader files, at least those with .shader and .cginc extensions. It’s amazing how hard code becomes to write when syntax coloring isn’t present!

Shader Code Fades to Black And White

Thanks to some helpful feedback on the Xamarin forums it’s clear that all the parts are there, but those file extensions need to have their mime type correctly for CG shaders. That requires writing a add-in, although it only needs to contain an XML file which gets compiled into a dll. Michael Hutchinson pointed me at the getting started documentation for add-ins. Add a dash of effort and out pops Just compile it and drop the dll here (on Mac):

~/Library/Application Support/XamarinStudio-4.0/LocalInstall/Addins