Last updated on 18 October 2020. Check out for my latest résumé.

Links in my résumé are displayed / typed out because some places have actually asked for hardcopies.

Randy Tan Shaoxian

Wants to make quirky games (that are weird but potentially cute). Based in Malaysia.

(family name / surname is Tan (as in "ton", but "tan" the colour is fine too), first name is Randy, other name is Shaoxian (as in "shout" without the "t" sound, then "see an" said quickly))

Gameplay Programmer / Game Developer

I program in-game interactions, mechanics, and systems using various languages, tools, engines, and / or frameworks. Sometimes, I also work on coding up in-game UIs. While I focus mainly on Godot, Unity, and JavaScript, I am flexible and often do just-in-time learning to pick up any tech stack almost immediately as needed (within a week). I switch between languages / frameworks / engines frequently. I am also currently taking a part-time degree in computer science at a local university near where I live.

Status: Game and application programmer at Gameka / working on a personal project
Email: oneseedfruit[at]gmail[dot]com randy.shaoxian.tan[at]gmail[dot]com
Ludum Dare: [1] [2]
Ludum Dare (Legacy):
Discord: Randy Tan#0495 and

Languages Proficiency

Languages Proficiency
English Proficient.
Mandarin Conversational. Able to read / write simple Chinese.
Malay Barely conversational.
Japanese Basic. Able to read / write hiragana, katakana, and basic kanji.

HomeTeam GameDev Member

I am also a member of HomeTeam GameDev (, an international remote-only game development organization founded by Chris DeLeon ( in Los Angeles, CA.

HomeTeam GameDev club members consistently practice all aspects of game development from design, programming, art, and animation, to sound effects, and music, and so on. Our games are made using mostly pure JavaScript (no frameworks) and C# with Unity. We also have live meetings (video conferencing via Zoom) on Sundays 11.30AM Pacific Time (Mondays 2.30AM Malaysian Time with DST or 3.30AM Malaysian Time without DST) that take place solely over the internet.

At HomeTeam GameDev, I have also been a Game Changer (

Game Development Stack

Please note that I am mainly a gameplay programmer. The listed items are merely what I am comfortable working with. I am also using a Linux distro as my main operating system with Windows 10 on the side for testing, etc.

Programming Languages GDScript, C#, JavaScript (ES5 & ES6), C++, Python, C, Java
Engines / Frameworks Godot 3, Unity, Web API (Canvas), Phaser, Cocos Creator, libGDX, GDevelop, Kivy, Orx, SFML
Development Tools git, Visual Studio Code, Spacemacs
Art / Animation Krita, Inkscape, Spriter, Blender, GIMP
Audio / Music Audacity, Bosca Ceoil, SunVox
Others Trello, Slack, Discord, Markdown, OBS Studio

Game Development Experience

Some game development work I have done (that I am able / allowed to show).

with Unity (5 and later, C#)

Steel Cavalry

Side-scrolling platformer shoot'em up inspired by Metal Warriors. 2D gameplay in 3D space.

Steel Cavalry Gameplay Programmer
  • Animation state integrations.
  • Animation state related programming.
  • Minimap implementation.
  • Gameplay cursor.
  • Mech turning code.
  • AI vision code.
  • Slope navigation.
  • Player movement with jetpack.
  • Various refactoring and project organizational cleanup for readability.
  • Last minute retrofitting code to detect and stop friendly fire.

Nethercard Kingdom

Deck building game where you summon troops, cast supporting and offensive spells and all of this in real-time lighthearted strategic battles.

Nethercard Kingdom

Operation Lifeline

You and a partner race against the clock to safely deliver your patients to the space....

Operation Lifeline Gameplay Programmer (look for commits by "BuildTools", I moved to a different computer, forgot to configure my git)
  • Implemented GameManager.
  • Added screenshake.
  • Implemented rock bounces.
  • Progress indicator functionality and related UI.
  • Base crash fix.
  • Esc key pause toggle.

other Unity projects

Ladder Grow
Ladder Grow
My Cup of Fury
My Cup of Fury
Hot Kitty
Hot Kitty
Gender Gender
Gender Gender
Caramel the Cat
Caramel the Cat
Death Has Many Forms
Death has many Forms

with Godot (GDScript)

And Then There Was One (Ludum Dare 44 Release, No Sound)

Two J-K flip-flops battling it out with bits. Turn-based.

And Then There Was One Sole Developer / Designer / Artist
  • Design of the game mechanics.
  • Sprites.

Sweet Tooth Scribbler

Choose between sacrificing health for mood, or mood for health, while trying to maintain a good reputation.

Sweet Tooth Scribbler Sole Developer / Designer / Artist
  • Design of the game mechanics.
  • Implementation of interactions between various game objects.
  • Implementation of the health, mood, and, stomach systems.
  • Implementation of the funds, deadline, and reputation systems.
  • Sprites.
  • Sprites animation.
  • UI animation.
  • Music.
  • Sfx.

Beet Farmer

Breakout / Pong meets farm sim.

Beet Farmer Sole Developer / Designer / Artist
  • Design of the game mechanics.
  • Implementation of interactions between various game objects.
  • Implementation of the game physics.
  • Implementation of the scoring system.
  • Implementation of the funds system.
  • Sprites.
  • Sprites animation.
  • UI animation.
  • Sfx.

Space Invapurrs

Platformer + Space Invaders + Pong mashup (in development).

Sole Developer / Designer / Artist
  • Design of the game mechanics.
  • Implementation of interactions between various game objects.
  • Implementation of the game physics.
  • Sprites.
  • Sprites animation.

other Godot projects

Chick Magnet
Chick Magnet
Swine Fortress
Swine Fortress: Bacons On Strike!

with JavaScript (no framework, just vanilla JavaScript with Canvas)

Artillery Fodder

Scorched Earth clone.

Artillery Fodder Programmer
  • Various optimizations.
  • Pause on loss of focus.
  • Mouse aiming.
  • Hold Tab key to see all tank HPs.

Little Racers

Racing, includes split screen local multiplayer.

Little Racers Programmer
  • Linux support fixes.
  • Proportion corrections.
  • CSS improvements.
  • Debug draw code.
  • Seedometer display.
  • Gauges refacor.
  • Split screen support plus related fixes.
  • Vehicle going wrong direction detection.
  • Waypoint error
  • Wreck screen improvement


Quest-based action RPG.

Falldale Programmer
  • Projectile directionality.
  • Flashing effect after recent damage.
  • Skeleton spawning from disturbed graves.
  • Speed adjustments.
  • Camera improvements
  • Assorted refactoring.
  • Enemy point collision code.

Warped Radar

Cyberpunk crime mystery.

Warped Radar Programmer
  • Responsive CSS.
  • Level editor improvements.
  • Input code improvements
  • Additional refactoring.
  • Cutscene code organization.
  • Cutscene timing tuning.


Side-scrolling shooter similar to Gradius.

G-Type Programmer
  • Text scroll support.
  • Cutscene code.
  • Level skip cheat.
  • WASD input code.
  • Improved keyboard support (multiple simultaneous key presses).
  • Pause screen menu.
  • Credits layout.

We Must Prepare

Post-apocalyptic farm sim like Stardew Valley with a robot and radiation.

We Must Prepare Gameplay / UI Programmer
  • Refactored code for better organization.
  • Refactored and reorganized inventory and interface code.
  • Some shortcut keys for inventory and hotbar.
  • Stackable items are transferred correctly between the main inventory and the hotbar.
  • Inventory and hotbar tooltips.
  • Item counter labels on stackable items are automatically resized for single, double, and triple digits.
  • Center-mirrored energy (stamina) bar for player.
  • Energy bar changes colour depending on energy left.
  • Implemented items as JavaScript objects and instances.
  • Refactored player code to use items as JavaScript objects. Items have names.
  • Tools inherit from items and using them consumes energy.
  • Inventory slot mouse hover sound effect.
  • Player sprite remembers to face the last direction the player moved in.
  • When using keyboard controls, the player does action / uses tool a tile ahead in the direction it's facing.
  • Clicking a nearby tile in the world causes the player to use the currently equipped tool on that tile.
  • Hide outline on tile if the player cannot use the currently equipped tool on..
  • Water in the watercan can be depleted and refilled from the lake.
  • If there is a ripened crop in the focused tile, prioritize harvesting the crop first before using any tool.
  • Wind from the weather system has direction.
  • Wind blows crops according to its direction and magnitude via crop sprites getting rotated and translated.
  • Fixed bugs.

Playground Legends

1 vs 1 dodgeball.

Playground Legends UI Programmer
  • Scoring bug fix.
  • UI refactoring.
  • Additional scoreboard code.
  • Dimming the UI on pause.
  • Canvas scaling.

Phlying Phonics

Learn languages while swapping flies.

Phlying Phonics UI Programmer
  • Text shadows.
  • Text alignments.
  • Canvas scaling.

other JavaScript projects

Death Road to McGamkedonald's
Death Road to McGamkedonald's