묻고 답해요
156만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[켠김에 출시까지] 유니티 캐주얼 모바일 MMORPG (M2)
MMO 3D 게임 서버의 스킬 판정을 어떻게 하면 좋을까요?
3D MMO 중에서 소수점 단위로 이동하고 모든 방향을 바라볼 수 있는 게임은 스킬 판정을 어떻게 하면 좋을까요?어려운 점은 모든 방향을 볼 수 있는 캐릭가 스킬을 사용하면 스킬 범위는 float 형태로 나와야 한다는 것 인데요.기존 강의에서 배운 맵 좌표는 int로 관리할텐데, 3D 게임은 오브젝트 위치 정보를 float 형태로 관리하기 때문에 이 둘을 동기화 하는 방법을 떠올리는게 어려웠습니다. 루키스님 질의응답과 상상을 통해서 두 가지 방법을 생각해봤습니다.(맵에 높이는 없이 x, y 축만 생각하겠습니다.)첫 번째 방법서버의 맵은 2D 타일 맵(int 좌표)으로 관리하면서 캐릭터는 정밀한 위치(float 좌표)를 가지고 있어, 스킬 히트 판단 시 정밀 판단 로직을 추가한다.아래 그림처럼 회색 캐릭터의 정확한 위치는 캐릭터가 가지고 있으며, 점유하고 있는 셀(분홍색 박스 4개)은 서버 맵에 저장합니다.현재 서버 맵에 (0,0), (1,0), (0,1), (1,1)에는 회색 캐릭터가 (3,2)에는 빨간색 캐릭터가 있습니다. 빨간 캐릭터가 방사형 or 투사체를 발사했을 때 서버는 서버는 서버 맵에서 스킬 효과 범위에 들어갈 것 같은 예상 후보가 있는지 탐색합니다.투사체가 닿는 범위인 (1,0), (2,0), (3,0), (2,1), (3,1) 을 대상으로 예상 후보 탐색예상 후보 셀에 포함된 캐릭터가 있는지 확인하고 해당 캐릭터가 실제 효과 범위에 들어가는지 판단합니다.(1,0) 셀에 회색 캐릭터가 있을 수 있으니 스킬 효과 범위 min < 캐릭터 중심점 기반 히트박스 < 스킬 효과 범위 max 인지 판단두 번째 방법캐릭터가 점유하는 셀을 더 작게 쪼개서 캐릭터 히트 박스나 조이스틱 처럼 살짝 이동할 수도 있고, 전방향 이동에 위화감이 없도록 구현 현업에서는 어떻게 구현하는지 궁금합니다!
-
미해결[켠김에 출시까지] 유니티 캐주얼 모바일 MMORPG (M2)
코드 머지와 관련하여.
안녕하세요.코드가 업데이트되는 부분이 풀버전이 아니고 변경된 부분들이 폴더 단위로 자료가 올라오는것 같습니다. 이에 따라 코드를 병합할때,Merge tool을 사용해야되는 것인지?아니면 동일 폴더별로 복사 갱신을 하는 것인지 궁금하여 질문드립니다.
-
미해결[켠김에 출시까지] 유니티 캐주얼 모바일 MMORPG (M2)
퀘스트 처리 시 궁금한게 있습니다.
서버에서 브로드캐스트 이벤트 발생 시 퀘스트 클리어 확인 후 보상을 지급하고 DB 갱신을 하는 부분까지 이해했습니다. DB쪽에서 보상처리 라던지 퀘스트 상태저장 시 실패할 가능성도 있을 듯한데 만약 실패했다면 서버의 메모리를 이전상태로 롤백해줘야할듯한데 서버 메모리를 이전상태로 변경하려니 코드가 많이 지저분해지는듯한데실패가능성은 없나요?
-
해결됨[켠김에 출시까지] 유니티 캐주얼 모바일 MMORPG (M2)
Nagle Algorithm
Is there a reason why its not switch off in socket? Isnt it a problem with mmo servers and we hold packets on our own?
-
미해결[켠김에 출시까지] 유니티 캐주얼 모바일 MMORPG (M2)
현재 강의를 이용하여 3D 게임을 만들 경우 변경되야 될 사항들에 대해 궁금합니다.
안녕하세요. 루키스님 강의를 열심히 듣고 있는 초보개발자입니다. 현재 강의는 2D기반의 게임인데, 맵 및 몬스터, 캐릭터를 3D 케릭터로 변경되면, 현재 개발하신 코드들에서 어떤 부분들이 변경되는지.. 그리고 변경될 사항들이 많은지 궁금증이 생겨 문의드립니다.
-
미해결[켠김에 출시까지] 유니티 캐주얼 모바일 MMORPG (M2)
M2는 업데이트가 끝난건가요?
안녕하세요! M2 업데이트 끝날 때 몰아서 듣고 싶어서 기다리고 있는데공지사항과 일정 변동?을 보면 업데이트가 끝났다는 뉘앙스로 말씀하셨지만본 강의 커리큘럼을 보면 아직 챕터 이름?이 살아 있어서 업데이트가 끝난건지 업데이트 예정인지 궁금합니다!
-
해결됨[켠김에 출시까지] 유니티 캐주얼 모바일 MMORPG (M2)
Interpolation & Server Tick Frequency
Hey,I have a question server in main loop dont limit execution time, everything happen withouth deltatime only base on JobSerializer Timer. So in the end we dont really know if server is working with 200 ticks per second or 15. Does this approach isnt affecting player objects latency? Does _lastSendTick = System.Environment.TickCount64; is enough to interpolate beetween player last postion and current? static void GameLogicTask() { while (true) { GameLogic.Instance.Update(); Thread.Sleep(0); } }
-
미해결[켠김에 출시까지] 유니티 캐주얼 모바일 MMORPG (M2)
서버에서 디스커넥트되시는분들 JWT 관련 참고하셔요
루키스님이 말씀하신대로, 서버와 클라이언트의 jwt를 맞춰줘야 합니다. 강의자료에는 서버폴더내 config.json 파일에 secretkey가 없기 때문에 "secretKey": "this is my custom secret key for authentication" 이 줄을 추가해서 넣어주시면 잘 작동되실겁니다. 그리고 게임서버 및 어카운트서버 돌리고 클라 접속하면 잘 됩니다. 개발단계에서만 쓰시고 나중에 키는 다른걸로 바꿔야하겟죠
-
미해결[켠김에 출시까지] 유니티 캐주얼 모바일 MMORPG (M2)
aws 와 microsoft azure 중 aws 선택하신 이유가 궁금합니다.
클라우드 서비스로 aws와 microsoft azure 둘중 비쥬얼 스튜디오랑 호환이 잘되있는 microsoft azure도 괜찮은 선택지일수 있을거같은데, 루키스님이 aws 고르신 이유가 궁금합니다. !
-
미해결[켠김에 출시까지] 유니티 캐주얼 모바일 MMORPG (M2)
강의는 끝인건가요?
강의가 더이상 업로드 안되는 것 같은데끝이 난 건가요? 라이브 및 대응도 보고싶은데 너무 아쉽습니다.
-
미해결[켠김에 출시까지] 유니티 캐주얼 모바일 MMORPG (M2)
아이템 강화 테이블 관련
안녕하세요~ 강의 잘 듣고 있습니다 ㅎㅎdb상에서 각 아이템별로 강화수치가 달라질때마다 인스턴스를 따로 두셨던데만약에 장비 아이템이 많으면 천개까지 늘어날텐데 그때마다 +1, +2 .. +10 까지 관리하기에는 너무 많아서이걸 만약에 인스턴스로 관리하지 않고강화를 해서 능력치가 +될 경우 해당 장비에 +된 강화수치를 메모리상에 저장하는 식으로 바꾸면 어떤 문제가 생길지 궁금합니다 ㅎㅎ
-
미해결[켠김에 출시까지] 유니티 캐주얼 모바일 MMORPG (M2)
강의 관련 질문 드립니다.
섹션 6 결제 까지 올라와 있고 그 이후 날짜에는 강의 파일이 없는데 이후에 추가로 올라오나요?
-
미해결[켠김에 출시까지] 유니티 캐주얼 모바일 MMORPG (M2)
리니지1의 이동 질문
한때 오랫동안 리니지를 즐겼던 유저로써 리니지1의 이동은 어떤식으로 구현되었을까요?리니지에서 이동중에 서버렉이 걸리면 케릭터가 찍은 좌표로 클라의 케릭터는 계속 걸어갑니다.렉이걸린시점부터의 클라시점 밖의 NPC나 몬스터는 표시가 안되고 렉이 풀리면 클라 포지션이 렉이 걸린 시점의 포지션으로 순간이동하는 렉이 있었는데요 통신이 안되도 케릭은 일정타이밍까지는 이동이 됩니다.그러타면 서버에서는 도착좌표만 주고 클라에서 보간처리로 이동을 한다는 말이될것같은데그렇게 따지면 클라의 보간처리로 이동한다면 다른 케릭에의해서 길이 막혔을 때 처리가 안될것 같습니다.지금 프로젝트의 구현과 리니지1의 이동 동기화의 차이점도 궁금합니다.
-
미해결[켠김에 출시까지] 유니티 캐주얼 모바일 MMORPG (M2)
버그에대한 썰
현재 프로젝트를 진행하는 과정에서 버그를 어떻게 발견했으며 문제의 코드를 어떻게 추적했고어떠한식으로 수정했다 그래서 느낀점은 이렇다등의 기억에 남는 버그가 있다면 짧게나마 썰을 풀어주시면 그것또한 큰 도움이 될것같아서 제안드립니다 ^^;
-
미해결[켠김에 출시까지] 유니티 캐주얼 모바일 MMORPG (M2)
포탈 프로젝트에 서버 코드에 에러가 뜨네요
포탈 프로젝트에 ELeavType이 없다고 에러가 뜨는데 어떻게 하면 되나요?
-
미해결[켠김에 출시까지] 유니티 캐주얼 모바일 MMORPG (M2)
아이템 수량에 관해서 질문입니다.
DB에서 겹쳐지는 아이템 하나의 컬럼에 수량 1000개를 그대로 저장하고 클라에게 1000개 그대로 보내서 1000개를 50개씩 20개로 쪼게는 부분은 클라딴에서 처리하는 방식은 안되는건가요?
-
미해결[켠김에 출시까지] 유니티 캐주얼 모바일 MMORPG (M2)
퀘스트 관련 질문 드립니다.
안녕하세요. 강의를 보다가 퀘스트 관련해서 몇가지 궁금한 점이 생겨 글을 남깁니다.QuestTask 정보를 string화 해서 DB에 저장하시던데, 저럴 경우 운영적인 측면에서는 이슈가 없을까요? (DB 마이그레이션이라던지)Dialogue의 진행은 클라이언트에서 진행되고 Dialogue가 완료되면 Interaction을 서버로 요청하던데, 이럴 경우 클라에서는 Dialogue가 진행됐지만 서버에서 실패할 수 있는 상황이 생길 것 같은데요. Dialogue 같은 건 원래 클라이언트가 주도적으로 진행을 하나요?일반적인 MMO를 보면 Quest가 완료된 후에 Dialogue가 출력되거나 Npc가 특정 위치로 이동을 하거나 특정 지역으로 Pc가 Teleport를 하는 등 서버에서 동기화를 맞출필요가 있는 일들이 여럿 발생하던데.. 이런 처리는 일반적으로 어떻게 구현 할까요?언제나 좋은 강의 감사드립니다~
-
해결됨[켠김에 출시까지] 유니티 캐주얼 모바일 MMORPG (M2)
스포닝풀 작업하는거 질문드려요
제가 강의를 놓친걸수도 있는데 질문드려서 죄송합니다.스포닝풀을 스크립터블 오브젝트로 관리하는데 (M1 에서는 타일맵에 찍어서 관리 했었던걸로 기억합니다)스크립터블 오브젝트로 Pivot PosX , Pivot PosY 를 어떻게 직관적으로 보고 작업 할수 있나요? 그냥 찍어서 좌표 확인하는건지 아니면 더 편한 방법이 있는건지 궁금해서 질문남겨요
-
해결됨[켠김에 출시까지] 유니티 캐주얼 모바일 MMORPG (M2)
CPU를 과도하게 점유하면서 멈추는 현상
안녕하세요 쓰레드 배분 강의 소스 코드부터 현재 강의까지, 서버가 정상적으로 동작하지 않는 현상이 있어 확인 요청드립니다.DBThreadJob 메서드에서 _executeQueue가 비어 있을 때 루프가 무한히 반복되면서 CPU를 과도하게 점유하는 문제가 있는 것 같습니다. 저는 macOS에서 서버를 실행 중인데, Windows와의 CPU 스케줄링 차이로 인해 발생하는 문제로 추측됩니다. 확인해주시면 감사하겠습니다!
-
해결됨[켠김에 출시까지] 유니티 캐주얼 모바일 MMORPG (M2)
protobuf 자동화 관련되서 질문 드립니다
protocol.proto를 수정한 후 패킷 자동화를 돌렸는데 Protocol.cs가 수정되지 않았습니다.혹시 GameServerPacketManager.cs 가 먼저 수정되고 Protocol.cs가 이후에 수정되면서 에러가 발생하여 문제가 생기는 걸까요?