Grabbing Screenshots in AR Foundation
An interesting challenge came across my desk that, on the face of it, should have been very easy.
An interesting challenge came across my desk that, on the face of it, should have been very easy.
One of the trickiest things when re-imaging your view of the world or changing how you interact with it, is how you present yourself.
Do you continue as you were or try something new, new is always scary and in the technical world it can also include some unintended consequences.
In starting anew, I chose to break the shackles of a blogging platform (WordPress in my case) and transformed to a new Ghost blog hosted on Azure. This has not come without significant peril and confusion, mainly because all information about hosting ghost yourself is several months/years out of date due to changes in the Ghost platform and also on Azure.
Sure, I could have gone for a hosted blog, I certainly don’t mind paying for it, but where is the challenge in that :D.
Azure used to have a quite rounded set of free features, however overtime this has reduced to the point where it only supports static pages, simple web apps and PWA’s and more critically does not support custom domains. Thankfully though, HTTPS comes as standard (once you turn it on) and is still free,
But given having a “azurewebsites.net” url does not scream a “professional” blog, I chose to upgrade to the basic tier which gives you a little more freedom. It’s not quite “free” but the cost is fairly inconsequential and comes with a host of nice features.
Ghost has upgraded and added a tone of features in recent years, however, this has come at a cost of self=hosting. Not to say you cannot still host it yourself with the latest and greatest, but it is no longer trivial.
For myself, I have stayed a version behind, as it is still possible to host a Ghost blog on Azure with Versions 2 & 3, although as you’ll see, not quite as easily as it used to be (Azure used to have a Ghost app deployment included in the Portal, but no longer)
I’m keeping an eye on a few great Microsoft MVP’s who are still tinkering, in the hopes one of them can unlock the gateway to V4. Another option would be to switch to using containers instead of hosting the website, but I’m not quite ready to make the jump yet.
One good thing is that once your have got your content into Ghost, it is a lot easier to transfer it to another Ghost site.
Now here is where the fun begins.
Ghost do provide a handy plug-in for exporting all your WordPress articles (only posts and pages are supported, forums and other features are not, so if you want to keep them you will need other services to export/host them). You will have to convert any Categories you have setup to tags, as Ghost only supports tags, but again there are tools for that (but you will have some clean up tasks later).
Now, here is where the fun begins, WordPress will create your exported backup, however, you will then likely find your current host does not support downloading such a large file over the web and sadly instead of a helpful message, you will likely just encounter a “server error”. This left me scratching my head for quite a while to figure out what is going on and it was only when I tried to backup my site to host locally, did I find the mythical ZIP file backup on the server ready for use.
Hidden in the plugins folder in the WordPress site’s files, the ZIP file was prepared and ready for use, but as you will find, this is only the beginning of the journey.
Once you have your WordPress backup file, you then hit the reverse problem when trying to import the backup file into your Ghost site, Ghost it seems has a 20mb’ish limit on import files, but all is not lost. (My backup was over 500mb, mostly images)
If you extract the zip file, you can break up the files and create several ZIP backups for imports, mostly images and other “stuff”. Import the images first and leave the Jason backup file till last. Once all your images are imported, only then import the Json text content which will automagically switch to using your imported images locally.
As a tip, WordPress auto-generates several scaled images for every image on the site, so go through your unzipped backup files and remove all the scaled images, leaving only the base image. Ghost does a much better job of handling scaling for images anyway.
You will no doubt have several clean up tasks post import, ranging from:
Your last steps will then be to start finding new paths to get content in to your new site, from Writing in Ghost, to using one of the many integrations (I tried the integration with "write.as" but ended up manually migrating the post here).
I wish you well on your new blogging adventure if, like me, you have decided to make a change.

I've always been a steadfast supporter of helping to educate (and be taught by) the developer community, wherever I can on whichever subject, software or service I am currently embroiled in. It was always my mantra, even from the very early days, some 20 years back.
However, in the latter years, although I have been "out there", supporting who I can and wherever they are, I have not been as forthcoming with my blogging efforts. There are numerous reasons for this, trials, tribulations and for those who know me best, some hardships and the eternal battle with impostor syndrome.
But as ever, to grow we must push on and keep doing the small things which help keep us on the straight and narrow, all the while busting the door open to new opptunities. Confused, I hope so, as I am usually in a constant state of bewilderment, until I find that one article, document or person that sets the record straight.
Part of the longing to get back in to blogging/vlogging/etc has been the start of a new career with an absolutely awesome team at xRealityLabs, headed by the totally amazing boss that is Gareth James. (If you have not had the chance to meet him yet, you probably should!)
Finally I can say the training wheels are off and I can fly free to be the developer I need to be, both by day and night, no more splitting myself in two in order to achieve my lofty personal goals.
This being the restart/reimaging of my blogging adventures, I'll be kicking off with some of the useful things I have been digging into for the past few months, all with the aim to help developers new and old with their game development adventures (although some tips are good for all).
Here is a sneak peek and some of the things to come:
I might even venture towards how this new Ghost blog was setup, except that this adventure is still continuing, expect some bumps along the road as I figure this one out.

Time to get this party started, all those in favour say "aye".
(Written on an iPad, using Ghost, Hosted on Azure and some rubber bands for good measure. Imagine me saying that a year ago)
And to those who are still listening and have followed my decline over the years, Thanks for sticking with me as I turn this ship back around on to a new course.
A walk-though guide to automating your Unity builds for Free (or paid) to help you get working smarter and not harder when building for Windows, iOS, Android or whichever platform you are building for.
Automation it would seem, is one of those big unsurmountable goals for small projects, considered to be something only the big software houses do and seen as the holy grail (see what I did there) of software maintenance. However, is very accessible to projects large and small, providing untold riches for those brave enough to stick their toe in to.
In this series of articles I will go through several of the quick-fire options for getting your Unity project automated for builds, tests and all manner of helpful tricks.

Have you ever been sat at your machine waiting for your Unity build to finish, unable to even start tinker with the next big thing to add to your project because Unity is locked up and working, or wondering if the next change you make will brake your fantastic hoop throwing technique and crash your game? Well, you are not alone.
The short answer, Automation provides a way to offload your builds to someone else to handle while you get back to coding. You get your project to the point where you need to test it, preferably on a device and then pass it on to someone else to do the donkey work of building it. (Even building MULTIPLE platforms at once)
The slightly longer answer is that automation provides several mission critical operations that are "Automated" on a server, such as:
While all of these things are possible, you only need implement as much as you need and then just keep adding to it over time.
In short, for even the smallest projects, Automation can be a life-saver, but you do need to invest a little time (and sweat) in to getting it set up.

The answer, as usual in these cases is "It depends". If you want speed and lots of features, then you could end up with a budget for maintaining your Automation services. HOWEVER!, there are also many FREE services available and it is up to you whether you ramp up over time.
Here are some of the providers of backend services to support your Automation:
What about Unity Cloud Build?
At the time of writing, Unity cloud build, while useful is still very limited on platforms and the amount of testing, integrations available. But I will update as it matures.
The deployment of each of the offerings can be on your (or another) PC, Cloud hosted or anywhere in-between, depending on how much you want to get out of the automation. About the only cost which is absolute, is how much time you want to invest in setting everything up and maintaining your automation services.

Setting up automation can take anywhere from a few hours to a couple of days, depending on how far you want to take it.
It is completely up to you how much you invest, but for each investment the return (on average) is more than 10 times what you put in, in some cases MORE, as you can continue to work while the automation/builds are running.
Now that I have hopefully whetted your appetite, here is what you can expect over the next few articles:
(I will add the direct links to each article as they turn up)
I hope you find these articles valuable, as they have done for me in setting this up far and wide now, and now, on with the show.
I apologize in advance for all the Monty Python references, I've been locked away in a box trying not to be seen for what feels like ages......
Back in the day, Riemer Grootjans had one of the best XNA tutorial sites available (along with some C++ and other series), featuring a great balance of beginner, intermediate and advanced content.
There are those who either do not like or prefer not to use big heavy-hitting coding IDE's, prefer the raw metal of cutting their teeth on code using nothing but their wits (and a good spellchecker), thanks to MonoGame 3.8's new .NET Core delivery approach they can.
Thanks to the aforementioned Command-line/Terminal (CLI) approach mentioned in my previous article, developers can (if they choose) use either a slimline code editing tool such as VSCode, Sublime, Rider or even just a trusty command-line/terminal window to build great games.
Sure, you might miss some of the big-hitting features the larger packages might offer, but if you are starved for disk space, bandwidth or simply like your meat raw then the slimline editor is much more attractive option.
The MonoGame team took particular interest in ensuring everything you need to know about setting up MonoGame 3.8 on your Mac for CLI was all up to scratch and you kind find the article (as well as others) here:
Setting up your development environment for macOS
If you scroll past the Visual Studio for Mac sections you will find the instructions for:
The process is fairly easy and shouldn't take you more than one or two cups of coffee to get through (depending on your internet connection)
If you prefer, I have uploaded a video walking through the process here:
A couple of extra tips when you are entering the world of MonoGame 3.8 to be aware of, are the following:
So why are you still here reading this article? Get out there and get coding your game and if you are stuck, check in to the MonoGame discord and start chatting!
MonoGame is certainly one of those frameworks where if you take your eye off it for a little while, it comes back to slap you in the face and remind you why it is still relevant.
With the recent MonoGame 3.8 release, this is even more true than ever as we say goodbye to the old MSI approach for installing one of the best open-source game frameworks out there.
Following my recent in-depth article on getting your online meeting running in AltspaceVR (part of a series for online events services), I’ve been asked by several people to “show me the money” and do a show and tell in AltspaceVR to demonstrate how easy it is.
Following on from my previous overview of the most common virtual services, this article is the first in the series doing a much deeper dive into each service, its offerings and how to set up and run an event.
In the wake of events in 2019 events, sessions and conferences are being cancelled leaving a gap for those who want to meet up and share information or just talk.
Since we started supporting Android platforms fully in the XRTK, we’ve been through the mill working through all the possible combinations of testing, debugging and banging heads against tables to make Android platforms behave.
I have been working long and hard on one of the most beneficial projects of my life. I have worked in healthcare for the past 2 decades professionally with healthcare software, ever since my Son was born with an untreatable genetic condition. I have wanted to “Pay forward” to all those clinical staff who helped us through our early years by creating better software to enable them to care more (and type less).