Using ADB through WIFI for Android Development

Most of the time, I use emulator for android development. But, using emulator can eat my memory and slowing down my development. Doesn’t help that the fact that Android Studio also take most of my desktop resource.

Real device deployment is way to go. But, sometimes dealing with USB cable is not pleasant experience. So, the solution is using WiFi to connect with my device.

First, connect phone to computer using USB cable. Open command prompt, type this command below to get list of connected devices.

adb devices -l

You should see your devices. Then, type this command to start adb in TCP mode. The number is port we will use in this mode. Use whatever vacant number you like.

adb tcpip 1502

Check your phone IP. Your phone and computer must be in same WiFi. Depend on your Wifi router configuration, it should be starting with Enter this command to connect ADB to your phone with the same port number.

adb connect

Again, run adb devices command to check new connected device. If all set, you can plug off your cable.

Where Are My Pets?


Where Are My Pets? is a logic puzzle game about finding the location of your pets and other objects. Each room has several possible objects and you have to decide which objects are actually in that room. You will be given some clues that show the relation between two objects.

Platform : HTML5

Released : 2018


I came up with the idea from an old game, Inspector Parker. I made this game with a friend. I did all code and he did the art & assets.


  • Openfl (Haxe)

She and the Light Bearer


She and the Light Bearer is a point and click adventure game, a poem, a fairy tale. Take a journey inside a vibrantly colored forest, meet silly creatures, listen to serene folk music, and discover somber secrets.

Platform : Steam

Released : 2019


I worked as a contractor programmer on Mojiken Studio. Game is made on Unity3D. Even though the game is using Fungus, the game is not 100% visual novel. I made some mini games & its integration to Fungus system. Worked for 2 years on this project.


  • Unity3D (Game engine with C#)
  • Fungus (Unity Framework for Visual Novel aspect of the game)

Bolderline – Brick Matching Game


Bolderline is a brand new minimalist puzzle game with colorful blocks that will challenge your brain.

Your goal is to destroy the blocks in the top left area using bricks on the bottom side. You must arrange the bricks with the same color to match the shape of the block and then connect them to destroy it!

Platform : Android, HTML5

Released : 2018


I programmed a whole game from gameplay, UI, testing, level design, and integration to google play & kongregate.

I used Urho3D as game engine with angelscript as gameplay programming language & C/C++ as engine programming language.

I also integrated android version to Google Play Service with Android Studio using mixed code from C & Java(JNI).


  • Urho3D (Game Engine with Angelscript & C/C++)
  • Android Studio (Android Integration with Java & C)
  • HTML5 with Emscripten (C++ & Javascript)

Snap vector direction to nearest axis

I have this case when I need to get my character direction is snapped to the nearest axis. Kinda look like this.

View post on

My solution is to find the largest axis absolute value of axis. Then, change the largest one to 1 and the others 2 with 0. Change largest axis sign with its original sign.

Example, we have Vector3(-0.5f, 0.1f, 0). The snapped direction is Vector3(-1,0,0).

How to get reflection vector?

This is one of the problems I encounter often. It might be useful to put solution here.
If you are in hurry or don’t need any explanation, I’ll just leave solution below.

v2 = v1 – 2(v1.n)n

v1.n is dot product & n must be normalized.

That is the code I use for my game using Angelscript (c++ like language). If you use C#/Unity3D, the concept is similar.

How did I come up with these numbers?  Well, I found formula from StackOverflow. haha.  Let’s break down the solution.

We have v1 vector we want to get its reflection. Vector n is the vector that perpendicular to the surface v1 reflects with. We usually call it normal.

Draw straight line

We get vector n1. For now, just ignore n. Multiply n1 by 2 and now that’s v2 we are looking for.

Next step is figuring out how to find n1.

v2 = v1 + 2n1

Easy, it’s dot product of v1 and n. If you don’t know what dot product is, you can read it here.  Due to the angle between v1 and n is more than 90°, the result is minus. Multiply n by dot product’s result, we have n2.


v2 = v1 + 2n1

v2 = v1 – 2n2

v2 = v1 – 2(v1.n)n

Productivity tips : Don’t place your distracting apps on front screen!

In this era of internet addiction, checking phone regularly is unsurprisingly common and it messes up your productivity.  One of the solutions is to make it difficult to reach these apps (Instagram, Twitter, FB, etc).

In order to do this, you must place these apps away from the front screen, put them in one folder named “Useless apps”. It doesn’t always work, but at least extra efforts to reach these apps will give you time to reconsider your decision.

Fill your front screen with “good” apps like your fitness/workout apps, todo list, or any productivity apps.

I got this idea from Reddit. Hope it helps.

Bolderline, a colorful brick matching puzzle game that will challenge your brain.

Finally, I’ve released Bolderline. Better late than never.

Quick description, Bolderline is game mix between Tetris & Twofold Inc. One redditor told me, “It’s like Rubik’s cube and Tetris had a child.”

Here’s what gameplay looks like.

You can download it free on play store


Update after 9 months

It’s been 9 months since the last post. Almost forgot, I have this blog. haha. Development of my game still continue. It’s just slow progress. I can’t focus on this game after doing many other projects. So, at the beginning of this year, I decided to focus and finish this game.

Here are some changes after 9 months.

  • Switched game engine from UE4 to Urho3D. My game is too casual for UE4
  • New design. I got help from my friend to design the look of my game. We use minimalist style.
  • Game run & tested in windows, html5 (webgl), & android.

September 2017

January 2018


More updates will follow. I hope I can finish this game in February.