ENGLISH
    • 한국어
    • ENGLISH
    • 日本語
    • 中文-繁體

    2022.12.22 Culture & Values

    The First Step for Future Global Talents in Gaming: NC Global Internship Program

    NC joins the global market by expanding into various genres and platforms. Since 2015, the company has been conducting the “NC Global Recruiting” every year to bolster its global competitiveness and nurture domestic and foreign talents from top universities. This year’s global recruiting began on December 19, 2022 and is still ongoing. Successful candidates will get hands-on experience and opportunities to participate in various projects including AI and NLP.

    In this article we meet Donghwi Jin, who is currently working as an Aion2 Seed game engine programmer after completing the global internship in Game AI in 2015. Read on to learn more about the internship experience at NC that connected the study of applied mathematics with the practice of engine programming.

    A Step towards Game AI from Math

    Tell us about yourself.

    I have completed a 2015 internship in Game AI at NC. You could say that I’m the first graduate of the global internship program. After the internship, I completed a master's degree in computer engineering focusing on game development and rejoined NC as a professional researcher. I am currently working as an engine programmer of Aion2 Seed developing game engine technology.

    I was an undergraduate at the time when I applied for the internship. I majored in mathematics at MIT, and the department there was divided into two majors: theoretical mathematics and applied mathematics. I chose the latter and majored in Mathematics with Computer Science.

    A combination of math and games sounds rather strange. What motivated you to apply for an internship at a game company?

    I enjoyed playing games ever since I was a kid, but never have I thought of making one. When I was a junior in college, I took game design as a liberal arts class. There, we worked with prototypes and had to make our own board game, and it was so much fun. It was at this time that I first became interested in game development.

    A combination of math and games may sound unfamiliar, but in fact, there are many applications of mathematics in games. There are various elements in games that are made up of numbers, including character stats and item prices. For games to work well, these numbers must be balanced in harmony.

    For example, if the majority of players choose character A over characters B, C, or D, the game is bound to be unbalanced. When the balance is broken, it means the dimension of the game is narrowed. This is why balancing the game is very important. Of course, there are times when game developers constantly analyze and regulate each by hand. However, automating this process through AI technology would be much more efficient, and I had a burning desire to conduct such AI automatic balancing research and apply it to actual games.

    You applied through the MIT Overseas Internship Program. Is there a particular reason why you applied to Korea or NC?

    MIT has an overseas internship program called “MISTI,” and companies from various regions including Asia, USA, and Europe recruit interns through the program. Luckily, Korea was added to the regions for the first time in the year I applied.

    I believed that if I did an internship in my home country, Korea, I wouldn’t have to worry about a new language or culture and could focus only on my work. In fact, other IT/tech companies in Korea were also an option. However, my interest in games was at its peak at the time of my application because it was the semester when I took the game design class. I wanted to take the first step of my career in a place where I could directly experience games which I was most interested in. I was curious about the opportunities I could experience at NC, a leading company in MMORPG game development. Thereupon, I chose NC without a second thought. 

    | 2022 NCSOFT GLOBAL RECRUTING INFO.SESSION (Link)

    Which of your qualifications do you think helped secure the intern position during the final process?

    As is the case for any student, it is not easy to have a lot of practical work experience. I didn't claim that I was an expert at my job. In fact, the interviewers didn't seem to expect a lot of technical details from me. Instead, I emphasized that I’m a fast learner. I pointed out that I can quickly adapt to new environments and at least try to mimic new tasks.

    3 months is neither short nor long. I thought the most important thing during the internship was to create a win-win situation between me and the company. This is why during the recruiting process, I focused on talking about what I wanted to do, what I was good at, and what type of projects I wanted to participate in. Thankfully, NC listened to these points with great interest. I had high expectations that I would be able to work under a project tailored for me beyond technical work if I worked at NC.

    Bridging the Gap between Academics and Practice

    You completed an internship in Game AI at NC. Please describe the project you have been working on.

    I conducted an AI research project for a game that was under development at the time. Since the game was in the early stages of development, only a prototype was available. It needed an opponent AI to run a test because it was a fighting game.

    A human tester would manually highlight critical moments that led to victory in each match. My goal then was to verify whether an AI tester would be able to perform the same task. The purpose of my research was to answer the question: “Is it possible to create an AI that can show game replays and extract game highlights?” To do so, I first had to figure out which conditions are needed for players to win the matches. Furthermore, I thought it would be better if these conditions could be expressed numerically.

    Were you able to find the answer to your project question as you intended?

    Unfortunately, I couldn’t—the question was too broad to come up with a clear answer within three months. So, rather than a result, I focused on what I had achieved in the short term and what more would be needed to achieve my next long-term goal.

    With the three-month analysis data, it was possible to automate a graph that showed each player’s chance to win the game. However, I concluded that it was not enough to extract the highlights of matches with this graph only. I suggested that we need more information, including the number of units the player has made, the number of wins, and whether the engagements occurred close to the player’s base or the opponent's base in order to come up with a more accurate graph. It was disappointing to fail to find the answer, but I was happy to be acknowledged by my mentors and team members for the process and concerns I had in trying to solve the problem.

    Was the work hard because it was a difficult project?  

    Certainly, the project itself was rather difficult. In fact, it felt a lot more difficult because it was my first time using a game engine or writing a code. Even so, I didn't do it alone.

    During the internship, I worked on the project together with my mentor—we had frequent meetings where I could ask a mountain of questions. Now that I think of it, I feel like I have to apologize. (Laughter) The project director also attended meetings once a week and advised me on technical areas. He also recommended me to take a broader view of the project. It was a great help in breaking the restrictive approach that I was unknowingly confining myself to and solving problems from a new perspective. 

    The communication with the team members not only helped me with the project, but it also had certain influence on my current approach to work. At school, if it wasn't a team project, I only had to study well on my own. But in the company, you can't do anything alone. I realized that a programmer's competitiveness lies not only in their development skills, but also in how they can solve problems together with others and produce better results. Taking this as an opportunity, to this day I try to get new perspectives by talking to other development teams and seeking feedback. 

    What was the working environment and culture like?

    NC was a place where I could fully concentrate on my work. There are various convenience facilities and benefits including three meals a day, a gym, and a medical center, so I was able to finish my internship without much difficulty.

    What impressed me was the team members’ attitude towards work. They cared about even the smallest details and treated work with sincerity. In here, I felt the need to do my best to be recognized and trusted as a member of this team. Also, everyone took my questions seriously taking time to answer them. Regardless of my position, my team members showed interest in my project and gave me advice. Now that I am in the company as an employee, I feel more grateful to them. Although I have joined a different team now, it is reassuring that I’m maintaining a good relationship with the team members at the time of internship.

    Providing a Powerful Playground for Game Development

    You are currently working as a game engine programmer. Please explain what engine programmers do.

    Simply put, a game engine is a tool for creating games. An engine programmer is someone who provides a powerful playground for game designers, artists, and client programmers to let their imagination run wild as they work.

    To make that happen, it is important to communicate with other development teams. Every engine programmer should be able to deal with developers’ inquiries and give a quick answer on whether or not the company has the technology and resources to implement their ideas in a certain game. It is the engine programmer's job to provide developers with tools that are easy to use with a fast output.

    Has the internship experience at NC helped you grow as an engine programmer?

    Yes. After the internship, I returned to the United States and completed my master's degree. If it wasn't for the internship at NC, I probably wouldn't have thought of doing it in the gaming field.

    I had to develop a game by creating a new game engine, with no commercial engine, for my master's degree graduation project. This has led me to rejoin the company as a professional researcher at the NC’s Animation Tech Lab, a home of engine technology research. The internship experience at NC was positive, and I thought that the research in graduate school and previous game AI experiences could create synergy. For three years I studied engine technology, and currently moved to Aion2 Seed to expand and optimize the Unreal Engine settings for the games in development.

    Do you have a goal you want to achieve in the future?

    My short-term goal is to release a game. If possible, I want to keep working until the release of Aion2. A product like Unreal Engine is already a great product. But no engine, no matter how great, can perfectly fit every game. Every engine programmer must have the courage to break free from the existing framework and modify it according to each game’s individual needs. I want to become an engine programmer who is courageous enough to do so and create games that can compete in the global market.

    Personally, I like the competition in sports. In games and sports alike, one must prepare tight and show everything they’ve got during the given time. And when the results come out, you have to humbly accept them. I want to live a life without regrets, preparing with passion and doing my best at the given moment.

    Lastly, do you have anything to say to NC Global Internship applicants?

    The biggest reward I got from my internship was the experience of working in the industry and company I was interested in. It's quite different once you experience it from the inside. You can also foster a new perspective because academic research and company projects are very different in terms of progress and goals. In addition, because interns carry out projects that are actually applicable in the field, you can expect improvements in your technical skills.

    I would also like to recommend to try setting the direction of the project from the perspective of a game developer before applying for an internship. The most important thing in game development is whether your idea can be implemented. In academic research, when you tackle an issue, you first analyze whether you can reduce time and resources, and if the answer is yes, this issue becomes your thesis. If you set the direction of the project well and continuously work on it with your mentors and team members, I am sure that it will be a valuable experience beyond academic studies.

    * The content stated in this interview is the personal opinion of the interviewee and does not represent the official position of NC.

    * NC Global Internship welcomes students from such overseas universities as MIT, Stanford, etc., continuously expanding the pool of partner universities.