월 17,600원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
lock 질문입니다.
저는 한쪽에만 lock을 걸으면 어떻게 될까? 라는 생각을 가지고 Thread_1에는 lock을 걸고, Thread_2에는 lock을 걸지 않았습니다. Thread_2에서는 lock을 걸지 않아서 lock의 영향을 받지 않기 때문에 Thread_1에서 작업중인 number에 접근할 수 있고, Thread_1에서도 Thread_2에서 작업중인 number에 접근할 수 있어서 난수가 나올 것이라고 예상했습니다. 하지만 몇번을 돌려봐도 결과는 난수가 아닌 0이 나왔습니다. 그리고 질문들을 살펴보다 보니 새로운 object _obj2를 만들어서 Thread_2에 lock을 했을 때는 난수가 나온다는 것을 알았습니다. 서로 다른 object를 통해 lock을 하면 난수가 나온다는 것은 이해했고 이게 제가 예상했던 결과인데, 한쪽에만 lock을 걸었을 경우에는 왜 0이 나오는지 잘 모르겠습니다.
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
MMORPG 동접에 따른 서버 유지비용.
안녕하세요. 게임 강좌와 사실 크게 관련이 없고, 이러한 질문을 드려도 될지 모르겠지만, 파트4~9까지 이곳에서 가르쳐주시는 것의 기반으로 동시접족자 수는 1000명이고, 바람의나라처럼 몬스터 수와 컨텐츠 수 등 비슷하다고 가정했을 때 서버를 만든다면 하루 서버 비용은 대략 얼마정도 예상할 수 있는지 여쭤볼 수 있을까요? 그리고 가정에서 일반 컴퓨터로 서버를 유지할 수는 없는 것인가요?
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
서버 프레임워크
여기서 배운 웹서버와 api서버하고 많이 다른가요 그리고 코딩한 내용이 프레임워크와 같이 된것이 c# 에도 있는지요
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
소스코드는 별도로 올려주시는 것인가요?
안녕하세요! 강의를 들으면서 타이핑을 할 수도 있으나 강의자료 내에는 PPT만 있더라고요. 혹시 소스코드를 따로 올려주시는 것인지 궁금합니다~
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
Context-Swiching 파트 질문 드립니다.
1. 다양한 환경의 머신과 OS에서 발생하겠지만 Context-Swiching이 어느정도의 성능부하를 일으키는지 예시나 스트레스 테스트를 한 자료나 경험을 공유해주실 수 있으신가요. Context-Switching은 비용이 비싸다고 통상적으로 알고있는데요. 좀 더 가늠할 수 있는 자료나 경험이 있으신지 궁금합니다. 2. Context-Switching시 vtable의 교체가 일어나는 것은 코어가 담당하는 프로세스가 변경되었을때에 한정인지 궁금합니다. 동일 프로세스 내의 다른 쓰레드로 Context-Switching이 일어난 것이라면 vtable이 교체되지 않고 레지스터나 스택 메모리 정보(?) 정도만 교체가 일어나면 될 것 같습니다. 3. 코어의 갯수만큼 쓰레드를 사용한다고 해도 쓰레드들은 Context-Switching이 일어날 것 같은데요. 1번 코어에서 A 쓰레드가 동작하다 Context-Switching 후 2번 코어에서 동작하는 일들도 일어날 것 같습니다. 운영체제에서 기본적으로 돌아가는 다른 쓰레드들에 의해서도 Context-Switching이 일어날 것 같습니다. 쓰레드들은 정해진 작업시간이 지나면 잠들고 어느 코어에서 깨어나려고 할 것 같습니다. 제 생각에 코어와 쓰레드 갯수가 같을 때 1번 코어에만 A 쓰레드가 동작하게 할 수 있는 방법은 없는 것 같습니다. 그렇다면 얼마나 성능의 이득을 얻을 수 있을지 조금 의문이듭니다. 4. 최근 몇년간 Actor 모델이라고 해서 Tera등과 같은 서버에서 활용된 서버 디자인이 있다고 들었습니다. 향후 이 모델을 기반으로 게임 서버 디자인 및 컨텐츠 강의를 해주시면 안될지 궁금합니다. 제가 현재 강의를 듣고있는 상태인데 현재 C#, C++ MMO 서버 강의에 해당 서버 디자인이 적용되는 것일까요? Actor모델로 서버를 작성한 회사에서 일을하지 않는 한 해당 디자인과 같은 코어 성능을 최대한 활용하려 시도한 모델을 접하기 어려울 것 같아서 가능하다면 꼭 좀 부탁드리고 싶습니다. 제가 졸린 상태에서 쓴 글이라.. 양해 부탁드립니다. Context-Switching의 비용과 코어를 최대한 활용하려 시도한 Actor 모델에는 매우 관심이 있는데요. 이론적으로 실제 측정적으로 어느 정도의 성능의 이득이 있는지 궁금합니다. Context-Switching과 코어의 갯수만큼 쓰레드를 만들어 최대한 활용하는 주제에 대해서 관심이 많습니다. 앞으로도 질문에 대해 친절히 답변해 주시면 정말 감사드리겠습니다!
- 미해결[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 파일 얻을 수 없을까요
필기를 수월하게 하고싶습니다 ㅜㅜ