NDC 시간표
2일차
- 모바일에서 사용 가능한 유니티 커스텀 섭스턴스 PBR 셰이더 만들기
...더보기
- 발표자: 박동민(넥슨코리아)
- 발표 내용
- 유니티 엔진에서는 PBR을 사용할 수 있음.
- PBR: Physically Based Rendering - 물리 기반 렌더링
- PBR 관련 추가 내용 ppt
- 유니티의 리니어, 감마에서 PBR은 다음과 같은 그림 형태로 나옴.
-
- PBR은 기본적으로 리니어에서 하는 것이 맞음.
- 감마 상태로 아주 오래 이어져 와서 리소스가 너무 많이 쌓여 컬러 스페이스를 바꾸는 것이 부담스럽거나
- 이미 출시가 된 상태라서 컬러 스페이스를 바꿀 수 없거나
- 컬러스페이스를 어떻게 바꾸는지 모르거나
- 중도 입사했는데 이미 감사상태거나
- 등등 여러 상황에서 불가능
- Fake PBR 셰이더의 한계
- 섭스에서 값을 맞춰놨는데 엔진에서 또 만져야 하고
- 작업자마다 느낌이 달라 통일이 불가능
- 재질 같은 것들이 의도한대로 표현이 불가능
- Roughness/Metalic 워크플로우 기반 PBR 세이더를 만들어야 함.
- 셰이더 관련된 책
- Physically based shader development for unity 2017
- 개발 당시 섭스턴스 값을 눈으로 보고 체크
- 문제점: 정확한 값이 아닌 눈대중으로 값을 측정한 내용을 발표
- 디퓨즈 & 리플렉션
- 산란되는 것: 디퓨즈
- 반사되는 것: 스펙큘러, Fresnel
- 흡수되는 것: refraction(굴절)
- PBR에서 가장 중요한 것
- 열역학 1법칙
- PBR은 기본적으로 리니어에서 하는 것이 맞음.
- IBL
- 사실적인 표현을 위해 디렉셔널 라이트에서 빛이 오는 것이 아니라 큐브맵에서 빛이 온다.(Image Based Lighting)
- 단일광원이 아니라 전방향광원
- IBL SOURCE는 hdr로 만들어져 있어서 그자체로 라이트를 포함하고 있음.
- 스펙큘러
- HDR 환경맵 안에 포함되어 있는 1 이상의 색상정보를 광원으로 인식하고 GGX나 베크만 방식 등으로 계산하여 환경맵의 밉맵에 그 결과가를 넣어놓는다
- Metallic
- 금속성
- 입사각이 90도에 가까울 수록 모든 물체의 반사율이 올라간다.(프레넬)
- 각도에 따라 변하는 비금속과 단리 금속은 입사각에 상관 없이 거의 위쪽이다.
- 반사율이 높아지면 에너지 봅칙에 의거 Diffuse가 거의 없어진다.
- Roughness
- 물체 표명이 거칠수록 난반사가 심해지면서 정반사는 그만큼 약해진다.
- 디퓨즈 모델
- 램버트 모델
- 가장 기본이 되는 실시간 디퓨즈 라이팅 모델
- 오렌 네이어 모델
- 램버트에 미세표면 표현 추가
- 디즈니 BRDF 모델
- 램버트 방식은 관찰자의 위치가 고려되지 않았는데 이것을 고려해서 계산하는 방식
- 계산량이 많아 무겁다
- 램버트 모델
- 리플렉션 모델
- 퐁 반사 모델
- 블린 퐁 스펙큘러 모델
- 쿡 토런스 모델
- 커스텀 PBR 셰이더 장단점 정리
- 장점
- 게임 엔진에서 섭스턴스와 비슷한 느낌을 낼 수 있음
- 디테일한 설정을 하고싶다면 PBR세팅 버튼을 누르면 됨
- 세팅을 설정하기 귀찮다면 그냥 텍스처만 넣으면 됨
- 가볍게 사용 가능
- 유기체 표현 가능
- 단점
- 텍스처 병합이 귀찮음
- cginc의 복잡도가 늘어날수록 세이더 컴파일 시간이 오래 걸림
- 발표 자료
- 장점
- 마이크로서비스, 운영하기 좋은 게임 백앤드로의 변화
...더보기
- 발표자: 최학윤(넥슨 아메리카)
- Monolith vs microservices
- Monolith: 하나의 큰 서비스
- Microsevices: 나누어진 서비스
- Microservice의 도입은 클라우드 환경에서 운영적인 개선을 위해 필요
- 운영하기 좋은 게임 백엔드
- 적은 다운타임 혹은 없는 다운타임
- Fail-resilient
- scale-out, scale-in이 쉽고 배포가 쉬워야 함.
- 컨테이너 이용하여 서비스 분배
- 마이크로서비스의 트러블 슈팅을 위한 로그 관리 및 검색
- AWS X-Ray
- Monitoring - cloud watch, grafana, datadog, zabbix
- 관련 책자
- Hype Driven Development
- Shiny New Things
- Buzzword-first Design
- 이놈의 enum boxing을 어찌할꼬
...더보기
- 발표자: 이무림(넥슨코리아)
- Boxing이란
- 값 타입을 참조 타입으로 변환
- 값 타입은 Stack 메모리에 위치
- 참조 타입은 Heap 메모리에 위치
- Heap에 공간을 할당해서 Stack에 있는 값을 복사해 넣음
- Boxing의 뒷처리
- 1회성으로 생성된 수많은 Box는 Gabage로 변함
- Gabage Collection이 자주 필요하게 됨
- GC가 발생하면 게임이 멈춤
- Enum 타입을 Generic으로 받으면 비교할 때 Boxing을 피할 수가 없음
- List<T>의 경우 내부적으로 Equals를 호출하는 경우 동일하게 Boxing 발생
- Boxing 발생시 해법
- Enum 타입 하나당 Comparer 타입 하나를 구현해야 한다
- 컨테이너를 생성할 때마다 Comparer를 전달해야 한다.
- 발표 자료
- <삼국지조조전 ONLINE>의 경쟁전(실시간 PvP) 포스트모템
...더보기
- 발표자: 배경우(넥슨코리아)
- 삼국지 조조전 온라인 게임 개발에 대한 포스트모템 발표
- 통신 및 동기화 방식
- 경쟁전 - Redis pub/sub - socket.io - character
- 나머지 내용은 중요하지 않은 내용(앞으로 삼국지조조전이 할 일 등)
- 게임 서버 목차
...더보기
- 발표자: 홍성우(넥슨코리아)
- 게임 서버 구성 과정
- 개발: 모든 프로젝트 공통, 취미나 프로토타입이라면 보통 여기까지
- 최초의 의사결정
- 서버의 용도, 장르
- 사용자 규모
- 통신 환경
- 데이터 손실 허용성
- 데이터 저장소
- 언어
- 운영체제
- 기반구조 보강
- 프로토콜
- DB 추상화
- 데이터 동시성
- 시간 처리
- 게임 컨텐츠 구현
- 서버 로직의 분류
- 테스트 자동화
- 레이어링
- 동시성
- 실행 성능
- 도메인 언어
- 경제 버그 예방
- 최초의 의사결정
- 테스트: 상용 서비스 혹은 대규모 서비스에 필수적
- 스케일아웃
- 출시 준비
- 무점검 스케일아웃
- 부하테스트
- 개념
- 서버군
- 더미 클라이언트
- 부하 패턴
- 문제 확인
- 문제 해결
- 일정
- 출시 이후 과정: 더 안정된 라이브 서비스를 위해 필요한 것들
- 장애 안정성
- SPOF: Single Point Of Failure
- 목표
- 설계
- 동작 예시
- 테스트
- 예측 실패 대비
- 출시 이후
- 장애 안정성
- 발표 자료
- 개발: 모든 프로젝트 공통, 취미나 프로토타입이라면 보통 여기까지
3일차
- 좋은 로그란 무엇인가
...더보기
- 발표자: 전효준(넥슨코리아)
- 로그
- 이벤트에 대한 기록
- '서비스 로그'를 대상
- 유저의 입장 및 퇴장, 아이템 구매, 획득 및 사용 등
- 좋은 로그란
- 필요한 정보가 있다
- 의미가 명확하다
- 편리하게 데이터를 얻을 수 있다.
- 좋은 로그를 위해 고려해야 할 것들
- 목표가 있는 로그
- 일관성
- 믿을 수 있는 로그
- 이름에 대한 합의와 규약
- 이벤트를 구별하는 기준
- 표현력
- 빈 값의 의미를 명확하게
- 로그 형식
- 메타데이터 사용에 대한 충분한 고민
- 문맥 식별자와 고유 식별자
- 서비스에 줄 수 있는 영향
- 할 수 있는 것부터
- 이름에 대한 합의와 규약
- 의미를 충분히 표현할 수 있어야 함
- 나중에 이름 바꾸는 경우 비용이 큼
- 길더라도 구체적인 이름을 사용
- 이 발표의 문제점
- 로그를 작성할 때 잘게 쪼개는 것은 동의, But 서버에 저렇게 모든 로그들을 다 저장하는 경우 이후 쿼리, 혹은 쿼리 뿐만 아니라 로그 자체의 용량이 매우 크게 되어 버벅임 및 서버가 뻗는 경우가 많은데 이에 대한 해결책을 전혀 제시하지 않음. 내가 이런 발표를 들을라고 이 세션 들은게 아닌데. 남들 다 아는 내용 발표한 것
- 발표 자료
- silvervineUE4Lua
...더보기
- 발표자: 전형규(넥슨코리아)
- UE4 Blueprint
- 노드 기반의 비주얼 스크립팅 시스템
- 엔지니어의 도움 없이 디자이너가 직접 기능을 구현 가능
- UE4 ScriptPlugin
- Epic의 순정코드
- ShookumScript
- Unreal.js
- UE4 Python Editor Script Plugin
- unrealEnginePython
- unreal.lua
- SUE4Lua
- Blueprint 지옥에서 탈출하기 위해 개발
- c++ 탈출을 하기 위해
- 발표 문제점
- 발표 중간 중간에 자꾸 사람 모집합니다는 내용을 반복해서 강조함,
- 직접 제작한 플러그인에 대한 설명이 부족함.
- 참고자료
- <하스스톤> 강화학습 환경 개발기(최악의 발표 2등)
...더보기
- 발표자: 옥찬호(넥슨 코리아)
- 목표: 0티어 덱 만들기 위한 인공지능 강화학습 환경 구현
- 문제점
- 강화학습 환경이라는 발표라기에 다양한 AI 관련된 툴 혹은 기술들을 원했는데 하스스톤을 A부터 Z까지 만들고 있는 이야기만 발표시간 대부분 할애, 도대체 게임을 아예 처음부터 만드는거면 왜 하는건지 모를 정도의 발표
- 발표 자료
- 개발이 쉬워진다?(최악의 발표 3등)
...더보기
- 발표자: 홍진우(넥슨 코리아)
- 자기가 만든 디버깅 툴 소개
- 문제점
- 완성된 툴이 아님
- 퍼블릭으로 공개할 생각 없음
- 기능도 매우 제한적
- 제목에 나와 있는 것을 기대하고 갔으나 결국 내가 쓸 수도 없는 디버깅 툴
- 유니티 ECS Job System 분석 및 적용
...더보기
- 발표자: 함동기(넥슨 코리아)
- ECS: 데이터 기반 디자인에 기초해 있음
- 유니티에서 대량의 유닛을 생성 및 이동을 하더라도 ECS 이용시 큰 성능의 향상을 맛볼 수 있음
- 프리뷰 상태(버전이 많이 낮음)이기 때문에 실제 프로젝트 사용시까지는 기한이 좀 걸림
- 유니티 2019 버전에 정식으로 추가될 예정이라 Unite 확인
- 마이크로토크(최악의 발표 1등)
...더보기
- 자산관리하는법(발표자: 강찬웅)
- 복식 부기 추천
- 뱅크샐러드를 후킹하여 앱 실행시 데이터를 가져오고 이를 재가공하여 사용
- 문제점
- 공적인 자리에서 타 사의 어플을 후킹하여 데이터를 가공 사용한 것을 개인적이더라도 이야기한 것(심지어 언론사 앞에서), 마치 자산 관리인것처럼 이야기하는데 결국에는 후킹해서 이런거도 해봐라 등의 후킹 장려인 것처럼 보임
- 우리의 코어 유저는 어떤 사람일까(발표자: 박정진, 정해라)
- 코어 유저란
- 게임에 많은 시간을 투자
- 내용이나 조작 등을 학습
- 다양한 콘텐츠를 충분히 즐기기 위해 연구/탐구하는 자세
- 콘텐츠를 구입하는 데 관대한 편
- 유저들에게 설문지를 돌리고 그를 통해 나타낸 결과 발표
- 문제점
- 테일즈 유저들 중 코어 유저를 선정하는 방식부터 잘못됨. (과거 '가출한취준생'으로 활동했던 내가 봐도 저건 기준이 아님)
- 테일즈 위버 코어 유저 선정은 10년 이상 된 유저들이 있는데 그런 유저들을 제외하고 게임을 켜놓고 다른 일 하는 사람들을 코어 유저로 선정한 것에 대해 주변에 같이 테일즈위버를 하는 사람들 사이에서도 저건 아니다라고 했음
- 무엇보다 NDC가 코앞이라서 억지로 설문지를 만들고 유저들에게 설문지로 조사를 하고 이를 핑계로 지방 출장까지 간 것이 눈에 보임.
- 대학교 조별 발표보다 더 못한 발표 상태
- 발표자 본인들이 게임에 대해서 제대로 알고서 발표를 한 것인지 의문임
- 발표가 아니라 그냥 놀러온 식으로 하는 것을 보고 끝까지 실망만 줌.
NDC 전경 및 ART EXIBITITION 사진
느낀점
- 올해 NDC는 몇몇 세션들을 제외하고는 실망의 연속.
- 특히 마지막 세션은 어거지로 등떠밀려서 발표한게 눈에 보임.
- 코어 유저들을 제대로 선별하지 않고 엉뚱한 기준으로 선별
- 개인 프로젝트 위주의 내용들이 많고 완성되지 않고 알파 버전의 내용만을 가지고 발표한 세션이 매우 많았음
- 하스스톤은 특히 충격 받음
- 몇몇 NDC 발표자들이 내년에도 이걸 할지 모르겠다 또는 우리는 사람을 구하고 있다 이런식으로 말을 하는 장면들이 있어서 집중에 방해됨.
- 게임 개발을 좋아하고 신기술을 얻을 수 있던 세션들이 그래도 몇 개 있었지만 개발자로써 경력을 쌓아가는 과정에서 올해 발표는 너무 실망적이라 앞으로 NDC를 계속 참여를 할 수 있을지 잘 모르겠음.
- 올해 남아있는 Unite 등을 참가해봐서 정보들을 얻어봐야 알꺼 같다.
'Diary > 마음의양식' 카테고리의 다른 글
2022.11.15 Daily (0) | 2022.11.15 |
---|---|
Worl IT Show 2019(4.27)를 다녀와서... (0) | 2019.05.04 |
Unite Seoul 2017(2017.05.15 ~ 2017.05.17) (0) | 2017.05.16 |
NDC 2017을 다녀와서...(2일차) (0) | 2017.04.30 |
SOSCON 2016을 다녀와서.. (0) | 2016.11.23 |