Summer Internship

I returned to China in August last year. Due to the epidemic, I did not submit the resume of summer interns last summer. However, this summer I sent dozens of resumes to different game companies. The position I applied for was a game-planning intern. Although most of the content I studied at OSU has nothing to do with game planning, becoming a game planning is one of my goals. I chose simulation and game programs as my professional field for game-related knowledge. However, our school has not opened courses on game development for two years. Today’s fall is my last semester of studying at osu, and I don’t think I can wait for the game development class. For the preparation of the summer internship resume, I think it is different from the resume of normal recruitment. Especially when I applied for a game planner, I think the experience of the game project and game experience is very helpful for the application.

I will add the logo of the company I want to deliver to the upper right corner of my resume so that the company should spend more time seeing my resume. There are mainly four different contents in my resume. Learning experience, project experience, game experience, and self-evaluation. The prime minister is a learning experience. Most of my learning about game development is done by myself. I will do some small games in my free time or participate in game jams in different places to increase my development skills. My project experience is mainly minigame competitions of various game companies. My partner and I completed a game together. I also got a VR game development at OSU. My professor is very generous. He gave me an oculus as a debugging device for development. For game planners, a rich gaming experience is especially important. I wrote my views on different types of games and some revisions on my resume. The last point is about self-evaluation. I think it is very important to recognize what kind of position you can hold in your work.

Since last week, I have been interviewed by four major game companies. Although the interview results did not come out, I think these interviews have enriched my life experience. I will slightly modify the resumes sent by each company to make them think that I am a member of the company’s culture. I hope I can get a summer internship job before the start of the summer vacation.


Mobile software development

I took a course on mobile phone software development here, and at the end of the semester I found my teammates to develop and develop my own mobile phone software together. The development of mobile phone software is different from the development of games. The development of the game pays more attention to the gameplay and the music and art style when playing the game. The development of mobile phone software pays more attention to the functions, UI, and software screens in the software. When the player is 30 seconds before experiencing a new game, the appropriate music and game style will make the player more interested to continue playing. A novel gameplay will determine the lifespan of this game. However, when developing mobile phone software, users pay more attention to whether the software is easy to operate and whether the software screen is clear. The settings of each button of the mobile phone software are very particular.

My final project will make a game data collection software about the online game “League of Legends”. The software can view the information of each role in the game, and users can view the role of the game by filtering and sorting. Basic character information will be stored on the user’s device, such as the personality of each champion, game background and so on. You can use various statistics, their category or sort by name. Users can also filter champions based on keywords, statistics, etc. Finally, users can rank champions in the main view and view a more detailed list of their information.

Before mobile phone software development, I think prototype production is very important. The app I often use to prototype mobile phone software is called Balsamiq Wireframes, which is very friendly to novices. It can help us spend less time to realize the software page and simple button function we want, and it can also realize page conversion by creating multiple pages. Although the prototype produced by Balsamiq Wireframes is not beautiful, it can help us quickly realize the prototype production. This is the prototype I made for our mobile phone software through Balsamiq Wireframes:


Create menu List in Unity

When the player enters the start interface of the game, the first thing the player sees is the game menu. The UI screen and location of the menu will change the player’s first impression of the game. A good game menu should be concise and clear and the appearance of the UI should match the background settings of the game. A simplest game start interface should have two options to start the game and exit the game. In Unity, the creation of game buttons is very simple, and Unity has its own prefab. Players can create a Canvas first, and then add buttons and Text to the canvas. Unity3D and 2D have the same method of creating canvases. The difference between them is that Unity3D can add 3D modules to the UI to make the screen richer. In this project I created a scene called Hometest and added some simple 2D buttons.

Panel_main(figure 1)

Although Unity has a large number of components and scripts that developers can use directly, these scripts are not enough to meet the expectations of developers. We can see in the picture that I created panel_main and panel_option. The screenshot of the first picture shows only the button of panel_main.


We can see the panel_option screen from figure 2. My design is that when the user selects the start game in figure 1, the options in figure 2 will automatically pop up. Before the user chooses to start the game, these Music Menus will not be displayed. In order to achieve this, we need to write our own scripts. Keep panel_main in the player’s field of vision. When the player clicks on the start game, the player can get the hidden panel_option.

Menu Manager script->SetupPanels (figure 3)
panel_main inspector(figure 4)

The code of figure 3 is to let Unity know that the Current panel is the scene to be displayed in the initial screen. We only need to add the script to Canvas, and let the current panel selection include panel_main (figure 4).At this time, we need to write another script to let Canvas know which is the picture that needs to be displayed and which is not. When we are done, we can achieve the effect we want by adding a click script to the controller used by the user.

demo video

Interview experience sharing

Autumn recruitment usually starts in March or April. As a senior, I should start preparing for the job fair for fresh graduates without considering the graduate entrance exam. As a programmer, most people choose to interview for technical positions. I think it is very important to carefully prepare your resume and interview, because there are really too many students who come to interview without preparation. We learned how to write a resume in CS461 in the fall. I think that the resume should be revised appropriately for different positions in different companies. I submitted a resume of a game planner in September last year. I successfully received an interview from Tencent. During the interview, the interviewer thought that my resume contained too much experience in technical positions. He believes that compared to game planners, participation in game design is more important than development. Although I still joined Tencent’s minigame development team, I was not accepted by Tencent during my summer internship. It is very important to identify the position you want to obtain and revise your resume.

This is a very simple index question that I encountered as an algorithm engineer. Given an integer array and a target number, return two index values. The sum of their corresponding array elements is equal to the target number. You can assume that there is only one answer and the same element cannot be used twice. This question seems to be able to get the answer using a simple order, but this is not an exam question encountered in school, and an interview question. The idea of ​​problem-solving is very important, we need to think about our own ideas to the interviewer. For some difficult questions, the interviewer does not expect you to be able to answer them correctly. They just want to know how you think about the difficult problem, so it is very important to explain your own ideas.
Community Verified icon

As an international student from China, if I want to get a non-technical job in China, my internship experience and the open source projects I participated in are very important. There are special graduation projects in our school that can help us gain a certain advantage on the resume, but just one project is not enough. I once wanted to submit a postgraduate student majoring in games at the University of Utah, but Utah requires students to have at least three complete projects to be eligible to submit an application. Before my senior year, I had almost zero internship and participation in projects, so I regretted that I missed the winter application.For seniors like us, there is not much time to prepare a resume and start applying.


team work

In the last semester, we formulated a series of plans and project progress schedules for the VR music game project. However, in this semester we did not fully follow the plan, which resulted in our inability to complete the preliminary version of the project in time. Since the project requires three people to complete the project together, the division of code is very important. We should complete the division of code at the beginning of this semester.

The main three parts of VR rhythm game project creation

For a game team composed entirely of programmers. Game planners are particularly critical. We need to know what parts a good game consists of, and then the project manager assigns tasks. In this project, all our art materials and music can use Internet resources, so we only need to allocate different program functions.

However, our team did not do this, I think this is not a bad thing. Everyone needs to face difficulties and grow. After the last standup meeting, I think we can divide the project into three main parts. Because our team has only three people, when different people complete the project, we need to upload and download the project through merge branch. I think the main framework of the VR rhythm game project is the scene of the game, the rhythm of the music and the generation of the beat, and how the player operates to obtain the game experience. The game scene mainly requires the programmer to arrange the objects in the scene, the UI distribution, the area where the player operates, and so on. Music beats are mainly used to obtain the beats of the music through scripts and then use the beats to generate strike targets. The time and location of the strike target needs to be adjusted by the programmer. Game operation means that when the target is generated, the player gains a sense of strike through the strike operation. Players can also avoid targets by moving, depending on the core gameplay of the game. The three parts of the framework are completely different, so when the team completes their tasks, they can save a lot of time to merge projects and debug.


Scene Transition function

This week, I updated the script of the VR music game project. I added a scene transition function and made several new scenes. The main purpose of the scene transition function is that when the player wants to switch levels or return to the operation interface, the script can help the player to interact by pressing buttons.
The main syntax of scene interaction can be completed by the built-in components in Unity. As shown in the figure, we only need to add the following code to the button key to realize the conversion of the specified scene or interface.

Change the scene

For unity scene conversion, we can also perform a scene conversion by looking up the scene index value through code.

Use the scene index to Change the scene

For the second method, we need to create a new scene and get the index value of this scene. We can find the Build Setting from the File option in Unity, and then we can see from the Build Setting that the scene is the index value. Creating a new scene is very simple, the programmer can directly create an empty scene in the Unity folder, or create a scene with a camera and basic light source in the function key.

We can see the numbers 0 and 1 after the file name, that is the index value of the scene, we only need to add the index value in the script to the place where we want to convert, then the script will switch the scene through the player’s interaction .

The realization of scene conversion can help developers better distribute work. Each person can change at will in the scene he is responsible for, and then associate through buttons or icons. This can avoid unnecessary errors when multi-person teams work at home and upload code. They can use git to load the same Unity file for work and upload at any time.


Winter Week 4 Blog

Before this semester, I have been using Unity to develop mobile games. Since the adapter for mobile games can be installed on the computer, this means that if I want to develop a game that works on Android phones, I only need to download a mobile phone simulation on the computer. And pack the game files into Apk files. The advantage of this is that it allows programmers to quickly check whether there are loopholes in the game and modify them in time. For development teams with tight funds and no Android phones, they can also use mobile phone emulators to adapt games on various screens and operating systems. However, the test of the VR game made me feel uncomfortable. Although our professor gave us an Oculus quest for free for us to test the game, when the computer is connected to the Oculus quest, the computer’s CPU needs to run the unity program and perform the scene at the same time. Rendering, Oculus Linked data transmission also requires computer hardware to operate. As a result, my laptop is not perfect for game testing. When I set up a simple scene, the picture that Oculus quest saw was the same as the PPT, with a pitiful few frames. I didn’t think of this problem when I took over the VR game project.
Regarding the test of VR games, I tried two methods that take a lot of time this week. The first is to package the files in Unity and download them to Oculus Quest. This means that I have not performed a system test, I have to repeatedly package the file and download it. This took me a lot of time, and I had to choose the second way. The second way is to temporarily ignore the player’s game experience. I will simulate the game screen directly in the Unity engine. I transferred the way of character operation to the keyboard through script, which is a bit like developing a 3D game rather than a VR game. In order to better develop VR games, I decided to upgrade my laptop hardware next week, hoping that it can help me implement the program better.


week 2 bolg

This week I mainly tried to use oculus to connect to unity, and successfully connected the data in unity with the library in the team Github. During our weekly meeting, I discovered that we have a huge problem. We did not implement our project as planned in the last semester. The third semester of winter is about to pass, and the core gameplay of our VR game has not yet been determined. This is very fatal, which will affect the progress of filling the game frame later. If we implement our project according to our current schedule, we may not be able to complete the game project before the end of this semester. I often encountered such problems when developing game projects in the past. Game planners spent a lot of time discussing gameplay, background, and worldview. This will lead to unlimited delays in the development of the game. In the end, the project development team did not have a lot of time for game development, which would result in the finished game being the same as the quick product in the Game jam.
I think the best way to resolve disputes about the gameplay is for programmers to develop the game according to their plans at the same time. When the game is ready to run and try to play, the team will vote on the works of different gameplay so that the team can decide Which plan is eye-catching and can be effectively implemented. Although this approach will increase the workload of the development team, it can effectively judge the quality of different game solutions. But this method is impossible to implement in our team. As a game development team, we have a total of three members, and we act as game planners and developers at the same time. Our team has no experience in VR game development, so in a short period, we need to spend part of the time learning game development. This will cause the progress of game development to be shortened again. If we can complete a simple game demo before the fifth week of this semester, then the possibility of our game project is still very high.


Winter week one

I completed the Minigame project from Tencent during the winter vacation. Although our team did not win the first place, this is my first game. I am very happy that I can complete a minigame of my own before graduation. Although the game content and operation methods are somewhat simple, it took us nearly four months. I believe this project will help me in my resume and life experience. When working on this project, what impressed me the most was not when I was writing game code or drawing character models. A week has passed since the end of the project, and I still remember the interview after the project was completed. The interviewer asked me a very simple question. He asked me why I chose to work in the game industry. I had many official answers in my mind at the time, but I chose to be who I am. I told the interviewer that because I love games and I like the satisfaction and happiness that the game world brings to me, I hope to join a game design company and contribute my strength to designing games. Such an answer is obviously impossible for companies in China to pass the interview, but I think I just love games, so I chose to study abroad to study computer science and game design. I don’t want to answer some official words just because I get an internship opportunity.
The interviewer also asked me a question, if I could enter the game design industry, what kind of career would I choose? As a game planner, I think game system planning is very suitable for me, but system planning requires a lot of experience. System planning includes the core gameplay of the game, which is the outline of the entire game. Obviously, the interviewer thought that I was not qualified, so my winter vacation interview journey ended. From the beginning to the end of the entire project, I think that as a programmer and game enthusiast, love and focus are important motivations for achieving goals. Let us enjoy the game together and love life.

(My minigame home page)


Week 9 Blog

This week, I made a very important mistake. Regarding the prototype of the team project, our team found that it was a four-week assignment until the ninth week. We need to complete a simple game demo video within these four weeks. However, my oculus quest device was still not available, so the biggest problem I faced this week was to write a project without a debugging device. Under normal circumstances, I use Unity on the computer to write game scripts and development. When the game is initially formed, I can directly use the computer to run the game. When I need to package or move a game program to a mobile phone, Unity can also help me package the game. Players can play directly on Android phones or computer emulators through APK format files. But the problem I encountered this time was that when I wrote the program, I could not enter the game screen through the VR device. When I created a 3D project in Unity and made the scene, I couldn’t play in the game. As a result, the originally flying block cannot be moved, and the behavior of the player using the VR handle sensor to break the block cannot be shown in the game. I can only use the Unity canvas to get to the scenes I made and the boxes that won’t move.
In order to make games and record demo videos without test equipment, it took me a lot of time. Originally, I found that the time of this homework was already relatively late, which made it more difficult for me who was not rich in time. The only good thing is that I still have two teammates, they have already got Oculus equipment. They are willing to help me complete this demo video. I just need to write the game code to the best possible VR scene. In this way, they will not encounter too many problems when testing. Because what I am responsible for on the project is that the VR handle sensor can produce different frequencies of vibration when the player hits the block. So I still have to wait for the oculus device to arrive before I can develop the project. This incident made me discover that the homework must be checked in advance, otherwise, I never know when the homework will start or end.