월 17,600원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part9: MMO 컨텐츠 구현 (DB연동 + 대형 구조 + 라이브 준비)
Iocp 서버 관련 질문드립니다.
안녕하세요. c#에 이어 c++강의까지 유익하게 듣고 있는 수강생입니다. c++에서 만든 서버로 C#(유니티)에서 사용해보려고 질문드립니다. 1. servercore부분을 C#강의에서 했던 방식을 참고하여 새로 만들고 Clinet도 C#강의 방식으로 만들기 2. Servercore 및 구현부를 C++코드로 짠 뒤 C++/CLI를 이용하여 dll을 만들어 C#에서 사용하기. 3. 파이썬으로도 clinet를 만들어보고 싶은데 혹시 추천해주실 방식이 있을까요? 긴글 읽어주셔서 감사합니다!
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part9: MMO 컨텐츠 구현 (DB연동 + 대형 구조 + 라이브 준비)
서버 관련 질문
안녕하세요 강사님 강의를 들으면서 궁금점이 생겨서요 리그오브레전드는 판 게임이라서 mmorpg와는 다르게 게임이 시작 할때만 방이 생성되고 끝나면 방을 죽이는 방식으로 진행이 되는데 그럼 그때는 방 하나 마다 서버 컴퓨터 한대가 연산처리를 하나요? 아니면 컴퓨터 한 대가 여러 방을 만들어서 연산 처리를 하나요 만약 정답이 후자라면 iocp서버나 c# 서버로 구현할 수 있나요?
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part9: MMO 컨텐츠 구현 (DB연동 + 대형 구조 + 라이브 준비)
DB 처리관련 질문이 있습니다
안녕하세요. 루키스님 강의를 몇번이나 돌려보는 학생입니다. 다름이 아니라 Room에서 Room으로 플레이어가 이동을 할때 진행중인 DBTransaction이 있다면 일반적으로 DBTransaction 처리 결과를 어떻게 전달하는지 궁금합니다. 현재 강의에서는 Room 이동이 없기에 그냥 기존 Room으로 Push해주는데, Room이동이 가능해서 플레이어가 이미 다른 Room으로 이동 했다면 생각할게 많아 질 것 같습니다. 단순 생각으로는 Player가 어떤 Room에 있는지 확인 후 해당 Room으로 DBTransaction 결과를 전달해 주면 될것 같긴한데 Player를 Room에서 찾아서 넣어주려는 순간에 또 다시 Player가 Room이동을 하면 결국 잘못된 Room으로 결과가 전달되는 것 같아서 어떻게 처리해야 할지가 머리가 복잡하네요 일반적인 처리 방식이나 괜찮은 방식이 있다면 언급 부탁드리겠습니다! 항상 감사드립니다~
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part9: MMO 컨텐츠 구현 (DB연동 + 대형 구조 + 라이브 준비)
안녕하세요. 질문드립니다.
안녕하세요. accountserver 구현 후 외부 접속을 해보고 있는데 서버를 실행중인 피씨와 다른 피씨에서 인터넷 창에 아이피를 입력 하면 잘 되는 것 같은데 유니티에서 실행하면 에러가 납니다.관련해서 아시는 것이 있다면 답변 부탁드리겠습니다.
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part9: MMO 컨텐츠 구현 (DB연동 + 대형 구조 + 라이브 준비)
이해한 것이 맞나 궁금합니다.
플레이어가 disconnected될 때 게임룸에서 Push를 하여 LeaveGame을 예약을 했었는데요. 현재 JobSerializer를 상속하는게 DbTransaction과 GameRoom 두 개가 있는데 쉽게 두 개의 쓰레드가 있다고 생각하면 되는지 모르겠습니다. 하나의 게임룸에서 일감이 - 플레이어A의 LeaveGame - 플레이어B의 전투 - 플레이어C의 전투 ... 이렇게 쌓여있을 때 플레이어A가 나갔을 때 현재 상태를 DB에 저장한다고 하면 I/O를 처리하는데 시간을 많이 잡아먹으면 플레이어B와 C의 전투 처리 코드가 지연이 되기 때문에, DbTransaction 쓰레드로 DB 일감을 Push하여 거의 같은 시각에 봤을 때 플레이어B의 전투와 플레이어A의 DB 갱신 로직이 처리될 수 있다고 이해했는데 이렇게 생각하면 될까요? 세 지점에 브레이크 포인트를 찍어서 쓰레드를 관찰해봤는데 위에서 차례대로 24132 -> 주쓰레드 -> 9440 이렇게 변화가 있었는데요. 전부 Push로 예약을 하는 입장에서 왜 DbTransaction에 Push한 일감만 주쓰레드에서 처리하는지도 궁금합니다.
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part9: MMO 컨텐츠 구현 (DB연동 + 대형 구조 + 라이브 준비)
마이그레이션 파일이 이상합니다.
DB데이터가 이상해서 삭제후 다시 add-migration했는데 마이그레이션 파일 up,down이 비어있어요 오류도 안떠서 뭐가 문제인지 모르겠네요
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part9: MMO 컨텐츠 구현 (DB연동 + 대형 구조 + 라이브 준비)
강의 마지막으로 질문 드립니다.
안녕하세요 루키스님 동영상을 녹화하면서 몇번이나 돌려보고 복습하고 완변하게는 아니지만 그래도 어디가서 게임이 대충 이런식으로 만들어진다. 라고 자신있게 말할 수 있게 되었습니다. 이제 배운것들을 이용해서 직접 fps 게임을 만들고 거기다가 서버를 붙여서 온라인게임으로 사업을 하고 싶습니다. 제가 여태 들은 강의는 주로 내부 네트워크를 이용해서 진짜 다른 컴퓨터가 내가 만든 서버에 접속하여 작동하는 모습을 보지 못해 여태 서버 배운것들이 깊이 와 닿지는 않네요.... 막연한 질문 이겠지만 여기서 진짜 온라인 서버를 만들려면 무엇을 더 배워야 할까요? 마지막으로 리니지, 메이플 프리서버 같이 불법 사설 서버들은 어떠한 방식으로 서버를 운영하는 건가요? 지난번 어렴풋이 루키스 강사님께서 서버를 열어 무슨 사업적인 활동을 하는것은 불법이라고 이해했습니다. 그럼에도 불구하고 불법 사설 서버들은 자신의 집에있는 컴퓨터를 이용하여 서버를 구축하고 온라인게임을 만들었는데 그것이 가능하게 하려면 어떤 방시으로 한 걸까요? 질문이 너무 막연하고 터무니없는 거 같아, 죄송합니다. 하지만 저는 정말 궁금합니다. 주변에 물어볼 사람도 없고, 오죽 답답한 마음을 풀지 못해 전문가 분께 여쭙게 되었습니다.
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part9: MMO 컨텐츠 구현 (DB연동 + 대형 구조 + 라이브 준비)
ItemDbId,구조 설계
1. templateId가 Db의 특정 아이템을 가리키는거면 ItemDbId는 무슨용도인가요? 강의를 봐도 무슨 용도인지 감이 안잡힙니다. 2. 강의를 보면 클라랑 네트워크를 통신할때 구조 설계와 인벤토리 구조 설계를 만드시는거 보면 아주 쉽게 구현하시던데 저는 구조가 논리적으로 생각이 잘안나서 구현할 엄두가 안나는데 노하우가 있을까요? 강의 없이는 어떻게 만들 엄두가 안나네요 원자 단위로 만들어야 하는거같은데 생각할려고해도 잘 안되네요ㅠㅠ
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part9: MMO 컨텐츠 구현 (DB연동 + 대형 구조 + 라이브 준비)
MMO 서버 관리 질문 드립니다!
안녕하세요 루키스님, 서버 구조 강의를 보면서 궁금한 점이 생겨 질문 드립니다. MMO 게임서버는 특성상 서버군을 나눠서 부하를 관리한다고 말씀하셨는데, 현업에서는 이에 따른 서버 관리를 어떻게 하고 있는지 궁금합니다..! 웹 서버의 경우 요즘 도커와 쿠버네티스 등을 통해 서버의 배포나 운영을 관리한다고 주워 들었는데 MMO 게임 서버도 비슷한 도구를 사용하여 관리하는지, 아니라면 어떤 방법으로 관리 하는지 궁금합니다!
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part9: MMO 컨텐츠 구현 (DB연동 + 대형 구조 + 라이브 준비)
디비 정보 나누기
안녕하세요 루키스님!! 강의 마지막 프로젝트 기준으로 하나의 컴퓨터에서 아이디를 2개 생성한 후 로그인을 시도하면 둘 아이디와 비밀번호만 다를뿐 착용중인 아이템, 인벤토리창 등등 완전히 똑같은 정보로 load가 됩니다. 계정이 2개면 2개 전부 다른 정보를 갖고 있어야 하는데 이렇게 작동해서 질문 드립니다! 이부분을 수정하고자 디비와 코드를 보니 AccountDB에는 이렇게 아이디를 2개 생성했던 것이 GameDB로 가면 이렇게 돼 있는 것을 볼 수 있습니다. 제가 접근한 방식이 맞는지 모르겠지만 AccountDbId만 맞춰주면 될 것 같은데 어디부분인지를 잘 모르겠습니다...
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part9: MMO 컨텐츠 구현 (DB연동 + 대형 구조 + 라이브 준비)
AccountDb 업데이트
강의의 마지막 부분인 <서버 선택창> 부분의 소스 파일을 받고 AccountDb를 시작 프로젝트로 설정한 후 패키지 관리자 콘솔에서도 AccountServer로 놔둔 후 update-database를 때렸는데 More than one DbContext was found. Specify which one to use. Use the '-Context' parameter for PowerShell commands and the '--context' parameter for dotnet commands. 이렇게 나옵니다! AppDbContext가 2개 이상이라 그런 것 같은데 보시다시피 하나밖에 보이지 않습니다. 구글링을 해보니 update-database -Context AppDbContext로 실행하면 된다는데 -context로 실행할 DbContext를 찝어준다는 것 같은데애초에 왜 DbContext를 2개로 판단하는지 궁금합니다!
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part9: MMO 컨텐츠 구현 (DB연동 + 대형 구조 + 라이브 준비)
콘솔창이 아니라 브라우저에서 실행
account#1 강의 25분 15초 즈음 IIsExpress로 실행하면 콘솔창이 아닌 브라우저 창으로 실행된다고 하셨는데 AccountServer의 launchBrowser 부분을 true로 바꿔주고 프로젝트 시작도 AccountServer가 아닌 IIS로 실행하니 이렇게 떴습니다!!ㅠㅠ 유니티 내부의 로그인 유아이에서 아닌 웹 브라우저로 따로 빼서 하고 싶은데 방법이 없을까요??
- 해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part9: MMO 컨텐츠 구현 (DB연동 + 대형 구조 + 라이브 준비)
메모리 누수문제.
안녕하세요. 루키스님^^ 루키스님 강좌를 토대로 열심히 게임개발을 공부하고 있는 직장인입니다. 다름이 아니고 개발 후 메모리 점유율이 높아지는 현상이 생겼는데요. 루키스님의 최종 프로젝트를 이용해 오라클 클라우드 서버 인스턴스에서 구동해보고 관찰을 해보았습니다. 메모리 점유상태가 50%를 지속적으로 잘 유지하는 것같다가도(몬스터 500마리) 이후에 몬스터를 다수 잡고난 뒤에 더이상 게임 접속없이 몇 일 결과를 지켜보니 메모리 점유율이 점차 높아지는 현상이 발생하였습니다. 플레이어의 접속이 없어도 메모리 점유율이 올라갑니당ㅠㅠ 몬스터 리젠과 관련된 부분으로 추측해서 열심히 뜯어봤는데 도무지 어디서 메모리 점유율이 계속 올라가는지 감을 못잡겠습니다. ㅠㅠ 어느 부분을 먼저 살펴보면 좋을지 몰라 힘트라도 얻고자 이렇게 글을 남기게 되었습니다.ㅠㅠ 그리고 유투브 구독신청과 좋아요 매번 누르고 있어용~ ㅎㅎ 영상 많이 올려주세용~
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part9: MMO 컨텐츠 구현 (DB연동 + 대형 구조 + 라이브 준비)
유니티에서 클라이언트 빌드후 실행하면 맵 로드가 안됩니다.
안녕하세요, 이번 강의에 올라온 코드로 유니티에서 빌드해서 실행을 했더니 맵등이 로드되지 않습니다. 빌드하려면 별도의 설정등이 필요한건가요?
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part9: MMO 컨텐츠 구현 (DB연동 + 대형 구조 + 라이브 준비)
외부 네트워크에서도 접속해서 게임하기
디비 연동까지 끝낸 이 프로젝트를 한 컴퓨터 내에서만 할 수 있는게 아쉽습니다!! Login UI 제작 부분을 어떻게 웹 사이트쪽으로 옮겨서 회원 가입 후 로그인하게 한 다음 우리의 게임에 들어오게 할까라는 고민을 하던중 강의 번외편을 보니 AWS를 활용한 강의가 있으신걸 봤습니다!! 그 강의를 수강하면 저희가 학습한 강의 9의 프로젝트를 저의 노트북에서만이 아닌 다른 이의 네트워크에서도 웹 사이트를 통해 접속하여 저희의 2D MMO RPG에 접속하여 같이 게임을 즐길 수 있는 걸까요??
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part9: MMO 컨텐츠 구현 (DB연동 + 대형 구조 + 라이브 준비)
유니티클라에서 패킷을 계속 보내지 않고 lockstep이나 추측항법으로 동기화를 할 수 있을까요?
여러 캐릭터를 움직여서 싸우는 유사 RTS장르를 구상중인데요 클라에서 매순간 쏴주는 패킷이 부담되지 않을까 고민중입니다. 패킷을 자주보내지 않고 동기화 하려면 double형이 보통 쓰인다고 얄팍하게 알고있는데요 입력값을 보내서 동기화 하는 추측항법이나 특히나 각클라에서 어긋나면 안되는 lockstep같은경우 유니티 클라이언트에서 실현하려면 기본적으로 제공되는 float형의 Vector3, transform.position이나 다른 여타 제공되는 함수를 다 버리고 double형으로 전부 새로 다시파야할까요? 아니면 일반적으로 쓰이는 보정하는 방법이 있는지요?
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part9: MMO 컨텐츠 구현 (DB연동 + 대형 구조 + 라이브 준비)
서버 메모리와 DB 저장 관련 질문
안녕하세여 루키스님 강의 듣다 문득 궁금한게 있어서 질문 드립니다~ 서버 메모리를 DB에 저장하는 방법에 대해서 고민해보고 있는데요 1.서버가 DB에 주기적으로 저장 하는것 2.유저가 종료할 때 저장하는것 를 병행해야 한다고 생각하고 있는데 만약에 서버에서 아이템 거래가 일어나는 도중에 갑자기 서버가 죽어버리면 그럴때에는 주기적으로 DB에 저장한것을 토대로 서버가 죽기 이전으로 롤백을 시키는게 바람직한 방법일까요? 서버에서 중요한 데이터들이 움직일때 그때 갑자기 서버가 죽는상황을 대비해서 서버는 DB 저장 처리를 어떻게 해야할까요?
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part9: MMO 컨텐츠 구현 (DB연동 + 대형 구조 + 라이브 준비)
JsonUtility.FromJson 관해서 질문있습니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 다름이 아니라 Json-> Object로 변환할 때 JsonUtility.FromJson 해당 함수 이용하는데 딕셔너리 형태로 된 경우는 파싱이 잘 안되는데, 파싱하는 방법을 알려 주실 수 있을까요??ex) { "Result": { "CreateOk": true } }
- 미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part9: MMO 컨텐츠 구현 (DB연동 + 대형 구조 + 라이브 준비)
DB 쓰레드 질문입니다
존 별로 병렬처리를 한다고 했을 때도 DB쓰레드를 만들어야 할까요? 병렬처리를 위함이라면 각 존 쓰레드에서 db까지 처리해도 될거 같아서 질문드립니다.
- 해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part9: MMO 컨텐츠 구현 (DB연동 + 대형 구조 + 라이브 준비)
AccountServer를 클라우드서버 인스턴스에서 돌려보고 싶습니다 ㅠ
루키스님이 바쁘신 것 같아 어떻게든 제 스스로 해결 방법을 찾아보고자 했지만 더이상 어떤식으로 접근을 해야할지 몰라 실마리라도 얻고자 이렇게 질문글을 쓰게 됬습니다. 현 상황은 이렇습니다. 오라클 클라우드 서버에서 인스턴스를 임대받아 우분투 os에서 포트를 열고 AccountServer를 돌려보았습니다. 이후 유니티 로그인창에서 계정생성을 시도했더니 유니티 콘솔창에 에러로그가 나왔습니다.(Cannot conncet to destination host) ------------------------------------------- => 제 프로젝트 쪽에 문제인가 싶어서 제 컴퓨터 내에서 AccountServer를 돌리고 계정생성을 시도하니 콘솔창에 true가 정상적으로 찍힙니다. => 혹시 포트가 제대로 개방이 안됬나 싶어 클라우드 서버에서 돌리는 AccountServer에 ping을 쏘아 주었는데 포트는 열려있다고 나왔습니다.(인터넷에 tcping이란 프로그램으로 핑을 쏘았습니다) => 제가 클라우드 인스턴스에서 사용하는 OS입니다. => 포트 개방을 위해 오라클 클라우드 네트워크 보안 수신 규칙설정에서 아래와 같이 했습니다 7777번포트 열었습니당 => 우분투에서도 아래와 같이 포트 개방하였습니당 => 우분투에서 방화벽은 꺼두었습니다 => 그런데 AccountServer프로젝트 내의 AccountContoller내에 Test함수를 만들어서 실행해보니 이건 잘 작동하는 것 같습니다 ㅠ => 그러나 계정생성 시도는 계속해서 cannot connect to destination host라는 에러로그가 뜨고 있습니다. ㅠㅠ => 제 컴퓨터에서 AccountServer돌리고 GameServer는 오라클 클라우드 인스턴스에 돌린 후, 제 컴퓨터에서 클라이언트를 실행해 접속해보면 잘 되는거보니 역시 포트 개방 문제일가요?ㅠㅠ => 어느 부분을 더 살펴보면 좋을까요?ㅠㅠ