I was working on my new indie game, and realised I needed some simple and local AI features: speech recognition, some kind of LLM, and text-to-speech. They are all very solved problems, but I couldn’t find a solution for all of them that was:
Compatible with Unity
Ran in the editor and in a build (the same way!)
Relatively simple to setup and use
Completely local
Didn’t require exotic libraries that may or may not exist for all platforms
Free (or cheap)
So – I made them! And hence my range of “Simple Offline” assets was born. I put them all together, and hosted a small demo on Hugging Face. Since it uses WebGPU, it’s still GPU-accelerated. It’s embedded below!
Run the Local Voice AI Demo
This demo downloads ~350MB and runs entirely in your browser.
Speech Recognition + LLM + TTS — all local.
“Local Voice LLM” – a voice-controlled AI agent, running completely locally.
And you can see all my Unity Assets here. Hopefully they’ll be useful to you! If you have any feedback about them, I’d love to hear it. Please use the Contact section on this site.
Hello! I’ve been hard at work on a new VR game called Going Loco. It’s a fun and accessible puzzle game for the Meta Quest where you have to complete the missing parts of a map to guide the cars, trains and planes to safety.
You have a set of Tiles in your ‘Palette’, which can be opened by flipping either hand palm-up, allowing the other hand to grab a Tile and place it. My friend Gaz had some great suggestions for improvements, like using the face buttons on the controllers to spin the Tiles (like you might in Tetris) before placing them, avoiding some unnecessary re-manipulation of the Tiles to get them in the correct rotation.
You have some control over time. By opening the Palette or placing a Tile, you can slow down time to build enough roads or track for the oncoming vehicles. And once everything is in place, you can press a button to speed up as well, to see the events unfold faster if you’ve been replaying a level for a while!
You’re graded on your performance in real time, so abusing the slowdown system may cost you a Star in your 3-star level score, and likewise by using the speed-up feature, you can improve your speed. But you have to pay attention to the route vehicles will take to avoid some explosive consequences of not clearing the path.
The game uses several “Low Poly” asset packs from Synty Studios, which I feel really set the colourful, detailed and clean aesthetic of the game. I also used over 20 tracks from BenSound for the music, which I play with heavily – adding low-pass filters to make the dialogue more clear, and slowing down or speeding up to match the game speed.
I had the original idea for this game in 2012, and made a very basic prototype for iPhone, which is sadly lost to time now. But I think the mechanic actually works better in VR, where you can physically grab the Tiles naturally using another great Unity asset, Autohand, which handles all the hand-poses and physics associated with grappling the objects. Having these tools available is great, because it means a solo developer like me can concentrate on the gameplay without getting bogged down in the details. I stand on the shoulders of giants, and try to see as far as one person can.
Going Loco is out now on the Meta Quest Store and is priced at $9.99 (there may be variations for local currencies). You can download the press kit here. Please get in contact if you’d like any further information.
Today I released my new game, Home Detective on the Meta App Lab. It’s a VR game that uses passthrough (making it a bit more like an AR game), and lets you become a kind of work-from-home detective, solving crimes from your own living room.
I started off making a passthrough and hand-tracking game only, with the idea that players would interact with their environment in a very natural way, but soon realised that adding controller support would be best, as the accuracy and precision of controller tracking (along with it having real buttons) makes it a lot more reliable. And then recently I added a ‘Pure VR’ mode which you can play standing or even sitting down, so anyone – even those with small play areas – can still enjoy the game.
There are some cool interactions – you can search a body for clues, finding debris under the fingernails, open cupboards and drawers and search them (while they feel like real furniture in your own home), and dust objects for fingerprints.
One feature I am particularly proud of is the ‘Residual Heat Scanner’ which shows leftover footprints, and items that the criminal(s) may have touched. It is basically a Unity light that activates certain objects, but I had to optimise the shader very hard to allow the use of more than 1 per-pixel light on the Meta Quest 2.
Another feature you can’t see in screenshots is the Dynamic Music System. The tracks for each level are divided into instruments (thanks to the awesome guys at https://www.fesliyanstudios.com/), and I layer on more tracks as the scene gets more intense. By the end of the level, when you are picking the suspect, everything is going full blast, but it ramps up so gradually you don’t notice the changes.
The game can be downloaded for free from App Lab, and extra levels are available as IAPs. Please take a look!
Upon finishing the game, I typed “post-persona…” into Google and was both surprised and relieved to see it auto-complete to “… depression.” Surprised because I didn’t expect it to be the first hit, but more relieved to discover I wasn’t alone.
And I say finished rather than completed because I have the option of starting the story again in “New Game+” mode, but I can’t bring it to myself to wipe their memories clean. The story has ended, and I have closure, but I’m not done processing it all yet. I haven’t completed the game because I didn’t see every cutscene or have time for every conversation, but I have finished it. Or maybe the game finished me.
So why did it leave this impact? For two main reasons: story, and characters. These two subjects have been written about endlessly so I won’t roll out the million reasons why they are the two most important things to get right in any form of entertainment. But I will mention a couple of things that were done so well here that it left a bigger impression than any other videogame. The Witcher 3 and the Mass Effect series came close, but this is a whole new level. I spent quite a bit of time in front of the tv playing these.
From this point on, there are SPOILERS! So if you haven’t played Persona 5 yet, do it now! Seriously, it’s wonderful. It takes a long time but it’s worth it.
Persona 5 is a game about time management. That immediately sounds like a boring game, but it’s not. Every day you are presented with a plethora of different options including hanging out with your friends, studying or otherwise improving your character on your own, or going to battle monsters in a strange alternate universe. You are also presented with the ambitious goal of attempting to maximise your social connections, study for exams at school, and defeat certain monsters – all before a time limit. Somewhere in your brain, you are very good at assigning value to these things and weighing up objectively different activities and deciding what to do. You do this in real life anyway (shall I go to the shops and buy milk, or sort out my emails?) – except for the monster-fighting part. Probably. At least, I don’t.
So a lot of the time, the game will move on to the next day and you’ll think, “shall I train with the kid at the arcade, which will improve my kindness and possibly give me a new gun skill, or shall I take a bath and improve my charm?” The game gives you some extra incentives, such as a bonus to studying on rainy days, or in-battle bonuses when your team-mates form a stronger bond, which influences your decision-making.
But the deadlines are tight, and you will find you don’t have time to do everything. This gives the gameplay a frought, tense pace, even though you play an entire school year’s worth of days.
Not all the characters are likeable – I found Haru’s childish voice acting (at least in the English version) to be grating, and Yusuke’s flowery dialogue to be pretentious with none of the intelligence, but it wasn’t a problem. I just didn’t hang out with them. Morgana, your talking cat sidekick, starts off being whiny and conceited but somehow grows on you, despite also preventing you from carrying out extra tasks when you’re tired. “You’ve had a long day – don’t you want to get to bed?” No Morgana, I don’t, I want to go and work in the bar in Shinjuku to raise my kindness!
Slowly though, you improve yourself as a character in the various stats, and strengthen your bonds with the characters you like the most. You start to unravel the story, which has so many twists and turns you never get bored.
But unlike a movie that throws out so many ideas you can’t keep up (I’m looking at you, Star Trek Into Darkness), the game’s ideas hang together really well. The idea of starting the game with a flashback, and slowly showing how you got to that situation works beautifully, and what happens when you finally catch up is nothing short of storytelling genius. The writers combined everything you know about the gameplay with some very clever moves by the characters. And more importantly, it feels like I was a part of it. I decided what to say in dialogue choices, and my character was right there. It’s the kind of immersion I never feel from a film, and very rarely from a book. I feel like it happened to me, and around me. I feel more like a part of a story than a passive observer.
The school setting is very clever. At a time of life when you know your hormones are in full swing, and emotional connections buzz and sting like bees sitting on power lines feeding directly to your heart, your mobile phone becomes a great menu for choosing your interactions and communicating with the cast.
None of this would be enough, if not for the gameplay. While I will say that it got repetitive towards the end, and the last boss is more a test of endurance than of skill, it should be noted that it is very good. A turn-based affair of choosing skills, items and special attacks, it has been finely honed over the course of the Persona games, and is presented with a confident style here. The simplicity of attacking in turn is embellished carefully with bonuses, buffs, debuffs, and rewards for capturing personas from the enemy.
And finally, the icing on the cake: the style. Persona 5 sweats out liquid gorgeous from every orifice, from the harsh zig-zag menus, to the attack animations, the picture-in-picture close-ups of your friends when they emote, and… well, everything. The personas themselves are fascinating beasts, as varied as Pokemon, and not afraid to live up to the 16 age-rating certificate. Some personas are chained women only covering their modesty with their hair, others are demons, grinning as they hide phallic cones. Later in the game, there is what can undeniably be called a penis monster. It literally is a giant penis, that imposingly lurches forward to attack you, and hangs pathetically limp when low on health.
It is not a short game, and requires a significant investment of time. Not just to make it through the story, but also to explore the different activities on offer, and maximise your limited time in the most efficient way possible. By the end of the game, I had got my character stats to max, and got the strongest bond possible with about 8 of my confidants. But it was close.
I went into the final section of the game hoping this was enough, and eventually saw the credits roll on what was an uplifting, bitter-sweet ending. It was with immense joy that I saw my character and my friends go on a road trip together to take me back to my home town, but it left this vacuous gap in my heart as I realised I wouldn’t see them again. They were happy, and safe, but lost to me now. My character might see them again in the fiction of the world, but I won’t.
The incredible irony is that Persona 5 teaches you the value of friendship and connections, and of working diligently to improve yourself as a person. However I looked at the final game timer on my last game save which read “134 hours” (slightly longer than it takes to watch every episode of Friends ever made) and realised I’d been sitting on my arse in front of my PlayStation for a long time. But… having said that, there’s no way I would take it back. In fact, I feel jealous of anyone who hasn’t done it yet.
I had the good luck and pleasure of being able to go to The World Bodypainting Festival again this year.
I took over 3,000 photos, which I managed to whittle down to about 200 for a decent gallery here, and then down to a further 8 which I submitted in the photo competition. You can see them on my Photography page.
If you haven’t been yet, I recommend you check it out in 2018!
Lists! YouTube is full of lists! “10 things you missed in Halo 2”, “9 reasons to care about Assassin’s Creed”, “13 aardvarks in turn-based strategy games”.
They’re kind of stupid. But I wanted to do my own, so I pared it back a bit and have produced my own – simple – list.
The 5 best games
That’s right. As a lifelong games player, enthusiast, and developer, I feel I have a great deal of experience playing a wide variety of titles. So here is a list of what I consider to be the best games ever made. This is not really adjusted for time – it’s just what would be the most fun to play right now.
So, here we go, in reverse order for extra excitingness:
5. Halo 3
Halo, the classic shooter that propelled the original Xbox into the mainstream, can be hailed as the first (or at least one of the first, yes I hear you Goldeneye) FPS to successfully bring the genre to console and nail the controls on a gamepad. So much so, that nowadays when I play Call of Duty or Titanfall, I prefer using a gamepad over the traditional mouse-and-keyboard combo.
Halo 2 pushed the Xbox to the limit, and the multiplayer was sublime. But the single-player campaign left people wanting. Personally I didn’t enjoy playing the arbiter missions (I’m the chief!), and the ending was… well, it wasn’t there. They ran out of time!
Halo 3 corrected every mis-step Bungie made on Halo 2, and on a new console (the Xbox 360), the developers could step up the graphics a notch as well. The single player campaign is thoughtfully constructed with some fun maps, and they cleverly focused on the aspects of the game that were the most fun. There is ample opportunity to drive your warthog around, with AI soldiers manning the turrets, fly around in alien ships, and of course the “thirty seconds of fun” often touted by the developer is in plain sight, where you pick off a few bad guys, melee some others, hide from some shots, and finish off the group with a well-placed grenade.
Play the whole Bungie series! Halo, Halo 2, Halo 3, Halo ODST and Halo Reach. Even better in multiplayer! Halo 4 was good as well. I think the internet jury is still out on Halo 5. It seems like the bar has been raised so many times that it’s very, very high, and 343 Industries is having a tough time clearing it.
4. Uncharted 4
You’ll need some high-rated sunglasses when playing this game, because the polish and shine on display is mesmerising. Uncharted made a name for itself on PlayStation 2 with the original, an interactive Indiana Jones adventure, drawing heavily on the Tomb Raider series for inspiration. Uncharted 2 improved across the board, but somehow Naughty Dog couldn’t repeat the success with number 3. It’s still good. If you have the time, play it, for nothing else than the continuity of the story. But the frustrating gunplay (I died many, many cheap deaths) had me tossing the controller away in anger several times.
Naughty Dog sensibly took a little break (working on the technically amazing, but personally not as enjoyable The Last Of Us in the meantime), and when they came back for Uncharted 4 everything has been made perfect. Seriously, I don’t know how they could make this product any better. I really like and care about the characters, the way they play off each other is inspired, and the gameplay is ridiculously fun. Nate snaps to cover satisfyingly, and the forgiving platforming will make you feel like a superhero swinging off ropes and clinging onto cracks in walls.
Graphically, I had to rub my eyeballs several times to drink in the sights. Perhaps this comment will sound dated in another 5, 10, or more years, but it feels like we are pushing our way out of the uncanny valley now. It’s still not photoreal, but it is gorgeous. The colours and lavish scenery will really spoil you, if you have enough time to notice while so swept up in the world of A Thief’s End.
3. XCOM: Enemy Unknown
I’ve covered this before, and my recommendation stands! It’s simply the most effective turn-based strategy game I’ve ever touched. The animations of soldiers as they vault over scenery and pop a shot around the corner is deeply satisfying, and the threat from the aliens is real. When your soldiers die, they’re gone forever. And so without any specific effort on Firaxis’s part, they spun some incredible stories just through the nature of the mortal qualities of my characters. I spent hours with them on various missions, then all of a sudden, they die. In one case I had one amazing soldier who made it through the whole game, only to die in the last mission, but ensuring success and humanity’s survival. It was a specific route that only ever played out in my game, and I felt quite emotional when the credits scrolled by.
XCOM 2 was also great. Probably just as great, maybe even a little more. Just play both, okay? They’re good on iPad, but I might suggest keyboard-and-mouse (or even Steam controller) for the best experience.
2. Mass Effect 2
Much has been said about Commander Shepard and his galactic fight about The Reapers, and it’s difficult to know what to add. The whole series is great, but this felt like the game that raised the bar even higher than players’ lofty expectations after the original was released.
I love the freedom Bioware gave us to shape a hero to our own liking, allowing us to choose the gender of our protagonist, and giving equally valid options to resolve conflicts with powerful words or punishing weapons. In many ways it is Star Wars: The Game, a beloved space opera which is less sci-fi and more gripping thriller, with sexy technological undertones.
The characters you add to your squad are well-rounded and charismatic, and in this release they improved the gameplay competently. Play Mass Effect 3 as well of course, just don’t miss out on this one.
1. The Witcher 3
The first Witcher game was not so accessible, but when CD Project Red came round to making the sequel, they improved their franchise in just about every way possible. The Witcher 2 was a mature, deep adventure game for adults. Combining believable characters with a fascinating plot that you could actually shape yourself – like really: huge swathes of the game were different depending on whether you sided with humans or the other races, and different plots would activate depending how you resolved various other quests. The fighting system was fun, just hard enough in normal mode (to give you that nervous edge while fighting for your life), and the multiple endings were satisfying. This review won’t go into spoilers, but I like how they bucked a videogame trope and didn’t make me do something that all other games make me do.
CD Project was also not afraid to deal with some powerful themes as well. Torture, homelessness, rape and more is discussed, and as a powerful force yourself, you feel the responsibility to take action and correct some misdeeds. The gore is explicit but not sensationalised, and I’m relieved to see they’re not scared to render a nipple or two (and potentially many more depending what you get up to).
In The Witcher 3, it just got even better. Initially dismayed by the announcement that it would be open-world, I found they made the formula work very well. And they ramped up the impact your decisions had on the world even more. You literally decide the fate of nations – sometimes by accident – and the level of interaction with the characters is mesmerising. You will find yourself genuinely feeling something for your fellow witchers and sorceresses, and the quest to find Ciri is powerfully told, along with well-scripted and thoughtful side quests. The loot, magic, potion and fighting systems have all been given another layer of polish and the whole game hums together, taking you on its adventure like a well-tuned motorcycle. Graphically, it has set a standard for AAA RPGs to aspire to. I sunk over 150 hours into this one and its two capable DLC expansions, and I consider it time well-invested.
Hey! Do you use Google Docs? Are you writing in chapters? Do you sometimes insert or remove chapters? Then this script is for you!
To add it to your Doc, open it up, then go to Tools -> Script Editor. Copy and paste the following code (you might also need to save the script project, as something like “MyScripts”).
function FixChapterNumbers()
{
var pars = DocumentApp.getActiveDocument().getBody().getParagraphs();
var chapterCounter = 1;
for(var i=0; i<pars.length; i++)
{
var par = pars[i];
var parText = par.getText();
if ((parText.length < 12) && (parText.slice(0, 7) == "Chapter"))
{
var fixedChapterString = "Chapter " + chapterCounter;
par.replaceText(parText, fixedChapterString);
chapterCounter++;
}
}
}
As long as your Chapters use just the text “Chapter 3”, “Chapter 4”, and so on, they will now be put in order, starting at 1. This only affects the “Chapter X” text in the title, not the body of any of the chapters.
If you’re writing your novel for NaNoWriMo, you know time is of the essence! Perhaps this can be useful for you.
Last weekend I went to the World Bodypainting Festival in South-East Austria. Having never been before, I didn’t really know what to expect. I was amazed to discover a whole new scene, lots of friendly people, and some very dedicated and talented artists.
The whole experience brings to mind an infographic I saw this year:
This was something I didn’t know if I should book, and didn’t know if I would enjoy. But on some level I knew I wanted to see what it was all about, and that special combination of trying something new, and being welcomed when I got there, made it a truly memorably weekend.
So if you find yourself in a similar situation, I would recommend you take the plunge – while you can still afford it.
Eugh. What a tired old cliché (also: isn’t “tired old cliché” a tired old cliché?). It’s a way of justifying to ourselves that we need to be more open-minded. But it does carry some actually really weighty significance. Bear with me, because I think I can show you a way of thinking about this you might not have considered before.
The origin of this philosophical device, for me, goes back to the exploration of the idea that we could each see colours in a different way. What’s green to me might be red to you – but because we’ve both grown up calling it “green”, we both identify it the same way. We wouldn’t know the exact chemical and electrical processes occurring in each others’ brains. This blew my mind when I was 15.
But that’s just the tip of the iceberg. I want you to imagine this idea extending from basic colour recognition to the way we individually see words, sentences, ideas, and situations in life.
Allow me to demonstrate with a series of trite, patronising and thought-provoking graphics. Check out my little table of numbers below:
That looks fine, right? One times three is three, two times four is eight. It follows a nice pattern and everything appears to be in order. Maybe you checked the easy ones like eight times ten.
But wait! There’s an error! Thirteen times fifteen is not one-hundred and ninety three!
It’s actually one-hundred and ninety-five.
A mathematics guru would have spotted this, and it would have made them uncomfortable. Upset, maybe. Potentially even angry! I apologise to any maths gurus reading this blog.
This happens to me quite often. I usually consider myself a bit of a spelling and grammer nazi, so when people use the wrong your, you’re, to, two, or too, it ruffles my feathers a bit. Even when people use funny when they meant fun, I have to concentrate to keep my smile from breaking. And that’s unfair – it’s a really difficult and subtle distinction for foreigners (well done, by the way, for learning a whole other language… I can speak Swedish, badly, and enough French to order a croissant).
So if you’re looking at that table and thinking, ok, there’s a small error, no big deal, imagine this sentence, now:
Did you spot the error? Maybe you did? But it’s subtle, right? It doesn’t jump out at you and assault your eyes.
What about this one?
Yeah. It’s starting to get pretty bad. Or this one?
I’d hope the majority of my readers could see the problem in the above sentence.
I would like you to imagine that someone might write a sentence that doesn’t look wrong to them, but does look wrong to you. Now I’d like you to go one step further – and this is the really crucial bit – and imagine someone else could read your work, and have it look wrong to them. But it doesn’t look wrong to you.
This is fine for a paragraph of text, as the error can be described in literal terms, and it can be corrected easily (most of the time). There is also a set of rules for the English language, so although some phrasing is subjective, the rules for which pronouns to use in certain cases (for example) is preset, and there is a definitive correct answer.
Now, please take this a step further. What if we apply this principle to any form of media or communication, or any way of visualising any idea at all? It’s possible that a friendly chat could be a harsh interrogation to someone else, and you would both be right in your very subjective perception of that situation. What you might perceive as constructive feedback could be useless nit-picking to your friend, or what might seem like the obvious way forward to you is certain disaster to a colleague.
Let’s just stop and think about that really quite profound revelation for a minute. This means that there isn’t one universal, correct way of viewing the world. There are several. Maybe hundreds. Thousands. Millions? We need to become aware that we perceive the world in our own unique way, which is a product of our specific brain chemistry and biology, coupled with decades of experiences – good and bad – that have shaped our opinions and reactions. And while it’s incredibly difficult to break out of that as it is literally the habit of a lifetime, we may be able to stop, and consider that someone else is getting a different experience.
This might be fine if all we’re ever arguing about is grammar or whether to have tea or coffee with breakfast. But what if it becomes a moral issue? What if a crime is justifiable to someone else, but not to you? Or vice versa?
This happens regularly in my office (not the crime, but just about every other situation), and in discussions when talking to friends. If we’re not careful, a difference of opinion can lead to an argument, alienation, or much worse.
So how can we avoid that and what can we actually do about it? First, let’s start with what we shouldn’t do:
Refuse to talk
Act passive-aggressively
Complain to other people
Become violent
Sadly we can’t just jump into someone else’s brain. The first thing we should do is relax, calm down, and avoid acting impulsively (and often emotionally). Then, when we feel like a rational human being again, we should:
Ask questions (why do you think it’s unfair? What should we do differently?)
Make eye contact
Allow them to speak
Avoid negative body language (crossing arms, rolling your eyes etc.)
When we make this kind of an effort, people get a lot off their chest and are more likely to open up to other ways of thinking (specifically, yours). And who knows? They might even convince you to change the ‘lens’ through which you are seeing the problem.
Sadly, not everyone is reasonable, and sometimes we are forced into a situation where we must disagree. Then it’s time to talk to other people, and decide on a course of action unanimously or at least democratically.
I hope this has made some kind of sense. If it has, and you agree with everything I said, and would like to add some positive comments inline with my exact world-view, please use the comments section below.