본문 바로가기
STEM - 학술세미나/컴퓨터공학

컴퓨터공학과: 넥슨 본사에서 넥슨 게임을 키다...! Vol. 2

by STEMSNU 2022. 12. 24.

이 글을 작성하기전 미리 알아야 할 점이 있습니다. 바로 넥슨 인턴 체험기에 관한 이야기는 전공백서 탭에서 한 차례 다룬 바가 있습니다. 이번 글에서는 인턴 시절 정확하게 무슨 일을 하였는지를 자세히 서술해볼까 합니다. 혹자는 이런 의문을 가질 수 있습니다. 제아무리 서울대생이라고는 하지만 학부도 졸업하지 못한 사람이 과연 대기업 넥슨에서 무슨 일을 할 수 있을까?

때는 6학기가 끝나가던 와중 이론 지식에 비해 실전 경험이 부족하였던 저는 인턴 경험을 통해 본인의 실력을 확인하고 또한 향상시키고자 했습니다. 여러 스타트업과 대기업의 비정기 모집 공고를 확인하여 차례로 지원한 결과 넥슨의 방학인턴 프로그램에 합격하여 여름방학동안 넥슨에 합류하게 되었습니다.  제가 처음 맞닥뜨린 업무는 바로 ToZ engine을 이해하는 것이었습니다. 

어떤 게임을 개발하던지 그 게임을 개발하기 위해서는 기본이 되는 engine이 있습니다. 서버와 사용자간의 통신 및 데이터 전송 등을 매개해주는 역할을 한다고 생각하면 됩니다. 넥슨에서는 자체적으로 개발한 Toz engine을 사용하는데 일단 해당 엔진을 이해하고 이에 관련한 기본적인 tutorial를 경험해보는 것이 저에게 주어진 첫 과제였습니다. tutorial을 따라가면서 해당 엔진을 어떻게 활용하면 되는지를 확인할 수 있었습니다. 이 기존의 tutorial은 서버를 활용한 가위바위보 게임 및 유전간의 채팅 기능 구현이었습니다. 

이후 저에게 인턴 기간동안 주어진 최대 과제는 바로 새로운 tutorial의 완성이었습니다. 위와 같은 tutorial은 넥슨에서 게임 개발 관련해서 취업하는 사람들이라면 모두 겪어야하는 기본적인 과정이었기에 학부생이 맡기에는 비교적 중요도가 높은 업무였습니다. 그렇기에 제 과 선배였던 사수와 함께 약 8주 동안 붙어다니면서 높은 강도의 교육과 코딩을 반복하게 되었습니다. 수 차례의 try 끝에 새로운 기능들을 추가하였고 이럴때마다 회사 내 issue에다가 자세하게 tutorial을 기입하기도 하였습니다. 제가 새롭게 구현한 tutorial은 엔진의 새로운 기능을 포함하여 기본적인 배틀 게임 구현 및 채팅 그리고 귓속말 등의 구현이었습니다. 

베틀게임의 구현은 다음과 같았습니다. 한 유저가 선택할 수 있는 선택지는 세 가지였습니다. 공격, 수비, 스킵이었습니다. 그리고 상대방 유저 또한 선택을 마치면 한번의 turn이 진행이 되는 구조였습니다. 한 유저가 공격을 택하고 상대방이 수비를 선택할 경우 공격의 위력이 차감되며 공격과 스킵이었을 경우에는 데미지가 기존대로 차감되는 방식이었습니다. 이를 ToZ engine을 활용하여 서버에서 서로의 정보를 교환하고 이를 바탕으로 연산을 하도록 설정해 두었습니다. 이를 하나의 서버만이 아니라 여러개의 서버에서 가능하게 만들었고 각 서버에서 서로간의 채팅 뿐 만 아니라 서로 다른 서버에 존재하는 유저에게 귓속말을 건네어 소통이 가능하도록 tutorial 프로그램을 구성하였습니다. 서버에 정보를 건네줄 때에는 packet으로 감싸주어야 했고 각 packet을 어떻게 처리해줘야할지를 각각의 client나 server 측면에서 함수를 구현해야 했습니다. 

말로만 들으면 쉬워보이는 게임조차 이처럼 직접 구현하려고 하니 정말로 성가신 점이 많았습니다. 게다가 이전 tutorial에서 구현했던 기능조차 엔진의 업데이트로 인하여 새롭게 대체해주어야 했으며 새로운 기능을 교본 없이 새롭게 구현하고 본인이 그 교본을 작성한다는 것이 생각보다 매우 어려운 과정이었습니다. 또한 넥슨 자체 engine이다 보니 코딩의 기본이라고 할 수 있는 '구글링'을 하여도 정답을 얻을 수가 없었습니다. 그렇기에 과정 속에서 정말로 많은 고민과 시행착오를 겪었고 이를 극복해나가는 시간동안 저 스스로의 실력 또한 비약적으로 성장하였음을 느낄 수 있었습니다. 여러분들도 기회가 된다면 새로운 기회를 접할 수 있도록 최선을 다해주세요 ㅎㅎ 그리고 두려워하지 말고 도전하세요! 그 과정 속에서 성장하는 당신을 발견할 수 있을테니까요...!!

댓글