7 pieces of advice if you have to remotely work as a VR developer from China
You all know that I’m spending a few weeks in China, and apart from eating a lot, I’ve also to keep working remotely at our VRROOM platform for concerts and live shows.
I was a bit worried about the possibility of working remotely from here, and some people from the team were, too. There is not only the problem of the timezone but also the unknown of the internet connection and the inability of reaching Western websites like Google. Anyway, in these two weeks, even with some difficulties, I’ve managed to work quite at the same pace that I had in Italy, and we are going full speed ahead in improving the platform (some news about it is coming very soon…).
Since I’ve learned a few tricks while being here, I just want to tell you about my lessons learned, so in case you want to have a trip here, you will be able to work well, too!
Have local connections
FXG’s Nikk Mitchell is one of the great friends I have in China (Image by FXG)
I can’t stress this enough: if you want to come to China, be sure to have good connections with someone else here. May it be a native Chinese person, or a Westerner living here for a while, the important thing is that it is someone that knows how things work here. This person (or even better, these persons) can give you some pieces of advice before you leave your country on things you should be prepared for, and can also help you in solving problems while you are here. Don’t rely just on information you find online, and don’t trust at all what the West says about the East. You need someone living here, so that he knows how things are for real. Period.
Notwithstanding it is not my first rodeo here, when I arrived in Qingdao, I wasn’t able to connect to some online services I needed. My usual solutions were not working and I was super concerned, because I needed this to work. Luckily, one my of Chinese contacts managed to fix the problem by making me install on my computer some software that did the trick. I still don’t know what this software does… it’s all written in Chinese and most probably is sending all my keystrokes directly to the Chinese Communist Party… but at least I can now work, so it’s fine. My best greetings to all the people reading my keystrokes at this moment… I wish you a great year of the rabbit!
Prepare in advance
Prepare for your trip… but remember that this time it won’t be virtual! (Image from Hacker Trip, rights to Fox)
Prepare for everything you can before you leave. These are some things you should take care about:
You will most probably be in a different timezone, so reschedule all the meetings at a time that is more convenient to everyone: for instance, in my company, now the team is doing standups when for me is afternoon and for them is morning
Inform all the people you work with that you may have problems with connectivity. Reassure everyone that you will be fine, but at the same time, you may need a bit of support in case you have some glitches. People will understand. For instance, I’m very grateful that everyone on the team has been very tolerant these days when I had some small network glitches during the group calls
Take with you everything that is needed for an international trip (e.g. a power adapter, a translation app on your phone, a solid suitcase, etc…)
Take with you some medicines for the digestive system. As much as I love Chinese food, sometimes shit happens. Pun intended. The first days I was thinking about putting the desk with the computer in the toilet, just to convey the idea
Think about problems and plan Bs. Verify the most that you can before leaving, so that you can find solution in advance. While still in Italy, I verified that Microsoft Teams, Unity, and Github were accessible from China. I so understood that in the worst-case scenario, I could at least still talk with the team and contribute to our code without issues. Anyway, to be totally sure not to lose contact with the rest of the company, I asked one of the devs to install WeChat, to be sure that in any possible scenario, I would still have a point of contact with my team and be still able to coordinate with them (WeChat is the most used Chinese messaging system, so it’s impossible it gets blocked). As for the management, the CEO Louis already has WeChat, so the problem of communicating with the managers was solved, too.
(Image from Know Your Meme)
In China, most of the Western websites we use the most, like Google and Facebook, are blocked behind the Great Firewall. This block affects indirectly other websites: for instance, I can access my WordPress admin page from China, but since it is protected by a Google ReCaptcha mechanism, and since Google is blocked, I can’t log in to it. When I wrote my first article here from the Shanghai airport, I had to login via WordPress.com, for instance.
The solution to this is using VPNs (Virtual Private Networks), a technical thing that basically creates a cyphered network tunnel from your computer to a server outside China, so that you can connect to the websites you want using that server as a relay. Since the VPNs let you bypass the restrictions of the government, they are forbidden by law, and the government here says that you can use only “government-approved VPNs”.
So of course I invite you to use only the VPNs that are approved by the government and that follow the values of the Party. (I still call them VPNs, where the acronym stands for Very Party Networks). Whenever I’ll mention VPNs in the remainder of the article, I’m always referring to these ones. I would never suggest something different to you. Absolutely not. Don’t use Astrill VPN, for instance.
Refer to your Chinese contacts to understand how to connect to the internet in the proper way and set everything up BEFORE starting your trip.
God bless 5G
I had mixed experiences with Internet speed during my Chinese trips. I had the slowest connections when I lived inside cheap hotels or when I was hosted by some friend that had a bad router. And when I mean slow speed, I mean really potato quality… like 1 hour to upload a short Youtube video. There are other places where I had good connections: I remember that when I was in an apartment in Chengdu, my connection was lightning-fast.
Given my previous experience, I asked my Chinese assistant to avoid the hotels and to book me some apartments. She went on doing some sort of Airbnb via a website I don’t even know how to pronounce. And I have to say that this strategy is paying off. I had good Wi-Fi connections in all the places I’ve been to until now. Let’s say that the internet speed is around 100Mbit, which is not the best around, but still good.
Anyway, it’s better to have always a plan B. Since sometimes you may have internet hiccups with the Wi-Fi, be sure to buy a 5G SIM Card when you arrive at the airport. When I arrived here, I bought a 100GB one. It’s been very useful for the days when the Wi-Fi was not performing well and also to do some video meetings on the fly when I was in the streets (during one I’ve almost been closed in a commercial center, but that’s a story for another day).
Thanks to this dual choice, until today I have had no day where my internet connection was really bad. I had some glitches sometimes, some disconnections here and there, and some slowdowns, but nothing that really prevented me from working. Let’s say that sometimes I just had to be a bit patient.
This is how I write source code every day
Talking about connections and working from here, yesterday I had a big problem with GitHub, and I want to tell you how I solved it. In case you don’t know, GitHub is a solution that we all developers use so that we can work together as a team on the same source code: imagine it a bit like Google Docs/Dropbox, but for developing together the same application.
So, GitHub is accessible from China even without VPN, but the problem is that when I tried to download the latest changes made by the artists (I tried to do a “pull from the repo”), I had the bad surprise of Git answering something like this:
“git Failed to connect to github.com port 443 after 21093 ms: Timed out”
I looked online, and I understood that this is usually a problem that GitHub has when your computer is behind a proxy, and the solution is putting the data about the proxy in your git configuration. The problem is that in my case the “proxy” was the Great Firewall, and it was a bit difficult for me to call the government to ask what parameters to put in my Git configuration. They were reading my keystrokes, so could have spontaneously handed them to me, but probably they were too shy to contact me. So I was left on my own.
I tried with different networks, but with no luck. I tried using the VPNs, and I managed to connect to the servers. But then I started having at another problem: I was downloading stuff at 100Kb/s… and I had to download something like 200MB of data. Analyzing the situation, I got to understand that the connection with Github was ok, but I was having a slow connection to the CDN of Git LFS, which is where Git stores the larger files. It’s the first time I’ve found myself with this problem.
I spent a whole day trying to fix this, and I was kinda desperate because for us developers being able to access our git repository is fundamental to work. In the end, I found that in the VPN that I’m using, there is a setting that by default tunnels only the browsers. Setting this to “tunnel all the applications” magically did the trick. I started downloading at 20MB/s and in 10 seconds I had all that I needed. This way I also unlocked the Discord app that was unavailable until that moment.
Me and my Quest 2
When I’m at home, the Quest is the headset that I use the most. It is because I’ve started my VR journey with a Oculus headset and I’ve used Oculus devices most of my time… and also because it has been the first one offering a reliable standalone and tethered experience at the same time. Anyway, here in China, the situation is a bit different.
Quest is a pain in the ass, to say the least, in China, because everything about Facebook is blocked here. So also all the headset runtime is blocked. And since it is so closed, you can’t even recall Android’s VPN settings, but you’re left with the few consumer-oriented options that Marky Z leaves to you. The ideal solution to use it is to have a router with a VPN installed on it, and connect the headset via that router to the internet. If you can do it, then it’s great, you have all your problems solved.
Otherwise, you are left to hacks on how to solve things. I don’t have a router, but I managed to make the Quest work by connecting the headset to the hotspot of my phone, where on my phone I installed a VPN and an app that makes my phone act as a proxy server. When configuring the Wi-Fi of the Quest, I then specified the Wi-Fi of my phone, plus in the Advanced settings of the Wi-Fi connection, I entered the data of my “proxy server”. This way it works, but the connection is not that fast. Plus the runtime still can’t load my avatar in the home.
What is still driving me crazy is the Quest Link. The moment someone had the genius idea of unifying the Quest Link and the Quest Air Link logic, Quest Link started to have problems. I wish the engineer that took this decision a gigantic diarrhea. Quest Link was used to working very well before because it is a tethered connection: if the Quest and the computer are connected by a wire, the connection is tethered, so there is nothing to “find” because it’s simply there. But at a certain point, Quest started “searching for PCs” when you want to use the Link, and I guess that the reason is that the Quest does a network discovery both in the case of tethered link and air link. A discovery that is totally useless if you have a cable that literally connects the two.
The fun thing about this is that it seems that VPNs interfere with this discovery process. So basically you need a VPN to use the Quest software from China, but if you use a VPN, the Quest Link may not find your PC. Long story short, you may be fucked, depending on the VPN you use and its settings. I still haven’t found a solution to this to share with you. The only one is, as I’ve said in the beginning, to have the VPN on your router and not on your PC.
Pico 4 (Image by Pico)
Being manufactured by a Chinese company, the Pico 4 is much more usable in China. I am able to use it without a VPN most of the time. And if I have to connect to some special application, I can simply install a VPN on it. It suffices that you install the APK of the VPN on it, and launch it. To have better results, I suggest opening the Android settings (I did it by using the command line tool adb and summoning “adb shell am start -a android.settings.SETTINGS”), searching for “VPN” settings, selecting the cog next to your VPN, and in the resulting settings window flicking the switch of “Always-on VPN”. This way the VPN stays always on when it’s active.
As for the use as a tethered headset, I downloaded the Pico Streaming Assistant, and it works incredibly well in connecting the headset to my computer. So now I use the Pico 4 as my tethered headset together with my laptop, using SteamVR as the OpenXR runtime. I have to warn you that the quality of the tethered connection is not the same as Quest Link (there is more latency and more blur), but it’s ok enough to work.
So here I’m using the Pico 4 whenever possible. My piece of advice is, if you have to travel here for a short time, to buy or borrow a Pico 4 (or an HTC device) to use for work, because Quest may be more difficult to use.
… whatever happens, keep a positive attitude and try to find a way to solve your problems! Sometimes it’s just a matter of juggling between different possibilities (e.g. changing network, changing settings of something, etc…). Be patient, smile, and I’m sure you will find a way.
And that’s it with the lessons learned that are helping me to survive in the weeks I’m staying in China. I’m sure there are many other things to consider, and people living here for years could tell you much more, but this is what I have learned myself in these two weeks.
I hope this article can be useful to you if you decide to come here. Enjoy dumplings, life, and work
The post 7 pieces of advice if you have to remotely work as a VR developer from China appeared first on The Ghost Howls.