inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

173만명의 커뮤니티!! 함께 토론해봐요.

1주차 스크립트 질문입니다

미해결

[켠김에 출시까지] 유니티 방치형 키우기 게임 (M1 + C1)

1. 강의를 듣고 선언된 두 딕셔너리의 용도라고 주석을 달았는데 맞을까요? 2. LoadAllAsync 메서드- 주어진 label에 대해 모든 리소스를 비동기적으로 로드하고, 로드 상태를 콜백을 통해 알려주는 기능 수행 LoadAsync 메서드 - key에 맞는 개별적인 리소스 로드 이렇게 해석했는데 맞나요?? 3. 동기 작업의 결과 - op foreach문의 내용 - 스프라이트만 따로(우선적으로) PrimaryKey로 체크를 하고 로드 [사유 : 폰 이슈] else문에서 그외의 스프라이트가 아닌 것들을 로드

  • C#
  • unity
  • MMORPG
조조조조조 댓글 1 좋아요 0 조회수 222

12주차 소스코드 실행하면 오류나네요

미해결

[켠김에 출시까지] 유니티 방치형 키우기 게임 (M1 + C1)

이 오류가 어떤오류인가요? 올려주신 파일 받아서 그대로 실행했는데 오류가 나요!~ 심지어 실행이 안됩니다. 타이틀 부터 게임 화면까지 맵이 없는건가요?

  • C#
  • unity
  • MMORPG
댓글 1 좋아요 0 조회수 283

단순 궁금증) 멀티쓰레드가 아니라 싱글 쓰레드라면 sendQueue에 1개만 쌓이나요?

미해결

[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버

안녕하세요 루키스님 단순히 제가 잘 이해하고 있는건지 궁금해서 여쭤보고자 합니다 만약 멀티쓰레드가 아니라 싱글쓰레드라면 sendQueue에 1개 이상 쌓이지 않나요?

  • 네트워크
  • MMORPG
  • windows-server
점심 댓글 2 좋아요 0 조회수 419

안녕하십니까 언리얼 엔진과 자체제작 서버와의 연동에 있어 궁금한점이 있어 글 작성합니다.

미해결

[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버

제가 수업을 통해 자체제작 iocp서버를 제작한 상황에서 언리얼 클라이언트와 연동하는 상황에서 제가 제 노트북에서 서버를 열고 클라를 접속하는 부분에서는 문제가 발생하지 않으나, 제 노트북에서 서버를 열고 다른 노트북에서 ip와 포트번호를 활용해 접속하니 접속은 되나 중간중간 잘못된 패킷을 보내는 등 접속이 끊기는 상황도 발생하고 있습니다. 혹시 언리얼에서 외부에 접속을 할 시 따로 설정해야하는 것등이 있는 건지 궁금합니다.

  • 네트워크
  • MMORPG
  • windows-server
댓글 1 좋아요 0 조회수 456

몬스터 Object Tile을 만든뒤로부터 이상한 에러문구가 발생합니다.

해결됨

[켠김에 출시까지] 유니티 방치형 키우기 게임 (M1 + C1)

In order to call GetTransformInfoExpectUpToDate, RendererUpdateManager.UpdateAll must be called first. UnityEngine.GUIUtility:ProcessEvent (int,intptr,bool&) 라는 오류가 발생하는데요. 현재까지 Play를 통해 게임을 실행할때 아무 영향을 주지 않으나, Unity를 처음 실행할때만 발생합니다.

  • C#
  • unity
  • MMORPG
박성훈 댓글 2 좋아요 0 조회수 666

Open File in Solution

미해결

[켠김에 출시까지] 유니티 방치형 키우기 게임 (M1 + C1)

강의 중간중간에 Open File in Solution 이라는 팝업 띄우셔서 바로 클래스로 찾아가시는데 어떤 단축키를 눌러야 되는건가요?

  • C#
  • unity
  • MMORPG
루테닛댄 댓글 1 좋아요 0 조회수 269

Async와 Job방식의 차이가 궁금합니다.

미해결

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part9: MMO 컨텐츠 구현 (DB연동 + 대형 구조 + 라이브 준비)

이전 강의에서 PacketHandller 부분에서 Async를 사용하지 않고 Blocking 방식을 사용하는 이유가 EAP 기반이기 때문에 이미 패킷마다 할당된 쓰레드에 의해 I/O가 이루어지기 때문이라고 이해했습니다. 하지만 GameRoom같은 경우엔 GameRoom 담당 쓰레드가 존재하고 GameRoom 쓰레드의 동기화를 위해 JobSerialize를 이용하여 각 쓰레드가 GameRoom의 Job을 Push하여 동기화를 진행하는데 이때 Job 안에서 DB I/O가 Blocking으로 이루어질 경우 GameRoom 쓰레드가 Blocking이 되고 그렇게되면 GameRoom이 느려지는 상황이 되기때문에 DB I/O 전용 쓰레드(JobSerialize)를 만들어 쓰는것으로 이해했습니다. 결국 개념적으로 봤을때 GameRoom 쓰레드는 메인쓰레드 역할을 하고 DB I/O 처리는 서브쓰레드에게 맡기고 완료됐을때 결과만 다시 메인쓰레드에 돌려받는 NonBlocking I/O 방식인데 Async/Await 역시 호출한 쓰레드를 Blocking 하지 않고 서브쓰레드에게 I/O를 맡긴뒤 작업이 완료되면 메인쓰레드에 결과를 반환하여 Await 이후에 처리한다고 이해하고 있습니다. 그렇다면 복잡하게 DB I/O 전용 쓰레드를 만들어주지 않고 Async/Await만 사용해도 될것같은데 이렇게 하는 이유가 있을까요? 아니면 이후에 강의에 이에 대한 개선이 나오는걸까요?

  • MMORPG
  • db
  • ef
윈우 댓글 1 좋아요 0 조회수 320

EF사용시 async사용

미해결

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part9: MMO 컨텐츠 구현 (DB연동 + 대형 구조 + 라이브 준비)

EF 변경사항을 저장할 때 SaveChangeAsync가 아닌 SaveChange를 사용하게되면 해당 쓰래드는 blocking이 발생할텐데 괜찮나요? 제 추측으론 EAP 기반 IO 통신이기때문에 어차피 패킷요청마다 개별의 쓰래드에서 처리가되니 굳이 async를 사용안해도 다른 패킷(Thread)에 대한 blocking이 이러나지 않으니까 그냥 SaveChange를 사용한건가? 라고 생각하긴 했는데 선생님의 답변을 듣고싶습니다.

  • MMORPG
  • ef
  • async
윈우 댓글 1 좋아요 0 조회수 278

zenject를 현업에서도 많이 사용하나요?

미해결

[켠김에 출시까지] 유니티 방치형 키우기 게임 (M1 + C1)

zenject를 배우고 이를 프로젝트에 활용해서 개발하고 있었는데 이번에 이 강의를 보고 배우면서 이전에 구현하던 방식에 좀 회의가 들어서요. 제가 zenject에 대해 완벽히 알고 있는게 아니라 개발 속도가 많이 느리기도 하고 진행 중이신 프로젝트를 zenject로 바꿔서 개발할 수 있을지 확신이 없기도 하네요.. 혹시나 다른 개발자 분들이 투입된다면 협업하는데 장애가 될까 걱정도 되서 질문 남깁니다. 그리고 좋은 강의 감사합니다.

  • C#
  • unity
  • MMORPG
김영민 댓글 1 좋아요 0 조회수 340

안녕하세요 오늘 첫 수업들었는데 질문 있습니다

미해결

[켠김에 출시까지] 유니티 방치형 키우기 게임 (M1 + C1)

1달차 처음 강의 영상봤는데 Managers 질문 1 : 영상에서 나중에 보충수업에서 설명해주신다고 했는데 어디서 볼수있나요 ?? 질문 2: 혹시 공부중에 못따라가면 어떤 강의 보충 하면 좋나요 ? 질문 3 : 디스코드 초대 어떻게 받을 수 있나요

  • C#
  • unity
  • MMORPG
흠흠이 댓글 1 좋아요 0 조회수 315

Sleep_for질문입니다.

미해결

[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버

12:00부분에서 작성하신 예제들을 따라치며 CPU점유율을 확인을 해보니 sleep_for을 쓰면 10언저리로 나오는데 Producer에서 sleep_for만없이 실행을 하면 CPU점유율이 0~2사이로 나옵니다. 영상에서 설명을 들으면 Consumer에서 무한루프로 체크하는것 때매 CPU점유율을 먹는다 라고 했는데 그렇다면 sleep_for도 없이도 점유율이 10언저리로 안나오는 이유가 뭔가요? 혹시 sleep_for로 인해 수면상태가 되어 Consumer스레드로 컨텍스트스위칭이 발생하여서 그로인한 오버헤드때매 CPU점유율이 증가했다라고 이해하면 되는건가요?

  • 네트워크
  • MMORPG
  • windows-server
tmvldjtm1018 댓글 1 좋아요 0 조회수 365

char8_t 관련 protobuf 질문

미해결

[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버

google Protobuf에서 한글을 보낼때는 utf8 형식으로 보내야하는 걸로 알고 있습니다. 그래서 u8을 앞에 붙여서 set_name()에 인자를 넣은거구요. 근데 C++언어 표준을 latest 로 해놓고 하면 google protobuf 쪽에서 char8_t 를 지원을 안해주어 컴파일에서 걸렸습니다.. C++ latest 로 지정하고 u8을 하면 문자열이 const char8_t 로 변환되더라구요. 이전 C++ 17 이전으로는 u8을 해도 const char로 변환되었습니다. 그래서 기존에는 컴파일타임에 걸리지 않고 실행이 된것 같습니다. 그래서 이렇게 u8을 쓰지 않고 converter 를 통해 utf8 로 변환 후 패킷을 보냈습니다. 이렇게 하니까 한글이 정상 출력이 되는 걸 확인했습니다.. 이런 방식도 나쁘지 않은 방식인가요...? 제가 의심을 하는 이유는 codecvt_utf이 deprecated 된 것인데 경고를 무시하는 코드를 넣고 실행을 돌리기 때문입니다. C++ latest 에서 사용하기 위해서는 제가 생각한 최선의 방법이었습니다. 좋은 방법이 있을까요

  • 네트워크
  • MMORPG
  • windows-server
장계탕 댓글 1 좋아요 0 조회수 554

World Update Packet 처리

미해결

[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버

안녕하세요 강의 잘 보고 있습니다!! 다름이 아니라 IOCP를 이용하여 언리얼 클라이언트와 연동을 하고 있는데 패킷을 보내는데 의문이 들어서 이렇게 질문을 남깁니다. 클라이언트 코드에서는 타이머를 이용하여 초당 60개의 패킷을 서버로 전송합니다.(서버에 접속이 성공적인 경우에 한해서) 그후 서버에서는 작업자스레드에서 모든 입출력을 처리를 하게 되는데, 만약 클라이언트 수가 많아지면 그만큼 서버에서 모든 클라이언트의 초당 패킷을 처리하게 되므로 과부하가 심해질 것으로 예상이 됩니다. 이에 따라 PQCS함수를 이용하여 저가 자체적으로 UPDATE이벤트를 넣어주어 처리를 하려고 했는데 생각한것처럼 잘 되지가 않아서요.. 아니면 그냥 서버에서 UPDATE쓰레드를 따로 구분지어서 클라이언트에게 브로드캐스트를 하는것이 방법일까요? 어떤 것이 좋을지 감이 안잡혀서 이렇게 질문남깁니다!!

  • 네트워크
  • MMORPG
  • windows-server
900948 댓글 1 좋아요 0 조회수 257

언리얼 소스 분석 강의

미해결

[켠김에 출시까지] 유니티 방치형 키우기 게임 (M1 + C1)

언리얼 소스 분석 강의 결제 했는데 3일전에 디코 초대가 메일로 온다고 했는데 안와서 문의 드립니다. 언리얼 소스 분석 강의엔 질문할 곳이 없어서 여기에 질문 드립니다.

  • C#
  • unity
  • MMORPG
댓글 1 좋아요 0 조회수 285

클래스 다이어그램

미해결

[켠김에 출시까지] 유니티 방치형 키우기 게임 (M1 + C1)

루키즈님도 이런 프로젝트를 제작할때 클래스 다이어그램을 만들며 제작하시나요?? 궁금합니다

  • C#
  • unity
  • MMORPG
김범주 댓글 2 좋아요 0 조회수 350

Variadic 함수 인자 포워딩 관련

해결됨

[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버

수업의 JobSerialize::PushJob() 함수에서, template<typename T, typename Ret, typename.. Args> void PushJob(Ret(T::*memFunc)(Args...), Args... args) { .... std::forward<Args>(args...) } 이 부분에서 PushJob() 인자 중 Args&&... 가 아닌 Args... 로 &&을 생략해도 포워딩이 정상적으로 진행이 되는 건지 궁금합니다. 구글링을 해 보니 전부 Args&&... 형태로 쓰는 것으로 보여서요. 가변 템플릿 문법은 언제나 굉장히 헷갈리네요.

  • 네트워크
  • MMORPG
  • windows-server
지호 댓글 1 좋아요 0 조회수 369

Addressable Sprite 파일

미해결

[켠김에 출시까지] 유니티 방치형 키우기 게임 (M1 + C1)

현재는 하나의 파일에 한 개의 스프라이트로 불러오고 있는데 Sprite Mode를 multi로 짤라서 그 파일에 들어있는 스프라이트를 가져오는 방법은 어떻게 하나요??

  • C#
  • unity
  • MMORPG
김범주 댓글 2 좋아요 0 조회수 438

Json 파싱 형식

미해결

[켠김에 출시까지] 유니티 방치형 키우기 게임 (M1 + C1)

제이슨을 파싱하는 과정중에서 int, class 형식으로 가져오고 있는데 string, class 형식으로도 가져오게 할 수 있나요?? [Serializable] public class ValueDataLoader : ILoader<int, ValueData> { public List<ValueData> datas = new List<ValueData>(); public Dictionary<int, ValueData> MakeDict() { Dictionary<int, ValueData> dict = new Dictionary<int, ValueData>(); foreach (ValueData Data in datas) dict.Add(Data.ID, Data); return dict; } }

  • C#
  • unity
  • MMORPG
김범주 댓글 1 좋아요 0 조회수 261

spine을 animator로 교체

해결됨

[켠김에 출시까지] 유니티 방치형 키우기 게임 (M1 + C1)

안녕하세요 3주 차 코드로 공부하고 있는 중 spine 을 animator controller로 교체하려고 하는데요. Creature.cs 의 public virtual void SetInfo(int templateID) { . . SkeletonAnim.skeletonDataAsset = Managers.Resource.Load<SkeletonDataAsset>(CreatureData.SkeletonDataID); SkeletonAnim.Initialize(true); // Register AnimEvent if (SkeletonAnim.AnimationState != null) { SkeletonAnim.AnimationState.Event -= OnAnimEventHandler; SkeletonAnim.AnimationState.Event += OnAnimEventHandler; } 부분에서 SkeletonAnim.skeletonDataAsset = Managers.Resource.Load<SkeletonDataAsset>(CreatureData.SkeletonDataID); 는 캐릭터 간 다른 애니메이션을 사용하기 위해 json에서 읽어온 animator 파일을 지정하는 걸로 이해하고 Animator Controller로 교체했는데요. BaseObject.cs public Animator SkeletonAnim { get; private set; } Creature.cs public virtual void SetInfo(int templateID) { . . SkeletonAnim.runtimeAnimatorController = Managers.Resource.Load<RuntimeAnimatorController>(CreatureData.SkeletonDataID); // Animator Controller로 교체 // Register AnimEvent if (SkeletonAnim.AnimationState != null) { SkeletonAnim.AnimationState.Event -= OnAnimEventHandler; SkeletonAnim.AnimationState.Event += OnAnimEventHandler; } SkeletonAnim.AnimationState.Event -= OnAnimEventHandler; SkeletonAnim.AnimationState.Event += OnAnimEventHandler; 이 부분은 왜 사용하는지 어떻게 수정해야 되는지 모르겠습니다.

  • C#
  • unity
  • MMORPG
Jong Wiz 댓글 1 좋아요 0 조회수 459

콜백 방식에 비해 이벤트 방식의 단점?이 와닿지 않습니다

미해결

[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버

콜백 방식에 비해 이벤트 방식의 단점?이 와닿지 않아서 질문 남깁니다. 아마 제가 대규모 유저를 받는 환경의 코드를 아직 보지 못해서 그런 것 같아서 와닿지 않은것 같습니다. 설명해주신 내용은 클라 소켓 하나당 이벤트 하나를 대응시켜야 하는데 64개까지 제한이고, 여러명을 받는 서버의 코드는 코드가 간단하지 않다는 점을 단점으로 꼽으셨는데 와닿지 않습니다. 정말 이벤트를 64개 넘게 관찰해야 하는 상황이 있나요?

  • 네트워크
  • MMORPG
  • windows-server
점심 댓글 1 좋아요 0 조회수 409

인기 태그

인프런 TOP Writers

주간 인기글