This is the first proper post on this blog.
To be honest, I had put off building this site for a very, very long time, and only recently managed to get it done. It just so happened that my first month of interning at Tencent had also come to an end, so I thought this would be a good chance to write down some of the experiences and feelings I had during this period.
Back in March, my school forwarded a recruitment notice for game development related positions at Tencent. It happened to match quite well with the UE work I had touched before, so I decided to apply.
Later in April, I received an offer for a project internship at Tencent, and officially joined at the end of the month.
Honestly, at the time I did not really believe I would make it in the end. More than anything, I felt that I was simply very lucky. Looking back now at the UE demo I prepared for the application, I can still see quite a few problems in it. At that time, I only had a half-baked understanding of GAS, and I even added an Enemy into the project while still failing to get the most basic pathfinding right.
Even so, HR still gave me a chance and let me continue to the written test and later interviews, and I have always been grateful for that.
There were also several questions in the written test that I did not solve properly. One that I remember particularly clearly was a maze problem with restrictions. In the end, I did not even get a single point for it. Looking back, I think I was really too flustered at the time.
The final interview was also a bit unusual. It was basically an HR interview, so it was not really meant to filter people too heavily. In the end, I was fortunate enough to get the offer.
On April 27, I officially reported for work.
The company is in Binjiang, about 20-30 km away from my school. Fortunately, one of my schoolmates is also a coworker, so we can carpool together, which solved a good part of the commuting problem in the morning. Even so, commuting itself is still rather tiring and troublesome.
The working environment is very nice. We were given desktop setups with dual monitors, and there is also a fairly large pantry area where people can take breaks.
During the first couple of days, most of my time went into setting up my new computer and getting familiar with the tools used in the team, such as the workflow that combines UGS and P4.
After that, I started taking over some older projects. As time had passed and versions had continued to change, these game projects had already accumulated a large number of bugs. So the main task I was given became dealing with all kinds of known and unknown problems in them.
Unfortunately, just as I started working on the project, the company’s AI setup ran into issues, and the problem lasted for the entire month. In other words, we basically had no agent available during that time, and had no choice but to return to a more “primitive” way of coding.
So the theme of that whole month was almost just this:
bugsbugsbugsBesides that, I also volunteered to participate in some PV-related work, which gave me the chance to learn a little more in that direction. I cannot really go into details here, though, since it involves confidentiality.
When I first joined, I was honestly very lost.
I knew I had to set up the environment, but when it came to how tools like P4V and UGS were actually used, or what the real workflow looked like, I really did not understand much at all. I even naively thought at first that it would be similar to the projects I wrote by myself, and that I could simply keep writing things in CPP the same way. Only later did I realize that our actual development work was based on UnLua.
And in fact, different companies usually have their own complete development style and engineering conventions built around Lua, which is a very different thing from writing your own demos at school.
Still, as time went on, I gradually became much more familiar with these repository and collaboration tools, and I also gained some initial understanding of UnLua. In a way, I think that was one of the most concrete forms of progress I made this month.
I do not really want to criticize undergraduate education here, but internships really do teach you many things that are genuinely useful in actual work.
For students who are still studying CS, I honestly think that if the opportunity is there, it is worth interning as early as possible. The more you get exposed to real projects and real collaboration, the more you get to learn things that are actually practical. Many abilities only start to grow when they are placed in a real working environment.
That is probably enough for this little essay. To be honest, ever since graduating from high school, it has been far too long since I seriously wrote something like this. My writing is probably still quite clumsy right now, so if there are things I did not express very well, please forgive me.