월 17,600원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
FastLock에 대해 질문있습니다.
궁금증이 생겨서 그런데.. 강의에서 언급해 주신 FastLock의 좀 더 상세한 동작코드를 github등에 공유해주실 수 있으실까요? 아니면 수도코드나 좀 더 자세한 동작방식이 궁금합니다.
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
강의 내용 중 질문있습니다.
Interlocked 계열의 명령어를 사용했을 시, 사용하지 않았을 시 보다 몇 배 정도 느린지 궁금합니다.
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
멀티코어, 멀티쓰레드에서 캐시가 어떻게 복잡해지는지 궁금합니다.
멀티코어, 멀티쓰레드에서 캐시가 어떻게 복잡해지는지 궁금합니다. 강의 마지막에 복잡해진다고 하셨는데 조금 설명 좀 부탁드려도 될까욤..
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
멀티코어, 멀티쓰레드 환경에서 메모리 배리어 사용에 따른 각 코어의 캐시 메모리 동작이 궁금합니다.
멀티코어, 멀티쓰레드 환경에서 메모리 배리어를 사용함에 따라 메모리 가시성이 싱글 쓰레드 환경과는 어떻게 다른지 궁금합니다. 코어의 캐시메모리들이 어떤 규칙이나 방법으로 동기화가 일어나고 있는지 궁금합니다.
- 해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
멀티테스킹과 멀티쓰레드 관계에 관하여 질문있습니다
멀티테스킹은 메모장, 그림판, 게임서버 프로그램을 실행할 때 cpu가 단일 코어라는 가정하에 시분할을 통해 메모장, 그림판 ,게임서버를 번갈아가며 실행시킨다고 이해하였습니다. (메모장 1초 / 그림판 1초 / 게임서버 1초) 질문1) 여기서 게임서버가 멀티쓰레드(2개) 환경이라고 가정한다면 "멀티테스킹"의 시분할을 통해 부여받은 시간(1초)을 또 시분할 하여 "멀티쓰레드"끼리 번갈아가며 실행시키는 것인가요? (쓰레드가 2개라면 0.5초 / 0.5초) (즉, 메모장 1초/그림판1초/게임서버쓰레드a 0.5초/게임서버쓰레드b 0.5초) 질문2) 아니면 "멀티테스킹"이 프로세스기준이 아닌 쓰레드마다 시분할적으로 동작하나요? (메모장1초/그림판1초/게임서버쓰레드a1초/게임서버쓰레드b1초) 읽어주셔서 감사합니다!
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
MMORPG 말고도 다른 게임에서도 이 파트에서 설명해주신 코드로 그대로 사용이 가능한가요?
강의 너무 잘듣고 있습니다! 저도 다른 게임을 개발하면서 서버 관련 강의가 필요해 수강중인데요, 제가 하는 게임은 RPG같은 것이 아닌 미니게임 모음집 같은 게임을 제작 중입니다. 그런데 게임 서버를 하더라도 같은 코드로 진행을 해도되는지 궁금합니다
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
writeLock, writeUnlock, readLock, readUnlock 관련 질문입니다
수업 너무 잘 듣고 있어요! 이 부분은 이해가 잘 안갈거라고 말씀해주셔서 가볍게 보고 있는데도 조금이나마 이해를 해보자 몇 자 남겨봅니다. 0. writeLock, writeUnlock, readLock, readUnlock 이것들의 목적은 무엇일까요? 어떤 상황에서 사용할 수 있을까요? 1. 이해를 돕기 위한 다른 방법이 더있을까요?
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
서버 연동 관련 질문드립니다!
강의 너무 잘듣고 있어요! 다름이 아니라 제가 서버를 네이버 클라우드 플랫폼으로 연결해서 사용하려고 하는데, 지금 수업에 쓰는 코드처럼 조금씩 변경해서 사용하면 되는 건가요? 아니면 네이버클라우드플랫폼에서 제공하는대로 사용하면 되는건가요?
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
기본 세팅 질문드립니다!
수업 너무 잘듣고 있어요! 다만 하다보니 궁금점이 생기는데 저랑 쌤이랑 hello world! 출력하는 화면이 조금 다른 것 같은데 세팅문제인지 아니면 신경안써도 되는 건지 궁금해요!
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
질문이 있습니다
서버를 전부 완성한 후 돌려보았는데 처음엔 잘 되다가 서버쪽에서 Recv에서 0byte를 받고 소켓이 끊기네요... 혹시 몰라서 코드도 전부 비교해 보았는데 별다른 이상을 못 찾았어요... 혹시 어떤 경우에 0byte를 받는지 알 수 있을까요?
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
Connector.Connect 질문입니다.
클라에서 Connector를 통해서 연결시도를 할 때, Connector에게 endPoint를 전달합니다 Connector에서는 socket에 endPoint.AddressFamily를 전달하는데, 제가 생각하는 것은 IP주소 '만' 전달합니다. 뒤에 SocketAsyncEventArgs args 변수를 선언하고 args.RemoteEndPoint에 endPoint를 한 번 더 전달합니다. socket.ConnectAsync할 때 args를 전달합니다. 헷갈리는 부분은 endPoint를 두번 전달하는 것입니다. socket에는 IP주소'만' 들어있어서 포트번호를 모르니 args.RemoteEndPoint에 port번호 포함 주소를 다시 준 것 인가요?
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
Part 4 완료 후 코드리뷰 중 질문입니다.
OnRead함수의 역할은 args.BufferList에 연결된 RecvBuffer가 RecvAsync를 통해 받은 데이터의 사이즈와, RecvBuffer의 DataSize 프로퍼티에서 확인가능한 버퍼 내부의 해독 안 된 데이터의 사이즈를 비교하여 차이의 유무를 판단하는 것이라 이해했습니다. 그런데 OnWrite의 기능은 이해하기 어려운 것 같습니다. 간단하게나마 데이터 수신 후 오버플로우 체크용 함수로 이해는 했는데 정확한지를 모르겠네요
- 해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
패킷을 조립하는 부분에서 제가 생각하는게 맞는지 잘 모르겠습니다. ㅜㅜ
친애하는 루키스님~ 바쁘신 와중에 매번 질문글을 올리게 되어 죄송합니다. ㅜㅜ 루키스님이 아주 친절하게 설명을 해주심에도 제가 제대로 이해를 하는 건가해서 이렇게 송구스럽게 글을 올리게 되었습니다. 클라에서 서버로 패킷을 보내게 되면 아래와 같은 과정을 거친다고 현재 생각을 하고 있는데요. 이 생각이 맞는 걸가요? 1. 클라에서 서버로 패킷이 날아온다. 2. 해당 클라에 대응하는 Session의 _recvBuffer에 차곡 차곡 쌓인다. 3. 패킷이 완전체([size(2)][packetId(2)][ ... ])가 될 때까지 일단 스킵을 한다. 4. 패킷이 완전체가 확인되면 OnRecvPacket()로 전달하고 전달한 패킷을 뺀 나머지 부분을 다시 찝어준다. 5. 이후 패킷이 완전체가 될 때까지 일단 스킵을 한다. 6. 패킷이 완전체가 확인되면 OnRecvPacket()로 전달하고 전달한 패킷을 뺀 나머지 부분을 다시 찝어준다 ......(반복)........ 이렇게 이해하고 있는게 맞는 걸까요?ㅜ 끊이지 않는 질문으로 괴롭혀서 죄송합니다... 루키스님 강의가 재밌어지는 만큼 궁금한 점도 쏙쏙 생겨나서 큰일입니다....
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
session 관련한 질문
안녕하세요 항상 강의 잘 보고 있습니다. Listener와 Connector에 대한 질문 입니다. 양쪽 모두 OnAcceptCompleted, OnConnectCompleted 로 _sessionFactory를 통해 session을 생성하고 start해주는데요, session을 하나 생성해서 그것을 통해 서로 주고받고 한다고 이해했는데 왜 new코드가 2개이지 하고 복습을 하던 차에 의문이 들었습니다. Connector에서나 Listener에서나 상호간에 연결된 socket을 통해 session을 생성하는 것이므로 하나의 session이 되는 것인지, 두 번 new 하므로 Connector session 하나, Listner session 하나 해서 총 2개의 session이 되는 것인지 아래 그림 과 같은 의문이 들어 질문 드립니다.
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
수업에 사용된 ppt 파일 얻을 수 없을까요
필기를 수월하게 하고싶습니다 ㅜㅜ
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
이 부분은 어떻게 작동되는건가요?
제 역량이 좋지 못해서 자꾸 질문을 올리게 되네요. 항상 좋은 답변에 감사드립니다. 다름이 아니라 이 밑에 있는 코드부분에서 session.Send(Segment); 부분에 의문이 생겼습니다. 이게 결국 앞에서 만든 segment를 list serversession한테 보내서 그 리스트에 있는 serversession 들이 소켓을 통해서 서버한테 보낸다는 건데 이때 send는 session에 있는 함수인데 어떻게 이게 호출된건지 헷갈려서요. 고민끝에 내린 결론은 프로그램에 sessionmanager가 clientSession을 생성할때 거기서 참조되어 연결되었다고 내렸습니다. 이게 맞는 건가요?
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
안녕하세요!! 쓰레드와 프로세스의 차이
안녕하세요. 좋은 강의 감사합니다!!제가 프로세스와 쓰레드, 멀티프로세스, 멀티쓰레드를 정확히 구분짓지 못하는거 같아 이렇게 질문으로 남깁니다. 1. 제가 이해한 대로는 프로세스가 하나의 프로그램이고, 그 프로그램을 여러개 실행하면 멀티프로세스, 그리고 하나의 프로그램 안에 실행 역할을 해주는 쓰레드가 여러개가 있다면 멀티쓰레드라고 이해했습니다. 혹시 이게 맞을까요??2. 임계영역이라는게 서로 다른 쓰레드 또는 프로세스가 자원 공유하는걸 접근하는건데 분명 프로세스는 아예 다른 프로그램으로 각자 다른 메모리를 가지고 있는데 공유되는 자원이 있다는게 잘 이해가 안갑니다.. 그리고 컨테스 스위층은 서로 다른 프로세스에서 다른 프로세스를 실행할때 일어나는건가요?? 아니면 쓰레드에서 다른 쓰레드로 넘어갈때 일어나는건가요??.. 분명 컨테스트 스위층가 프로세스에서 프로세스로 이동하는것보다 공유하는 메모리가 있기 때문에 쓰레드에서 쓰레드로 이동하는게 더 빠르다고 들었습니다. 이 말도 머리에서 잘 그려지지 않네요... 이렇게 독립적으로만 개념을 이해하고 있고 이를 큰 그림으로 이어서 이해를 할려고하면 앞뒤가 안맞아서 이렇게 질문남깁니다.!!
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
_onAcceptHandler.Invoke(args.AcceptSocket); 에 질문이 있습니다.
안녕하세요 복습 하면서 궁금한 점이 생겨서요 _onAcceptHandler.Invoke(args.AcceptSocket) 이 코드 부분을 통해 listener 에서 연결해준 대리자가 program 에 있는 OnAcceptHandler 라는 함수를 실행시켜서 대리자가 함수에 맞춰서 보내고 받는 것이라고 이해했습니다. 혹시 제가 이해한게 맞다면 처음 제가 쓴 문법이 어떻게 OnAcceptHandler를 실행시키는 건가요? 제가 생각하기에는 SocketAsyncEventArgs 와 관련이 있을 거 같은데 정확한 답을 알고 싶어서요. 혹시 마지막으로 session.Onconnected(args.AcceptSocket.RemoteEndpoint); 부분인데요 RemoteEndPoint를 왜 넣는 건가요? 앞에 endpoint는 네트워크 연결이라는 것을 알겠지만 이건 모르겠네요.....
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
BitConverter.TryWriteBytes 질문입니다.
BitConverter에 TryWriteBytes가 없어서 강사님이 올려주신 솔루션에서 확인해보니 System.Runtime.Extensions에 있는 것을 알게 되었습니다. 제 솔루션에도 using System.Runtime.Extensions를 적용하려했으나 System.Runtime까지는 있는데 Extensions가 없다고 뜨네요. 어떻게 해결할 수 있을까요?
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
Unlock 부분에서 궁금한점이 있습니다.
Unlock할때 따로 ThreadID를 체크하는 부분이 없는거 같은데 이렇게 되면 다른 Thread가 unlock시도해도 풀려버릴꺼 같네요. 그럼 이 class를 이용할때는 무조건 Unlock 명령을 lock 명령 뒤에 둔다는 약속하에 이용하는거죠?