묻고 답해요
156만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
Tcp 프로토콜 관련해서 질문드립니다.
안녕하세요 수업을 N회독하면서 이해한 부분이 맞는지, 또 질문이 있어 글을 남깁니다.1. TCP프로토콜 : TCP는 내부적으로 패킷이 잘 도착했는지, 순서있게 왔는지 확인하면서필요하면 재전송을 한다고 알고있습니다. 가령, 클라이언트에서 이동패킷, 공격패킷 등등을모아서 한번에 SendAsync를 하게될텐데 이 크기가 100의 크기라고 하면 TCP는 연결된ip주소와 port번호를 통해 보내게 될텐데, 이 과정에서 내부적으로 최적의 상태로 쪼개서100을 ( 20, 30, 50 )이렇게 쪼개서 보내게 된다면, 또한 보낼때도 한 경로로만 보내는 것도아니니 받는입장 즉 서버의 커널단에서 패킷을 받게될텐다. 30 20 50 순서로도 올수있고50 30 20 으로도 올수 있다고 알고있습니다. 또한 하나가 유실되어서 20, 30만 도착할 수도 있고요그런데 수업중에 PacketSession에서 OnRecv를 오버라이딩 할 때 패킷이 100%다 온다는 보장이없다. 그래서 헤더를 까보고 이 패킷이 전체가 다 왔는지 확인하는 작업이 있었습니다.여기서 의문점이 생겼는데. TCP는 내부적으로 20, 30만 도착하면 대기하고 50이 오지않았다고 재전송해달라는 요청을할거고 최종적으로 50까지 도착하게되면 서버쪽에 OnReciveCompleted함수를호출하고 그 정보를 넘겨줄텐데. 그러면 지금 개발하고있는 서버입장에서는 100% 완전히왔다고 판단 할 수 있는게 아닌지 너무 헷갈립니다.ㅠ 또한 위 내용이 제가 제대로 이해했는지도 궁금합니다!
-
해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
Stack Overflow
안녕하세요 선생님! 학습하고있는 와중에 프로세스메모리가 20mb를 유지하다가 급격하게 상승하더니 5gb까지 상승하고 바로 프로그램이 뻗어버리는데 이부분은 어떻게 해결해야할까요?? 작업자 쓰레드는 대략 10개정도로 생성되었고 client Connect도 10이고 RecvBuffer 크기도 4096으로해봤는데 해결이 안되네요..ㅠㅠ
-
해결됨절대강좌! 유니티 6 - TPS 게임으로 배우는 유니티 마스터클래스
[질문] ScriptableObject 를 활용한 이벤트 버스 관련 질문이 있습니다.
안녕하세요. Scriptable Object 를 활용해서 이벤트 버스를 생성하는 내용을 보고 있습니다. 하지만 코드를 보다보니 그냥 일반적인 싱글톤클래스로 생성한 이벤트관리자와 다른게 안보이는데요. Scriptable Object 를 사용했을때의 장점이 있을까요?오히려 script 도 만들고, 그걸 통해 SO 도 생성해서파일수로만 봤을때는 손해가 아닐까 싶어서요.
-
미해결[라이브 멘토링] 유니티 뱀파이어 서바이벌 장르 모작
Managers.Object.Player와 Mangers.Game.Player 차이
ObjectManager에서 Spawn에 ObjectManager.Player와GameManagerPlayer를 동시에 생성해주고 있는데강의가 진행될 수록ObjectManager에 선언된 Player를 사용하지 않고 GameManager에 Player를 선언하여 사용하는데에는 어떤 이유가 있나요??
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
3D MMORPG
와우나 아이온 같은 TPS뷰 3D MMORPG는C#으로 서버 만들어도 될까요?C++으로만 만들어야 하나요?
-
미해결[켠김에 출시까지] 유니티 캐주얼 모바일 MMORPG (M2)
강의는 끝인건가요?
강의가 더이상 업로드 안되는 것 같은데끝이 난 건가요? 라이브 및 대응도 보고싶은데 너무 아쉽습니다.
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
send질문
큐를 이용하여 _sendArgs.에 셋버퍼를sendAsync하기 전에 하면 좋은점 ?snedAsync는 멀티스레드 환경에서 하나씩만 할수있는데, 그전에 셋버퍼를 해둘수있다 ?? 잘 이해가 안가네요 ㅠㅠ 뭐가있죠 ?
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
ReaderWriteLock 구현연습 count 관련 질문 [해결했습니다]
ReaderWriteLock 구현 연습 강의 잘 봤습니다.강사님 환경에서는 10만번을 돌려도 락 구성이 잘 돌아가서 count가 0이 나옵니다.제 환경에서는 Debug 모드, Release 모드 일 때Debug: count 수가 꽤 자주 바뀝니다.Release: count 수가 0이 나올 확률이 Debug보다 약간 높습니다.또한 컴퓨터를 리부팅 하고 돌려보면 10번중에 2번은 count의 수가 바뀝니다. 질문CPU나 메모리 환경, 켜져있는 프로그램에 따라서 Lock 구현이 실패하는 경우가 있을까요? 제 환경입니다.AMD Ryzen 5 3600XT 6-Core Processor메모리 32GB
-
해결됨절대강좌! 유니티 6 - TPS 게임으로 배우는 유니티 마스터클래스
[질문] Component 이름 관련해서 질문이 있습니다.
안녕하세요. 강의를 듣다보면애니메이션 상태값이나 GameObject 이름등을참조할대 매번 [이름 오탈자에 주의해 주세요]라는 말씀을 하고 계시는데요. 유니티 외 다른 프로그래밍을 할때는 이러한 문제를 막고자이름을 상수로 고정 선언해두고, 해당 값을 참조하고 있는데,유니티에서는 이러한 접근은 할 수 없는 것일까요? const val SPAWN_POINT_GROUP = "SpawnPointGroup" 같은 느낌으로 말이죠.
-
해결됨절대강좌! 유니티 6 - TPS 게임으로 배우는 유니티 마스터클래스
[질문] Custom NavMesh Link 관련해서 궁금한게 있습니다.
안녕하세요. 현재 Custom Navmesh Link 를 이용하여양방향 이동 관련 모습을 보여주셨는데요. 특정 타입의 몬스터별로 해당 기능을 제어가 가능한지 궁금합니다. 마리오를 보면 빨간색 거북이는 언덕에서 되돌아가고 녹색 거북이는 언덕을 뛰어내려서 쫓아오잖아요. 이것처럼 타입별로 제어가 가능한지 궁금해서요.양방향일때 오르고 내리는 부분에 대해서 애니메이션처리가 가능한지 궁금합니다. 내려갈때는 raycast 등을 이용해서 fall 애니메이션을 발동시킬 수 있을거 같은데, 올라갈때는 등반애니메이션 설정이나 점프 애니메이션을 하게 할 수 있는지 궁금해서요.좋은 강의 감사합니다.
-
해결됨절대강좌! 유니티 6 - TPS 게임으로 배우는 유니티 마스터클래스
[질문] Scriptable Object르 이용한 메모리 최적화 관련 질문이 있습니다.
안녕하세요. 스크립터블 오브젝트를 이용해서 메모리 사용을 최적화 하는건 참 놀랐습니다.그 어느 강의에서도 못보던 내용인데요. 2개 이상의 변수에 대해 사용하는 것은 이해를 할 수 있을거 같은데요. bullet 같은 경우는 int 형 자료 하나만 있었는데 이것도 옮기시더라구요. int bulletSpeed; 는 정수형이므로 4byte 일거고ScriptableObject so; 는 참조형이라서 8byte 를갖지 않을까 싶어서요.그러면 int 하나만 있는것은 so 로 변환하는게 오히려 손해 아닌가요?
-
해결됨Unity 기초 & 실습 통합 강의: 게임 따라 만들기
7강 8강 강의가 같습니다.
천천히 쉽게 가르쳐 주셔서 열심히 따라하고 있는데7강 8강 강의가 같습니다 6강 듣고 7강 들으니 진도가 너무 나간 것 같아서 확인해보니 8강이 2번 들어간 것 같습니다.확인 후 수정 부탁 드립니다.
-
해결됨[Unity6] 유니티6로 배우는 실전 멀티플레이 디펜스
서버와 클라이언트 타겟 동기화
지금 게임을 보면 데미지폰트가 클라이언트와 서버에 여러개가 나오 있는데 혹시 이건 언제쯤 픽스 될 예정인가요?그리고 추후에 서버와 클라이언트 간에 때리는 타겟을 완전 동기화 하실 건가요?
-
해결됨책 3권을 영상으로 만든 Unity 게임 개발
OnTriggerEnter2D에서 문제가 생겼어요
private void OnTriggerEnter2D(Collider2D collision) { Debug.Log("Hi Red~ " + collision.gameObject.tag); if(collision.gameObject.tag == "BaseRed") { isCollision = true; Debug.Log("Bye Red~ " + collision.gameObject.tag); } } 쓰고 BaseRed태그를 설정했는데도 불구하고, 로그에 찍히는건 Untagged라고 계속 뜨는데 어떻게 해야할까요?ㅠ
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
Unity를 연동할 때에 서버 OnConnectionFailed 에러가 뜹니다
안녕하세요 저는 Mac을 이용해 강의를 듣고 있습니다. 현재 Visual studio for Mac의 지원중단에 따라 VScode로 따라가고 있습니다. 실행할 때에도 vscode 내에 분할 터미널을 이용해 "dotnet run" 명령어로 Server, Client를 실행시키고 있습니다. 그런데, 유니티 연동#1 강의에서도 같은 방법을 dotnet run으로 Server와 Client를 실행시키고 유니티에서 플레이 버튼을 눌렀을 때 "OnConnectCompleted Fail: ConnectionRefused"이라는 에러가 떠서 Connect가 아예되고 있지 않습니다! Mac 환경의 문제인지 아니면 제가 잘못된 방법으로 진행중인지 알려주시면 감사하겠습니다!
-
해결됨[Unity6] 나만의 서바이벌 게임 만들기
TextMeshPro 폰트 깨짐
안녕하세요 4강 Key UI 학습 중에 질문이 있어서 글을 남깁니다.위의 사진과 같이 Game 화면에서 폰트가 깨져 알아볼 수 없는 형태가 됩니다.NotoSans와 Liberation 모두 저런 현상이 나타납니다. Atlas Resolution, Character Set, Render Mode 모두 재설정해봤는데 계속 깨집니다ㅠㅠ
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
SendBuffer질문있습니다.
SendBufferHelper를 TLS로 구현을 해서 각 쓰레드가 고유한 SendBuffer인스턴스를 갖게 되는데 ArraySegment<byte> openSegment = SendBufferHelper.Open(4096); byte[] buffer = BitConverter.GetBytes(knight.hp); byte[] buffer2 = BitConverter.GetBytes(knight.attack); Array.Copy(buffer, 0, openSegment.Array, openSegment.Offset, buffer.Length); Array.Copy(buffer2, 0, openSegment.Array, openSegment.Offset + buffer.Length, buffer2.Length); ArraySegment<byte> sendBuff = SendBufferHelper.Close(buffer.Length + buffer2.Length); Send(sendBuff); 그럼 이부분에서 A라는 쓰레드가 Open과 Close를 통해 고유한 SendBuffer의 buffer에 정보(패킷)를 저장을 하게되고 그 정보를 Send하게 되고 그걸 sendQueue에 그냥 저장만 한 상태라고 가정을 해보겠습니다. 또 B라는 쓰레드도 위 과정을 해서 Queue에 저장을 하게된다고 하겠습니다.여기서 궁금한게 일단 A 와 B가 Send를 한 그 정보는 각 쓰레드가 고유한 _buffer에 저장된 정보이고 만약 다른쓰레드가 큐에저장된 값을 보낸다고 할때 ArraySegment는 원본을 참조하니까 A와 B의 고유한 인스턴스에 접근을 해야하는거 아닌가요..? ArraySegment가 원본을 [참조] 하니까 접근을 하지만 [읽기만] 하기때문에 괜찮다. 이렇게 이해를 하면되는건지 아니면 제가 잘못이해하고있는건지 궁급합니다.
-
해결됨책 3권을 영상으로 만든 Unity 게임 개발
에너미 이동 질문
Vector2.right에 -speed 곱하는거말고Vector2.left를 사용하면 안되는 건가요?? 그리고 코드를 /똑같이 작성했는데도 불구하고 에너미가 스폰되고 우리팀 본진에 충돌했을시 공격애니메이션이 최초 1회밖에 실행이 안됩니다 반복이 안되고 처음 충돌하고 최초 1회 실행되고 그다음부터는 그냥 아이들모션으로 멈추네요 왜이러는거죠ㅠㅠ
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
Collision 강의 부분 목소리가 이상한데요
10초전까지 괜찮다가 그 이후 이상해지는데이거에 대한 말한 사람 아무도 없었네
-
해결됨절대강좌! 유니티 6 - TPS 게임으로 배우는 유니티 마스터클래스
강사님~ 오디오 파일 관련해서 질문있습니다!
강사님~ 너무 재밌게 강의를 듣고 있습니다.궁금한게 하나 있는데 섹션 6번에서 '스파크 이펙트 표현' 강의를 완강 후'Audio 기초 사용법' 강의로 넘어갔는데 오디오 파일이 없어서...혹시 오디오 리소스는 어디서 다운 받을 수 있을까요?혹시나 제가 수업자료를 놓친건가 싶어서 앞 강의를 다시 돌려봤는데 어디서 받아야하는지 잘 모르겠습니다.