Quaternions: Set up an Quaternion to give a specific angle on a specific axis

Again, just dropping this here so I know where to find it. The following will set up a 1 degree rotation around the x axis (in this case it’s just rotating a Unity transform by 1 degree in the x)

    Quaternion q = a_activeMesh.m_meshFilter.gameObject.transform.rotation;
    Quaternion q2 = create_from_axis_angle(1.0f, 0.0f, 0.0f, 1.0f * Time.deltaTime);
    q = q * q2;
    a_activeMesh.m_meshFilter.gameObject.transform.rotation = q;
Quaternion CreateFromAxisAngle(float x, float y, float z, float a)
    // Here we calculate the sin( theta / 2) once for optimization
    float factor = Mathf.Sin(a / 2.0f);

    Quaternion q;

    q.x = x * factor;
    q.y = y * factor;
    q.z = z * factor;

    // Calcualte the w value by cos( theta / 2 )
    q.w = Mathf.Cos(a / 2.0f );

    return q.normalized;

ADB Quick Commands

I keep looking these up, so dropping them here so I don’t have to: –

This will echo all output from a Unity project; adb logcat Unity:V *:S

This will echo all output from a Unity project to a file; adb logcat Unity:V *:S -d >> output.txt

This will clear the log; adb logcat -c

This will increase the buffer size so you have more than a few seconds before your logs start to disappear; adb logcat -G 16M

Unity Build Failure, unable to update SDK

So, building on Android, I get the error; “Unity Build Failure, unable to update SDK”. The project I’m working on has been updated to a new SDK but Unity doesn’t have that SDK version installed

I used the SDK manager to update to the correct API but Unity didn’t see the change as Unity is looking at it’s ‘local’ version.

To solve this, you need to install to the specific Unity version that you’re using. Simple process; Open a CommandLine (CMD) as Administrator and type: –

“C:\Program Files\Unity\Hub\Editor\2019.3.11f1\Editor\Data\PlaybackEngines\AndroidPlayer\SDK\tools\bin\sdkmanager.bat” “platforms;android-29”

Obviously, you’ll need to adjust the Unity version and the Android SDK to what you need, but this does an in-place update of the Unity installed SDK.

Once you run that, Unity is happy again

Games: Double Dragon 2

I worked on Double Dragon 2 as a Producer for Virgin Games in Vernon Yard off Portobello Road in the old Virgin Records building.

Binary Design handled the development work (based in Leeds from what I recall) and the programming was done by Richard Aplin who did a superb job.

The Amiga version featured full overscan and ran perfectly smoothly at 60FPS which was amazing for the time it was released.

Gameplay video can be found here









Games: Marble Madness

I worked on Marble Madness Master System as a Producer for Virgin Games.

The project was built by Steve Lamb who was based in the south of the UK. He was a great guy to work with and I used to travel down to see him from time to time to check on progress. At the time this was being built we’d just got 14,400 baud modems so Steve used to send eprom images up via the phone and we’d burn the ROMs in London to allow testing.

Full Playthrough can be found here





Thanks to Moby Games for screenshots


Games: Whole Wide World

Whole Wide World was a title that I worked on in my early days of iOS programming. It was released by Fingerprint Play in May, 2012

Fingerprint: Whole Wide World, Fun Learning Games for Kids 5-8 helps kindergarten and early elementary school-age kids learn some very basic ideas about the culture and geography of some countries around the world. Kids choose a cute kid adventurer avatar to represent them as they go around the world playing games and collecting stamps. Mini-games in each place teach kids details about the country and its culture, and they require kids to use skills such as simple letter identification, matching, logic, and puzzle completion. The first few countries (at the time of this review, United States, Mexico, and Brazil) are free; other countries require in-app purchases to access.

Main screen 1.png




App screenshots thanks to CommonSense Media