Welcome to my technical blog series on graph algorithms. At rideOS, we use graphs and graph algorithms extensively, such as for routing of autonomous vehicles. In this series, we will be exploring how to solve Match-3 games using graph algorithms. An example of a Match-3 game is Candy Crush Saga by King, a game where the player performs swaps of adjacent candies to form contiguous lines of 3 or more candies of the same type.

Candy Crush is arguably one of the most popular games worldwide, with over 9 million people who play it for 3 hours or more daily


I have always enjoyed playing video games, and over the years I’ve gotten my spouse (and now our daughter) to play games together too. Before we had our daughter, my spouse and I played World of Warcraft (Wrath of the Lich King) together, and we had a ton of fun! We were in a casual guild with many couples, and raiding Icecrown Citadel (ICC) was fun because of the challenge, and also because of everyone in the guild. …


In most games, the player is able to save their progress in the game, so that they can continue their saved game at a later time. In the different game genres, there are multiple ways games can be saved. For level-based games (e.g., Candy Crush Saga, Overcooked!), a player’s progress is automatically saved in between levels, e.g., the game remembers that the player has completed levels 1–1 to 2–10. In role-playing games, players may be able to save at almost any time (e.g., Knights of the Old Republic, Mass Effect), or at certain checkpoints (e.g., Final Fantasy VIII). In open-world…


I recently wrote a guide on reading external XML files in Unity. From some discussion in a Reddit post I made, I learned that Unity also has built-in support from JSON files, and there may be performance benefits to using JSON files instead of XML files. Hence, after considering to switch Mystery Queen over to using JSON files, I decided to write a parallel article — this one — about reading external JSON files in Unity. …


Update: I wrote a parallel version of this guide, on how to read external JSON files. Do check it out if you’re interested! The content of these two articles are similar, other than the format of the external files.

We can do a lot with the Unity editor, such as changing a game object’s / component’s attributes, and we can do a lot with custom C# scripts, such as the behavior of an object. For example, we can have some text appear on screen when the character walks into a pre-defined region.

While the above example can be created entirely…


In some games, it is useful to have a day and night cycle. For example, In Mystery Queen, the creatures of the world behave differently depending on the time of day, e.g., Slimey is only active when the sun is up, and goes to sleep at dusk.

In this guide, I’ll discuss how to create a day-night cycle with the lighting system in Unity 2D, so that you can incorporate similar systems in your game! Similar to my previous guide on creating a translucent effect, I will be walking through the steps here, and also providing downloadable Unity packages (Step…


In 2D games, characters (and sprites) move in an x-y plane corresponding to the screen. In order to create a sense of 3D depth, if an object A is “behind” an object B, then A is drawn on the screen before B, so B’s sprite occludes A.

However, if the object A happens to be the player’s character, then the player may not be able to see their character, or may only see a tiny bit of themselves. One method that 2D games (e.g., role-playing games) employ is to create a translucent effect. …


Besides playing cooperative games together, my daughter and I have spent a fair amount of time playing crafting/foraging games too. One of the most famous games in this genre is Minecraft, although we haven’t personally played it much.

My first foray into this genre was My Time in Portia, where you play as a new Builder in the town on Portia. As you explore the town and its surroundings, you get to interact with the different people and there is an elaborate main story quest to propels you through the game. …


Welcome to my second article on simulation. If you’d like to read my first article on what simulation is, click here! This article focuses on the different domains that simulation has been used in. In my next article, I describe how we use simulation at rideOS to improve our partners’ fleet.

tl;dr of this article: Simulation can and has been used in a wide variety of domains.

In my previous article, we learned how simulation is about making something “similar enough”, and we primarily considered two domains: video games and professional training. …


I’ve given a number of talks about simulation, such as at the Women of Silicon Valley conference, at Tech Talks Singapore, and at a Tech Ladies webinar, and I figured that the content should be shared more broadly, so that more people learn what simulation is. As such, I’ve decided to convert parts of my talk(s) into a series of articles! In general, I try to add as many videos as I can into my talks, to make it more interesting, so I will insert video links to this article when appropriate.

tl;dr of this article: Simulation is about creating…

Allison Liemhetcharat

Proud mom, roboticist, software engineer.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store