오픈 15분 만에 준비한 보물이 바닥난 온라인 송년회(2/2)

🧐 | 2022-01-07

안녕하세요, 넷마블 기술전략팀 조병승입니다.

이전 글인 1부에서 간략히 서비스 선택 기준과 운영 프로그램를 결정했습니다. 이제 뒷이야기인 맵 편집과 행사 진행 이야기를 시작합니다.

맵 제작

온라인 송년회 안에서 운영할 최소 프로그램을 선정했습니다. 프로그램 운영을 위한 적당한 공간은 젭에서 제공하는 크리스마스 파티 템플릿(맵 사이즈는 70×70 타일)을 골랐습니다. 그냥 볼 땐 맵 에디터에서 제공하는 바닥 타일과 오브젝트가 들어간 것 같았으나, 실제로는 2240px x 2240px 사이즈인 1개 이미지 파일이었습니다. 그래서 오브젝트 추가는 큰 이슈가 없었지만, 우리가 지우거나 크기를 바꾸고 싶은 부분이 생길 때마다 직접 맵 이미지를 수정해야 했습니다. (보통 행사 전문업체를 통해 맵을 제작할 때 이 방식을 활용합니다. 오브젝트를 다량으로 추가하거나 맵 배경 자체를 바꿀 때 그래픽 툴을 쓰기 때문에, 이왕 그래픽 툴 쓰면서 한 번에 추가하며 수정하는 것이 생산성에 도움이 되긴 합니다.)

포어그라운드(Foreground)와 백그라운드(Background)는 별도로 구분하지 않고, 모두 백그라운드로만 넣었습니다. 그래서 오브젝트 위로 캐릭터가 겹쳐지면 어색해 보일듯한 부분은 모두 지나갈 수 없도록 타일 설정을 추가했습니다. 이외에도 피아노나 스피커 앞에는 BGM을 넣었으며, 넷마블 사옥 화장실에 가면 음악을 틀어놓은 것과 마찬가지로 맵에서도 화장실에 들어가면 BGM이 나오도록 설정했습니다.

따로 프라이빗존을 설정하진 않았기에 혹여나 개활지에서 여러 사람의 음성이 섞였을 때 소음이 심해지지 않을까 걱정도 했지만, 너무 심할 때에는 관리자가 음소거를 할 수 있으므로 그대로 두기로 했습니다.

넷마블 챌린지 어워드 시상식

맵 뷰는 사용자가 정중앙에 위치하도록 기본 뷰를 잡습니다. 마침 젭은 게더타운과 달리 캐릭터 겹침을 허용하고 있었기에, 캐릭터에 밀려 뒤에서 앞 단상이 보이지 않는 문제는 생기지 않을 것 같습니다. 웹캠 카메라 화면이 아닌, 단상의 캐릭터에게 우선 집중할 수 있도록 시상식 진행 단상으로 쓸 공간을 맵 중앙 상단에 배치했습니다.

혹시나 무대(단상) 위로 참여자들이 밀려서 올라올 수 있는 것을 방지하고자 최소한의 가드를 만들어서, 바로 지나갈 수 없도록 동선을 만들었습니다. 단상 위에 있는 진행자와 수상자가 마이크 앞이라면 어디든 편하게 이야기할 수 있도록, 마이크 오브젝트를 여러 개 배치하고 마이크 근처는 스포트라이트존으로 설정했습니다.

시상식 자체는 40~60분 정도 소요될 수 있으니, 다소 지루해질 수 있는 부분은 사회자가 이런저런 직접 반응 액션을 유도함으로 해소하기로 하고, 큐시트도 제작했습니다. 시상식 존 꾸미기와 진행은 기술전략팀 김성윤님께서, 큐시트는 기술전략팀 강현주님께서 맡아주셨습니다.

OX 퀴즈

맵에 흩어져 있는 사용자가 시상식에 맞춰 한곳에 모인 김에 단체로 할 수 있는 이벤트 중 가장 대중적인 이벤트는 OX 퀴즈입니다. 넷플릭스의 ‘오징어 게임’이 유행을 끈 이후로, ‘무궁화꽃이 피었습니다’를 진행하는 곳도 참고했었습니다. 음성 전달 시간차가 있을 수 있기 때문에 대기시간을 조금 차이 나게 쓰는 것은 형평성에 큰 문제가 없어 보였지만, 시간 컷을 정확히 써야 하는 방식은 개인차가 많이 생길 듯해서, ‘무궁화꽃이 피었습니다’보다는 OX 퀴즈가 적당해 보였습니다.

게더타운에서는 캐릭터끼리 부딪히기도 하고 100명이 되는 순간부터 버벅임이 많았기 때문에, 혹시나 시상식을 진행하면서 게더타운 같은 버벅임이 심각하다고 보인다면 취소하거나 버벅임도 게임의 일부라고 치고 넘어갈 생각이었습니다.

하지만 역시 OX 퀴즈의 생명은 문제 그 자체죠. 넌센스도 살짝 섞여야 하고, 단시간에 검색하기 쉽지 않아야 합니다. 그래서 주최측 독단으로도 보이지 않을 근거가 있는 문제를 20개 정도 만들었습니다. 20개로 모자르면 남은 생존자끼리 눈치게임이나 369게임으로 우승을 가르기로 하고, 기술전략팀 이윤진님께 퀴즈 문제 만들기를 부탁드렸습니다.

미니 게임

시상식과 OX 퀴즈는 최대한 많은 인원이 동시간에 모여서 동기식으로 진행하는 프로그램입니다. 동시간이 아닌 시점에 접속했거나, 미리 대기하는 시간 등에 즐길 수 있는 콘텐츠가 필요했습니다. 비동기식으로 플레이해도 지장 없으면서, 서로 최소한의 경쟁을 끌어 낼 수 있는 게임을 찾아야 했습니다.

맵 자체를 수정하면 방탈출, 미로찾기 등도 비동기식 경쟁 콘텐츠로 할만합니다. 다만, 당시 방탈출과 미로찾기를 깔끔하게 구현할 만큼 젭에서 제공하는 기능이나 맵 에디터가 편하지 않았던 터라, 맵을 수정해서 쓰는 콘텐츠는 지양하기로 했습니다.

웹 임베드를 걸어서 플레이할 수 있는 간단한 웹 게임인 2048, 헥스트리스(Hextris), 크럼지버드(Clumsy Bird)를 골랐습니다. 크롬 브라우저 오프라인 모드에서 플레이할 수 있는 공룡 게임(T-Rex, dino)도 어떨까 싶었으나, 게임에 진심이신 분들이 무한의 영역에 빠지실까 염려돼 제외했습니다.

리더보드와 방명록

리더보드와 방명록은 기록할 수 있는 게시판 기능이 기본입니다. 종종 행사를 운영할 때 쓰던 슬라이도(sli.do)는 수용 예상 인원수에 맞춰 유료 결제가 필요했습니다. 유료 플랜에는 이번 한 번만 잠시 소화하면 되는 수준을 넘어선 고급 기능이 많이 있었습니다. 용도와 목적을 넘어선 오버스펙으로 느껴졌습니다.

마침, 모두의연구소가 개최했던 ‘모두콘 2021’에서 썼던 매우 간단한 기능을 해소하던 방명록이 떠올랐습니다. 모두의연구소에 문의한 결과, 당시 썼던 툴은 ‘패들렛’이라는 답을 얻었습니다. 패틀렛을 활용해 익명으로 작성할 수 있는 방명록과 미니 게임 최고점수 스크린샷을 등록할 수 있는 리더보드를 만들어 웹뷰로 넣었습니다.

보물찾기

보물찾기 자체는 미리 예고하지도 않았고, 깜짝 알림 공지에서도 따로 알려주지 않았던 콘텐츠입니다. 소소한 이스터에그 정도로 맵 수정 중에 보이던 구석 지점에 팝업 메시지를 숨겨두고, 빈 박스도 몇 개 흩어놓은 정도로 수정을 마쳤습니다.

rm -rf 2021 온라인 송년회

급작스럽게 준비한 온라인 송년회였지만, 그래도 어떤 이름을 붙여주고 싶었습니다. 어떤 특별한 네이밍이 아니라, 그냥 익숙하면서 적당한 네이밍으로요. ‘shutdown -r’로 재부팅 기분을 내려고 보니, 이건 송년회보다는 신년회가 좀 더 맞을 것 같다는 생각이 들었습니다. 이외에도 몇몇 설치 제거나 비활성화 같은 명령어도 후보에 있었지만, 그냥 그중 가장 텍스트 길이가 짧은 명령어를 선정했습니다.

2021년 12월 27일에 발송한 사전 공지에서는 접속URL은 당일에 공개한다는 정도만 알려드리고, 위에 있었던 설명처럼 미니 게임이 있다는 정도만 알려드렸습니다. 이스터에그로 넣었던 보물찾기는 전혀 그 어떤 알림이나 분위기조차도 알려드리지 않았었습니다.

사전 점검 및 리허설

2021년 12월 29일, 오후 2시에 맵 접속 URL을 알려드릴 계획으로, 오전에 간단히 접속 사전 점검과 리허설을 했습니다. 보물찾기 오브젝트는 다 지운 상태로, 보안실에 계신 분들께 리허설용 접속URL만 공유해 드렸습니다. 접속 방법이나 내부 콘텐츠 안내 등은 하지 않고 그저 URL만 드렸을 뿐인데, 로그인부터 맵 기능 실행까지 알아서 척척하시는 것을 보고 큰 이슈 없이 리허설을 마쳤습니다.

시상용 폼보드 이미지

리허설 중, 시상식 진행이 다소 심심해 보인다는 의견이 나왔습니다. 만약 오프라인 대면 행사였다면 현장에서 상패 등을 직접 전달하는 액션이 있을 텐데, 젭이나 게더타운에서는 캐릭터 간 물건 전달 등을 보여줄 방법이 없기 때문에 허전할 수밖에 없었습니다.

마침 이미지 파일을 전체에게 공유해줄 수 있는 기능이 있었던 덕분에, 시상식 시작까지 얼마 남지 않은 시간을 기술전략팀 전선영님께서 쉬지 않는 클릭과 드래그로 GIF 파일 형태의 시상용 폼보드 이미지를 긴급히 추가 제작해주셨습니다.

보물상자 추가

어쩌면 보물상자 이슈는 리허설 때부터 이미 예견됐을지도 모르겠습니다. 특별히 말해주지 않았는데, 보물상자가 좀 더 늘었으면 좋겠다는 피드백이 들어왔으니까요. 대체 어떻게 찾은 걸까요? 다음부턴 안에 무슨 코너가 있는지 미리 안내 자체를 안 해도, 알아서 다 놀고 가실 것 같은 기분이 들 정도였습니다.

준비한 상품 수량이 조금 불안하긴 했지만, 보물상자와 빈 상자를 듬성듬성 추가하고, 접속 계정 도메인 제한 등 최종 점검을 마쳤습니다.

시작 알림

예정했던 오후 2시가 됐고, 접속할 수 있는 URL을 전체 메일로 발송했습니다. 딱히 뭔가를 알려드리지 않아도 맵 이곳저곳을 다니는 접속자가 점점 늘더니, 시작 10분 만에 보물상자를 찾은 분이 등장했습니다.

캐릭터가 이동하는 모습이 서로에게 보여서 그랬던 걸까요? 뒤를 이어 메신저에 보물을 찾았다는 신고가 줄줄이 오기 시작했습니다. 맵이 좁긴 했지만, 그렇다고 쉬운 곳에 숨겨둔 건 아니라 생각했었으나, 오픈 15분 만에 미리 준비해줬던 상품이 모자를 수도 있겠다는 위협이 느껴졌습니다.

황급히, 기술전략실장이신 황영준님과 보안실장이신 이병래님께 상품 추가를 위해 지원을 부탁드렸고, 흔쾌히 수락해주셨습니다. 이후 계속 보물상자를 찾았다는 참가자가 줄지어 등장했고, 가벼운 마음으로 참가 기록을 남길 수 있었습니다.

시상식과 OX 퀴즈

본 행사인 시상식이 시작하자, 200명이 넘는 분들이 접속해서 옹기종기 시상대 앞으로 모였습니다. 박수나 함성 같은 리액션은 점프와 이모지로 대체하기로 하고, 순서대로 시상을 이어갔습니다. 사이사이 마이크 연결이 잘 되지 않은 수상자는 말풍선 채팅으로 수상 소감을 대체하고, 진행자가 대신 읽어주는 것으로 돌발 이슈를 해소했습니다.

시상식이 끝나자마자 바로 OX 퀴즈를 연결해서 진행했습니다. (OX 퀴즈로 제시했던 문제는 기출변형을 막기 위해 비공개함을 양해 부탁드립니다.) OX 퀴즈 장면은 아래 몇몇 스크린샷으로 모든 설명을 대체하겠습니다.

행사 종료

동기식으로 동시간에 진행해야 하는 프로그램을 모두 마쳤습니다. 남은 분들 중 미니 게임을 더 하시는 분들도 계셨고, 서로 이야기를 도란도란 더 하시다가 가시는 분들도 계셨습니다.

구글 애널리틱스에서 간단히 확인한 사용 동향으로 보자면, 메일로 접속 URL을 받자마자 먼저 접속하셨던 분은 준비한 콘텐츠를 구석구석 돌아다니면서 콘텐츠를 소모하셨었다고 볼 수 있을 만큼 이벤트를 발생시켰습니다. 시상식과 OX 퀴즈가 있었던 16시에는 접속자 수는 최댓값인 258명까지 올라갔었지만, 이벤트 발생량은 14시에 비하지 못했습니다. (산술 수치로도 접속자당 평균 이벤트 발생량은 14시에는 21.5회였고, 16시에는 7.6회로 큰 차이가 있었습니다.)

2022년에는…

누군가에는 첫 경험일 수도 있고, 누군가에겐 너무나도 당연한 코로나 시국의 비대면 온라인 행사였습니다. 마침 OX 퀴즈 어뷰징 방지용 비디오 판독을 핑계로 행사 일부를 녹화해둔 덕분에, 이 글을 작성하는 지금도 당시 행사를 계속 반복해서 보면서 피식피식 웃고 있습니다.

특별히 접속 방법이나 사용 단축키 등을 알려드리지 않았음도 불구하고, 하나하나 다 누르고 서로 대화하면서 기능을 공유하시던 분도 계셨고, 절대 나갈 수 없는 막힌 길 맞은편에서 유료템이라며 나오는 방법을 찾아보라고 놀리는 분도 계셨습니다. 각자 경험의 차이는 제쳐두고, 한곳에 모여서 즐겁게 한바탕 놀며 한 해를 마무리한다는 자체가 송년회의 본질이 아닐까 합니다.

정말 빈틈없이 다 놀고 가신 넷마블 엔지니어들과 함께 할 수 있어서 영광이었습니다. 2022년도 잘 부탁드립니다.

넷마블 엔지니어로 함께 하시고픈 분들께선 언제든지 넷마블의 문을 두드려주세요. 문 앞에서 항상 기다리고 있겠습니다.

감사합니다.

P.S. 다음에 기회가 또 온다면 리더보드나 보물상자 제보는 지라로 받아보자는 정보시스템팀 조경민님의 피드백이 있었는데, 심각하고 진지하게 고민해보겠습니다.