학력
- Condorcet Prépa MPSI 수료 (프랑스)
- 칭화대학교 소프트웨어공학 학사 (중국)
- 고려대학교 정보보호대학원 석사 (한국)
경력
- 前 크래프톤 (테라 서버팀)
- 前 엔씨소프트 (Blade&Soul2 컨텐츠 프로그래밍팀)
관심 분야
- 리버싱 및 취약점 분석
- MMORPG 게임 개발 (C++, C#)
- 외국어 (영어, 프랑스어, 중국어, 일본어)
소개
해킹 공부를 위해 순전히 호기심으로 시작한 게임 개발인데...
시간이 흘러 어느덧 8년차 게임 개발자가 되었습니다.
"이래서 언제 게임을 만들지~?"
한숨 나오는 기초 문법부터 시작해서,
차츰 만들어가는 나만의 게임 세상.
그리고 그 세상에 접속한 다수의 플레이어를 볼 때의 뿌듯함.
공부를 할 수록, MMORPG의 매력에는 헤어나올 수가 없습니다.
제가 느낀 감동을 여러분도 느낄 수 있으면 좋겠네요.
講義
受講レビュー
- [C#とユニティで作るMMORPGゲーム開発シリーズ] Part2: データ構造とアルゴリズム
- [C#とUnityで作るMMORPGゲーム開発シリーズ] Part6: Webサーバー
- やり込んだついでにリリースまで】UnityカジュアルモバイルMMORPG (M2)
- やり込んだついでにリリースまで】UnityカジュアルモバイルMMORPG (M2)
- [C#とユニティで作るMMORPGゲーム開発シリーズ] Part7: MMOコンテンツ実装(Unity + C#サーバー連動基盤)
投稿
Q&A
첫 직장에 있어 중소기업과 대기업의 차이가 클까요
신입일 때는 사수가 있는 중견 이상만 가면 됩니다.대기업도 마냥 좋아 보이지만, 큰 단점이 있는데요.상하 관계가 명확하고 신입한테는 쉽고 사소한 일만 떨어져서오히려 성장 속도가 느려지는 문제도 생길 수 있습니다.(예를 들어 2년 내내 사소한 UI 수정만 하는 등)그래서 중소기업에서 MMO 프로젝트, 특히나 서버 포지션이라면컨텐츠 구현을 많이 할 수 있어서 아주 좋다고 봅니다.2~3년 정도 경력을 쌓고 점프를 하시면 됩니다.
- 0
- 2
- 11
Q&A
NullReferenceException 에러
네 대부분 SetInfo의 호출 관련된 문제입니다.[1] 다 배치해서 연결만 하면 이미 객체의 스폰이 보장되어 있으나,[2] 동적으로 코드를 만들 때는 순서에 신경을 쓰거나[3] 아니면 애당초 객체를 만드는 부분과, 서로 연결하는 부분을 분리해서 타이밍 이슈가 생기지 않게 만들어야 하는데이 강의에서는 그 부분을 크게 강조하지 않아 순서가 꼬일 수 있습니다.마지막 올려드린 최종본에서는 [1] 미리 배치한 버전으로 수정했으나,이 부분은 사실 [2][3]와 같은 다양한 방식으로 수정이 가능합니다.
- 0
- 2
- 16
Q&A
10강 애니메이션 강의에서 enum EState부분 질문있습니다.
1)그냥 이름을 정하는 컨벤션인데요.State State;로 변수를 만들면 enum인지 변수명인지 구분이 안 되니,enum에 E를 붙이는 프로젝트들이 더러 있는데, 저도 사용한 것입니다.2)using static Define; 이 상단에 있어서 가능한 것입니다.
- 0
- 2
- 26
Q&A
SendBuffer 클래스를 만드는 이유
매번 패킷을 보낼 때마다 byte 배열을 할당해서 그 참조를 Session의 Send 함수로 전달하면 굳이 SendBuffer로 값을 한번 더 복사하는 과정 없이도 동작할 것 같습니다.-> 사실 궁금증이 생기면, 정말로 생각한대로 수정을 해보는 것이 좋습니다 ㅎㅎ미리 스포를 드리자면 [byte 배열을 할당해서] 참조 넘기는 것은는 문제 없지만,패킷 버퍼를 재사용을 할 때 고민거리가 생깁니다. 패킷은 딱 하나의 세션에만 보내는게 아니라주변에 있는 (ex. 50명)한테 뿌리는 경우가 빈번한데,모두가 네트워크 송신 처리가 끝나야만 패킷 버퍼의 재사용이 가능합니다.말씀대로 참조값 기반으로 동일한 버퍼를 재사용 하는 경우, 이런 부분의 처리가 어렵습니다.만약 송신이 완료되지 않았는데 덮어 쓰면, 아직 전송되지 않은 기존 패킷 내용이 꼬이면서 오염된 정보가 전송될 수 있어 주의해야 합니다.만약 재사용이 아닌, 단일 byte buffer 할당을 의미하신 것이라면그것은 타당하긴 하고, 실제로 7강부터 그렇게 수정을 하긴 합니다.SendBuffer 사용은 C++ 코드에서 아이디어가 넘어온 것인데C# 서버에서는 궁합이 잘 맞지 않아 추후 폐기 처분합니다.C++ 서버에서 SendBuffer를 사용해서,일종의 메모리 풀처럼 메모리 재사용에 의미 두고 사용하는 것입니다.
- 0
- 2
- 40
Q&A
@Managers 가 씬에 배치되어 있어도 문제가 되지 않나요?
사실 이런 부분은 크게 중요하지 않고, 추가 처리를 해주면 되긴 합니다.GameObject.GetObjectOfType 등을 활용해 Managers 콤포넌트가 있는 GameObject가 있는지 확인 후, 없으면 만들면 되겠죠.
- 0
- 2
- 41
Q&A
vr 핸드메쉬 블루프린트 질문..
다시 말씀 드리지만, 이 강의는 난이도가 높은 편이라 아무 지식 없이 이해할 수 있는 수준이 아닙니다.최소한 기본적인 언리얼 사용 경험이 있어야 합니다.은 아마도 3DWidget을 Trace Channel로 만들지 않으신 것 같고SceneComponent를 추가하고 이름을 바꾸는 것입니다.
- 0
- 2
- 40
Q&A
선생님 짱짱~!!
본 강의는 초보용이 아니고 언리얼 숙련자 대상입니다. 해당 부분은 콜리션 설정의 collision preset 란에서 직접 만들어 주셔야 합니다(사진)
- 0
- 2
- 57
Q&A
튜토리얼
튜토리얼처럼 1회성이 아니라면,퀘스트 시스템을 제대로 구현하고 Stage마다 그 정보를 재사용하는 것이 좋다고 봅니다.퀘스트 시스템 내부에서는 코루틴, FSM 뭘 해도 사실 상관은 없습니다.
- 0
- 3
- 49
Q&A
9:03 Divide(10 , 3) 부분 질문입니다
전혀 없고 그렇게 하는 게 더 바람직합니다!
- 0
- 1
- 38
Q&A
왼손이 움직이지 않습니다.
본 강의는 [중급] 강의입니다. UE 시리즈물을 따라와서 블루프린트, C++ 및 언리얼에 익숙해진 사람들 대상으로,VR이라는 생소한 주제와 그 원리를 다루는 단타성 강의입니다.많은 시간을 연구하고 VR 상용 에셋을 뜯어보고,그랩과 인터랙션 원리 등을 파악해서 그 원리를 공유해놓은 강의이지,그냥 따라해서 만드는 유투브 입문 수준의 초보자 대상 강의가 아닙니다.[왼손이 안 된다]고 하나 질문주신 내용으로는 - 다운받은 최종 코드도 안 되는 것인지.- 언리얼 기본 템플릿은 되는 것인지.- 질문자의 설정이 누락된 것인지.등 상황에 따라 다양한 원인이 있을 수 있어 저도 알 수 없습니다.프로그래밍에서 공통적으로[따라해서 안 되는데 이유가 뭘까요?] 류의 질문은 대답이 불가능하고[무엇을 어떻게 해봤는데 어느 부분이 안 된다]로 더 구체적으로질문을 주셔야 그나마 확인이 가능합니다.특히나 환경을 많이 타는 VR이면 더더욱 그렇습니다.또한, 언리얼 버전이 올라가면 기본 VR Template으로 만들면 양손이 돌아가는 템플릿 또한 같이 업뎃 되니그 템플릿에서는 양손이 되는지도 확인을 해보시면, 더욱 힌트를 얻을 수 있으리라 봅니다.만약 코드 자체가 동작이 안 한다면, breakpoint를 걸고 왼손 코드 로직이 실행되는지 확인을 해보시면 됩니다.
- 0
- 4
- 52