https://www.youtube.com/watch?v=p4wy7FGczrw
어제는 이 영상을 통해 알게 된 학생 게임 개발자 웨루 님이 주최하는 컨퍼런스에 다녀왔다.
물론 내가 일방적으로 아는 것이다.
http://youtube.com/post/UgkxjdTUfH4EWC4TSCZaoOAuKOxN1FM04wmp?si=Had1JlZerfGc0wlp
[JCJS games] 웨루님의 게시물
뜸 부기.
www.youtube.com
3주 전쯤 새벽에 유튜브를 하다가 갑자기 게시물이 떴는데 혹한 듯이 신청했다. 자기어필에 마인크래프트 서버 운영했던 경험을 적었는데 나름 먹혔나 보다. 나중에 알게 된 사실이지만 그래도 인원의 2배 가량이 신청했다고 한다.
이런 오프라인 행사에 참여하는 것은 처음이라 긴장을 좀 하고 갔다. 어쨌든 당일날 영등포구청역에서 장장 17개 역을 거쳐 제시간에 성수역에 도착했다. 근 3년만에 혼자 지하철을 탔다. 후기를 올릴 줄 알았으면 혼자 지하철을 타는 기념사진이라도 찍어둘 걸 그랬다.

들어와서 명찰을 받았다. 닉네임으로 해도 된다길래 날잼 명의로 신청했다. 슬슬 다양한 플랫폼에 걸쳐 퍼져있는 날잼과 시계태엽, 그리고 주민이라는 이름 중 하나로 정해서 통일시켜야 할 듯 하다.
 
강의실에 들어가보니 대부분의 사람들이 이미 도착해 있었다. 고인물 룩을 한 분들이 많아서 개발자 컨퍼런스인게 실감이 갔다. 웨루님은 JCJS Games라는 디스코드를 중심으로 활동하시기 때문에 거기서 본인들끼리 아는 사람들도 많았을 텐데, 나는 그런 온라인 상의 사교행위를 그닥 즐기지 않기 때문에 나는 그냥 행인 1 느낌으로 참가했다.

그리고 이렇게 팜플렛도 받았다.


 
컨퍼런스의 시작을 알리는 어그로와 함께 오프닝이 시작되었다. 웨루 님은 확실히 장발이라던가 뭔가 그런 데서 오는 비범함이 느껴졌다.
 
그냥 핸드폰 노트에 메모할 생각으로 아무 짐도 없이 갔는데, 막상 들으면서 메모하다보니 주변의 분위기와 타자 속도 이슈로 인해 노트북을 가져올 걸 하고 후회했다. 앞으로는 노트북을 목숨처럼 여기며 가지고 다녀야겠다 싶다.
특별 세션
첫 세션이자 특별 세션 게스트로는 골드메탈 님이 오셨다.
https://www.youtube.com/@goldmetal
골드메탈
게임 개발이 처음이신가요? 아래 링크로 시작하세요! 유니티 엔진으로 게임 개발을 다루는 창작&교육🎓채널입니다. 프로그래밍, 그래픽 등 게임 개발에 관련된 다양한 분야의 컨텐츠를 진행하
www.youtube.com
이름만 들었을 땐 누구신지 몰랐는데 알고 보니 이 영상을 만드신 분이셨다. 유니티 입문을 시도한 사람은 한번쯤 본 영상일 것이다.
https://www.youtube.com/watch?v=j6XLEqgq-dE
 
골드메탈님 세션의 내용은 유니티코리아 재직자로서(사실 별 상관 없음) 여러가지 유용한 유니티 기능들과 애셋들을 소개하시는 내용이었다.
https://assetstore.unity.com/packages/tools/utilities/naughtyattributes-129996
NaughtyAttributes | 유틸리티 도구 | Unity Asset Store
Use the NaughtyAttributes from Denis Rizov on your next project. Find this utility tool & more on the Unity Asset Store.
assetstore.unity.com
소개해주신 것들 중 NaughtyAttributes라고 변수들을 인스펙터에서 조정이 용이하도록 하는 애셋이 있었는데 세션 내용 중 가장 범용적으로 쓰일 수 있는 것 같아서 링크를 남겨둔다. 나머지는 내가 나중에 유니티 숙련도가 올라가 한번씩 사용할 일이 있다면 소개해보도록 하겠다.
 
각 세션마다 끝나고 질의응답 시간이 있었는데, 나는 유니티를 포함한 여러가지 영미권 툴들의 영어로 된 매뉴얼들을 잘 읽는 법에 대해 질문했다. 마침 초청인사로 오신 다른 유니티코리아 직원 분이 답변을 해 주셨다. 현지화에 최선을 다하고 있지만 최근 자동번역 기술이 너무 발달해서 현타가 오는 중이라고... 브라우저 번역 기능으로 80-90% 정도가 채워지고, 나머지 10-20%는 AI 등으로 채울 수 있다고 한다. 그래도 공식적인 한국어 매뉴얼이 완성도 있게 갖춰지는 날을 기대해 본다.
 
그 외에도 리듬게임에서 문제가 될 수 있는 유니티의 반응성 문제(답변: 개발자의 여러가지 최적화 역량에 따라 개선 가능)라든가, 비주얼 스크립팅의 한계(답변: 헤비한 장르는 이슈가 있을 수 있지만 간단한 장르에선 큰 문제 X)라든가, 유니티의 애매한 권장 사양(답변: 개발하는 게임에 따라 천차만별이기에 애매모호하다. 자신이 만드는 장르의 레퍼런스 게임에서 한 단계 업 한 것으로 생각하자) 등 내가 생각하지 못한 정말 좋은 질문들이 많이 있었다.
 
끝나고 무수한 사인 요청의 행렬이 있었는데 나는 그냥 가만히 있었다 하하하
두 번째 세션: 1인 개발로 게임을 끝까지 완성하는 방법
두 번째 세션은 BMUTED라는 분이 '1인 개발로 게임을 끝까지 완성하는 방법' 이라는 주제로 진행하였다.
https://store.steampowered.com/app/3619420/Lab_Eject/
Lab Eject on Steam
You are the one who suddenly break out from vivarium And You feel that the freedom is out there.There are various obstacle out there.Try to escape from a lab and get freedom for Slimeslime need your help for itIt will be hard trip.
store.steampowered.com
이런 점프킹류 게임을 스팀에 출시하셨다고 한다.
 
본인이 완성에 실패하신 경험을 여럿 풀어주셨는데, 뭔가 하나의 아이디어에 꽂혀 이미지만 만들었다가 힘 빠져서 포기하셨던 것이 나와 많이 비슷해서 와닿았다.
 
따라서 개발 방식을 달리해서 완성한 게임이 위의 Lab Eject이다. 이 게임을 개발한 과정을 바탕으로 완성을 하는 팁을 알려주셨는데 요약하자면 기초만 구현 → 메뉴나 설정 등의 외적 기능 구현 → 외부 테스트(디스코드 등의 커뮤니티 이용)와 피드백 반복 → 완성 이다. 타인의 피드백을 받고 수용하는 과정이 지속적인 동기부여에 도움이 되셨다고 한다. 아무래도 번뜩이는 아이디어와 같은 내적인 동기는 한계가 있을 테니 맞는 말인 것 같다.
 
질의응답 시간에서 이 게임의 하드코어한 난이도는 의도되었냐는 질문이 나왔는데, 개발자와 유저의 게임 숙련도가 다르다는 것을 신경쓰지 못한 점이 있다고 하셨다. 나만 해도 게임을 만들 때 기능 하나를 추가하려고 게임을 수십 번씩 켰다 껐다 한다. 개발자로서 간과하기 쉽지만 염두에 둬야 하는 부분인 것 같다.
세 번째 세션: 게임 잼, 이렇게 하면 망합니다
세 번째 세션은 조이라는 분이 '게임 잼, 이렇게 하면 망합니다' 라는 주제로 진행하였다.
 
당연히 망하라고 하는 이야기는 아니고 반면교사로 삼으라는 이야기였다. 나는 게임 잼에 참가해본 적도 없고 참가할 의향도 아직 없지만, 6개의 세션 중 가장 인상적이었다.
 
조이 님은 온라인과 오프라인을 통틀어 게임 잼을 굉장히 많이 참가하셨던 분이였는데 이러한 경험을 바탕으로 5가지의 '망하는 방법' 을 소개하셨다. 요약하면 다음과 같다.
 
1. 재미보다 메시지 앞새우기: 게임 잼 특성상 세계관이나 스토리를 전달하려는 의도는 잘 먹히지 않는다.
 
2. 완성되지 않은 경험 전달: 버그 등은 게임 자체의 퀄리티를 떨어트린다.
 
3. 지루한 플레이 루프 만들기: 단순함은 좋지만 단조로움은 그렇지 않다.
 
4. 무리한 기획 하기: 아무리 좋은 룰과 기믹이 있어도 이를 재밌게 녹여내는 것은 개발자의 역량이다.
 
5. 게임잼 이해에 실패하기: 게임 잼 특성을 고려해 빠르게 재미를 전달할 수 있어야 한다.
 
마지막으로 게임 잼의 의의에 대해 말씀하셨는데, 게임 잼은 거친 승부나 고상한 예술이 아니라 내가 만들고 싶은 게임을 만드는 과정이라고 생각한다 하셨다. 나의 지론과 어느 정도 일치하는 부분이다.
 
아무래도 개발자는 자기 게임에 대해 객관성을 잃기 쉽기 마련이다. 그래서 재미있는 루프와 재미없는 루프를 구분하는 법에 대해 물어봤는데, Ketchapp 사의 라이더나 나이프 히트 같은 게임을 예로 들면서 이렇게 피지컬로 재미있게 할 수 있으면 그냥 밀고 나가도 되지만 그렇지 않다면 주기적인 변주를 의식적으로 추가하라는 답변을 해 주셨다.
네 번째 세션: 데이터 지향 채택으로 성능 10배 끌어올리기
네 번째 세션은 꾸불이라는 분이 '데이터 지향 채택으로 성능 10배 끌어올리기' 라는 주제로 진행하였다. 6개의 세션 중 유일하게 기술적인 부분에 대한 발표였다.
 
데이터 지향(Data-oriented design, DOD)이란 개념을 이번 세션에서 처음 알게 되었다. 한마디로 객체지향이 코딩을 사람 입장에서 깔끔하게 하는 것이라면, 데이터 지향은 컴퓨터 입장에서 깔끔하게 하는 것이다.
 
예를 들어 bird라는 클래스에 hp, position, size 등의 변수가 있다고 할 때 여러 개의 bird가 있다면
 
주 메모리에
| HP | 위치 | 크기 | HP | 위치 | 크기 | HP | 위치 | 크기 | ... | 
이런 식으로 저장되겠지만
 
birds 클래스를 만들어 각 변수들을 그냥 배열 형태로 넣어버리면
| HP | HP | HP | ... | 위치 | 위치 | 위치 | ... | 크기 | 크기 | 크기 | ... | 
이렇게 같은 종류의 값들이 연달아 저장되게 된다.
 
이 방식이 주 메모리에서 캐시 메모리로 값을 가져올 때 더 효율적이라고 한다. 이렇게 컴퓨터가 데이터를 참조하고 수정하기 편한 방식으로 코드를 작성하는 것이 DOD인데, 사실 이건 컴퓨터 메모리 구조를 이해하고 있어야 뭐가 효율적이고 비효율적인지 알 수 있기에, DOD를 제대로 적용하려면 공부가 많이 필요할 것 같다.
 
실제로 보여주신 예시에서 같은 게임을 각각 S23에서 OOP, 노트3에서 DOD로 돌렸을 때의 성능이 거의 동일했기에 DOD의 효과는 쉽게 체감할 수 있었다.
 
여기까지가 DOD에 대한 이론적인 설명이었고 유니티에서 DOD를 활용하는 방법에 대해 설명하셨다.
유니티에선 DOTS(Data-oriented technology stack)라는 이름으로 DOD를 적용할 수 있는데 자세한 방법은 내가 완벽하게 이해를 하지 못한 관계로 생략한다. 그 대신 직접 소개해주신 DOTS를 공부하기 좋은 유튜브 채널을 남겨둔다.
https://www.youtube.com/playlist?list=PLzDRvYVwl53s40yP5RQXitbT--IRcHqba
Unity DOTS / ECS Tutorials
Learn how to work with Unity ECS and the entire DOTS stack for massive performance!
www.youtube.com
https://www.youtube.com/@TurboMakesGames
Turbo Makes Games
🔥 Taking The Hot Path 🔥 Follow for all sorts of content surrounding creating games using data-oriented design.
www.youtube.com
다섯 번째 세션: 니들 이대로 가면 게임 출시 못한다고!!!
다섯 번째 세션은 켄터라는 분이 '니들 이대로 가면 게임 출시 못한다고!!!' 라는 주제로 진행하였다.
 
마감을 잘 하는 법에 대한 내용이었는데, 상대적으로 가벼운 내용이었지만 팀프로젝트에서는 보이지 않는 제 3자에게 책임을 전가하게 되기에 일정 실행의 주체가 누구인지 명확하게 규정해야 한다는 말은 29일로 다가온 학교 축제에 쓸 게임을 아직 제대로 완성도 못한 내가 뜨끔해지는 부분이었다.
 
또한 리더로서 팀원들에게 '어떻게' 와 '왜' 를 명시해야 한다는 것이 중요하다는 것도 인상적이었다.
마지막 세션: 기억에 남는 게임, 기억에 남는 나
마지막 세션은 이번 컨퍼런스의 주최자인 웨루 님이 '기억에 남는 게임, 기억에 남는 나' 라는 주제로 진행하였다. 역시나 인상 깊은 내용이었지만 이번 세션은 메모를 하지 않고 그냥 계속 들었다.
 
복기하자면 본인의 이야기와 게임 개발을 하며 느끼는 불편함을 AI 툴로 극복하는 이야기(게임 개발을 AI로 하기 X, 게임 개발용 도구 개발을 AI로 하기 O), 지금 만들고 있는 게임 이야기 등이 있었는데 들을수록 참 대단한 분이라는 생각이 들었다.
현직자의 조언
컨퍼런스를 마무리하면서 초청 인사로 오신 각각 유니티코리아, 펍지, 넷마블 네오에서 일하시는 분들이 한 마디씩 남기셨다. 유니티코리아 직원 분이 컨퍼런스 초반에 나온 요즘 게임업계의 어려움이 어떤지에 대한 질문에 대한 답변으로
 
1. 게임계의 불황은 시간을 쓸 다른 곳이 너무 많아진 것에서 기인한다.
2. 게임개발의 진입장벽이 낮아지며 공급이 증가하였다. 닷컴 버블과 비슷한 현상
3. 그러나 최근 스팀에서 유행한 PEAK의 사례처럼 우리가 아직 발견하지 못한 재미는 많다. (이 부분에서 리썰컴퍼니가 떠올랐다.)
4. 자기만의 재미에 대한 접근을 해라
 
라는 이야기를 해 주셨다.
 
또한 넷마블(사실 펍지에서 나오신 분이랑 살짝 헷갈리는데 아마 넷마블)에서 나오신 분도 AI를 통해 개발자가 아닌 기획자도 게임을 만들 수 있게 되면서 인디 바닥은 더욱 견고해질 것이고, 인디판은 더욱 커져야 한다는 희망찬 말을 해 주셨다.
후기

끝나고 굿즈도 받았다. 원래는 노트북 케이스 받고 싶었으나 선착순 이슈로 에코백으로 선택. 받아보니 생각보다 훨씬 튼튼하고 깔끔해서 오히려 좋은 건가 싶기도.
 
컨퍼런스에 대해 전반적인 감상을 남기자면 정말 좋았다. 따로 흠 잡을 데가 없다. 접근성도 좋았고(성수역 2번출구 1분거리), 내용도 뜬구름 잡기라던지 당연한 얘기가 일절 없이 알찼으며, 저마다 하나씩은 안고 돌아갈 것이 있었다. 나랑 같은 나이대의 고등학생 분이 이렇게 유니티한테 후원을 받으면서 컨퍼런스를 열었다는 점이 정말 대단하다라는 어휘 말고는 표현하기 어렵다.
 
굳이 아쉬운 점이 있다면 나의 찐따 모먼트로 인해 남들 다 서로 명함 공유하고(물론 나는 명함 없음) 할 동안 찌그러져 있던 점이나 뒤풀이에 안 간 점인데, 나의 깡이 부족해서 어쩔 수 없는 부분이었다. 끝나고 나가는 길에 스태프인 허윤 님한테 명함 한 장 받긴 했다. 앞서 말했듯이 이런 행사 참여가 처음이기에 차차 좀 적응하고 고쳐 나가야 할 점이라고 생각한다.
 
슬슬 날잼으로 활동명을 통일하고 어디선가 대외활동을 좀 시작해야 하는 타이밍이라고 느껴진다. 뭐라도 하나 시작해서 명함도 좀 만들고 그렇게 좀 어른스러운 사람이 되는 것이 아닌가 하면서 컨퍼런스 후기 끝.
