학력
- Condorcet Prépa MPSI 수료 (프랑스)
- 칭화대학교 소프트웨어공학 학사 (중국)
- 고려대학교 정보보호대학원 석사 (한국)
경력
- 前 크래프톤 (테라 서버팀)
- 前 엔씨소프트 (Blade&Soul2 컨텐츠 프로그래밍팀)
관심 분야
- 리버싱 및 취약점 분석
- MMORPG 게임 개발 (C++, C#)
- 외국어 (영어, 프랑스어, 중국어, 일본어)
소개
해킹 공부를 위해 순전히 호기심으로 시작한 게임 개발인데...
시간이 흘러 어느덧 10년차 게임 개발자가 되었습니다.
"이래서 언제 게임을 만들지~?"
한숨 나오는 기초 문법부터 시작해서,
차츰 만들어가는 나만의 게임 세상.
그리고 그 세상에 접속한 다수의 플레이어를 볼 때의 뿌듯함.
공부를 할 수록, MMORPG의 매력에는 헤어나올 수가 없습니다.
제가 느낀 감동을 여러분도 느낄 수 있으면 좋겠네요.
강의
로드맵
전체 2수강평
- [Rookiss University] UE5 Lyra 클론 코딩 (Haker)
- [C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] 번외편: ASP.NET Core 심화편
- [Rookiss 라이브 세미나] 생성형 AI 때문에 바뀌는 컨텐츠 개발 파이프라인
- [Rookiss 라이브 세미나] 생성형 AI 때문에 바뀌는 컨텐츠 개발 파이프라인
게시글
질문&답변
자격증의 중요성은 더 떨어지나요
지금도 사실 아~무 쓸모 없지만 (그냥 덤프 외워서 푸는 용도.. 실력과도 무관)앞으로는 더욱 더 쓸모 없어질 것 같습니다.그래도 공부하는 것에 의의를 둔다면 뭐 그 정도 도움은 되지 않을까 싶습니다.
- 0
- 2
- 32
질문&답변
WidgetBlueprint 복사 방법 질문
블루프린트를 통으로 이주시키면 C++ 상속 클래스가 없어서 안 됩니다.원본 플젝을 열어서 블루프린트 노드를 복붙해서, 재배치하는 것을 의미한 것입니다.
- 0
- 2
- 18
질문&답변
게임개발에서 주로 어느부분에 알고리즘들이 쓰이는지 궁금합니다
그런데 일반 서버 개발에서는 이런 그래프 탐색 알고리즘들이 “추천 시스템”, “의존성 그래프 처리”, “네트워크 경로 최적화” 등에 자주 사용되는 걸로 알고 있습니다-> 게임에선 자주 쓸 일이 없지만, 페이스북 같은 SNS를 만들 때 그래프 알고리즘이 많이 쓰이게 됩니다. 예를 들어 친구와 몇 촌인지 알아낸다거나 하는 기능들요. 그 외에 디아블로 던전 생성 알고리즘과 같은 PCG 기술에서 그래프 등이 필요할 수 있고요. C++ 서버 강의에선 데드락 탐지를 그래프 사이클 판별로 구현하기도 했습니다. 사실 그래프로 넘어가면 꽤 고급 지식들이라 일상적인 개발에서는 그다지 쓸 일이 없습니다.
- 0
- 2
- 30
질문&답변
수강생으로서의 고민
맞습니다. 가장 좋은 방법은 블루프린트로 코드를 만들고,그것을 차차 C++로 옮기는 것이 정신 건강에 좋습니다.블루프린트 노드를 더블클릭하면 C++ 코드로 이동해주기 떄문이죠(50GB의 디버깅 심볼 설치하면)개인적으로는 엄청난 대작을 만들 것이 아니라면 블루프린트만으로도 충분하다 봅니다.다만 AI는 블프/C++ 양쪽을 다 못해서 당분간 마음을 비우셔야 합니다.
- 0
- 1
- 20
질문&답변
실무에서는 어떠한 코드 스타일을 사용하는지 궁금합니다
충분히 해볼 수 있지만, 결과적으로 크게 의미 없는 질문입니다.왜냐하면 프로젝트마다 다르기도 하고,더 나아가 프로젝트 내부에서 작업자마다 통일이 안 되어 있는 경우가 많아대혼돈 속에서 작업을 하시게 될 미래이기 때문입니다.구글에서 만드는 오픈소스 등은 그나마 통일성을 유지하려 노력하지만게임 개발은 시간과의 싸움이기도 하고 문화 자체가 그 정도로 통일성에 신경을 안 쓰는 느낌입니다.단적인 예로 제가 일했던 프로젝트에서는 mHp 와 같은 형태로 만드는 경우도 있었고 (서버)_hp 로 변수명을 만드는 경우도 있었습니다. (클라 or 유니티)다만 일반적으로 게임 업계에서if (hp { // TODO}괄호 스타일 등은 어느 정도 공통적이긴 합니다.
- 0
- 2
- 30
질문&답변
map 컨테이너의 emplace 함수에 대해
네 STL 컨테이너에서 emplace가 이론적으로 더 좋은 선택이 맞습니다.실제 작업자들 코드를 보면 차이는 미미한 정도라 (C++11 이전의 습관이기도 하지만) 구분 안 하고 다른 버전 (insert 등)를 쓰기도 합니다.'불필요한 이동이 없다'는 것의 의미는 && 이동 연산을 지원하는 객체에 이득을 본다는 의미인데,많은 경우 보통 포인터나 스마트포인터 등의 참조값을 저장하는 경우가 많아 결과적으로 성능적으로 엄~청 큰 차이가 있진 않습니다.
- 0
- 2
- 15
질문&답변
22강에서 구조체와 포인터로 설명해주셨는데 패딩의 경우는 어떻게 되나요?
어차피 컴파일 타임에 이미 변수들의 상대 위치는 고정됩니다.따라서 패딩을 주면 그것을 고려해서 +@ 수치가 변경됩니다.
- 0
- 2
- 20
질문&답변
DataLoader에 대해
[Serializable]을 이해하기 위해서는 Attribute 문법에 대해 공부를 하시면 좋습니다.기본적으로 [직렬화가 되는 것이다] 라는 힌트를 프로그램 측에 주는 것입니다.유니티 자체에서도 Serializable Attribute가 붙어 있는 클래스만 파싱할 수 있게 만들었겠죠.별다르게 체크할 게 없으면 true로 통과시키지만경우에 따라 다른 데이터의 ID를 참조한다거나 하면해당 부분이 잘 들어가 있는지 확인하는 코드를 추가로 넣으면 됩니다.
- 0
- 2
- 23
질문&답변
dotween pro와 dotween
무료 버전으로 하셔도 됩니다.프로 버전을 쓰면 에디터에서 설정할 수 있는 옵션이 생겨 작업자한테 조금 더 편리합니다.
- 0
- 2
- 19
질문&답변
Web Server를 게임에서 사용하는 경우 예시 질문
ㅎㅎ 그렇긴하지만 그래서 웹서버도 db를 활용하기 때문에 가능한겁니다.
- 0
- 1
- 26