inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part7: MMO 컨텐츠 구현 (Unity + C# 서버 연동 기초)

소멸 이펙트

몬스터 데미지 처리 방식 질문입니다.

530

ji980207

작성한 질문수 11

0

이번 프로젝트에서는 화살에 대한 충돌 정보를 콜라이더를 통해서 하는게 아닌 매니저에서 List에 담긴 적 오브젝트에 위치 정보와 화살에 대한 위치 정보를 비교해서 해당 위치에 적 오브젝트가 존재할 경우 데미지를 처리하는 방식으로 로직을 구현하신 이유가 궁금해서 질문 남깁니다.

  1. 현재 프로젝트에서 충돌 판정을 위해 List에 등록된 모든 object들의 위치 정보를 대조하는 방식으로 구현이 되어있는데, 대부분에 2D 온라인 게임들은 이런 방식으로 로직을 구성하는 건가요? 진행중인 프로젝트와 유사한 게임으로 예시를 들어주신 바람의나라, 리니지와 같은 게임 한정으로 이렇게 로직을 구성하는 건가요?

  2. 개인적인 생각인데, List로 적 오브젝트를 관리하게 될 경우 적 오브젝트 수가 늘어나 생성,파괴,충돌, 이동이 수시로 일어날 경우 각 정보를 클라이언트들에게 뿌려주기 위해서 서버에 과부화가 있을 거 같은데, 이를 보완하는 방식이 있는지 혹은 List 말고 다른 방식이 존재하는지 궁금합니다

     

    항상 좋은 강의 감사합니다.

c# unity C#

답변 1

0

Rookiss

이번 프로젝트에서는 화살에 대한 충돌 정보를 콜라이더를 통해서 하는게 아닌 매니저에서 List에 담긴 적 오브젝트에 위치 정보와 화살에 대한 위치 정보를 비교해서 해당 위치에 적 오브젝트가 존재할 경우 데미지를 처리하는 방식으로 로직을 구현하신 이유가 궁금해서 질문 남깁니다.

-> 이 부분을 최적화해서 그리드 위에 오브젝트가 있는지만 확인하면 O(1)에 가능합니다.
당연히 리스트 모든 유닛을 검사하는 방식은 롤 같이 10인 유저 게임이 아니라면 바람직하지 않고
이런 부분은 스스로 생각하셔야 고치시면 됩니다. (늘 강조하지만, 코딩은 암기가 아니라 응용입니다!:D)

MessagePack

0

90

1

본인 플레이어 이동 관련 질문

0

56

1

Part7 Part9 질문이 있습니다.

0

77

1

.

0

119

1

.

0

110

2

게임 로직 루프에서 게임 틱 누락으로 인한 높은 CPU 사용 문제

0

95

1

타일 팔레트 깔았는데도 안돼요

0

132

2

2D로 그냥 만들어도 되나요?

0

89

2

지난 강의와 이어지는게 맞을까요?

0

90

2

순환참조 문제로 인해 발생하는 문제는 없을까요?

0

162

2

유니티 클라와 C++서버연동

0

280

2

멀티플레이 테스트 환경 관련 질문입니다

0

211

3

강의 후반부에 순서 동기화를 위해 잡큐를 사용 안 한 부분 질문입니다!

0

151

2

코드 관련한 몇 가지 질문입니다!

0

155

2

3d 프로젝트 이동 동기화 관련

0

330

4

파트 7 스트레스 테스트 질문 드립니다.

1

192

2

맵 이동 방식

0

137

0

맵 이동 관련해서 질문드립니다.

0

92

1

안녕하세요 도저히 알 수 없는 오류가 나와서 질문드려요,,

0

206

2

안녕하세요. 일전에 질문 드린 포폴 준비 관련 질문의 추가 질문입니다!

0

161

1

[팁] 2024년 기준 버전 이슈?

0

458

1

SendBuffer.cs 삭제 후 대체 되는 부분의 장단점?

1

205

1

지금 강의의 유니티 클라를 IOCP 서버와 연동하는 것

0

338

2

PushAfter 사용 질문

0

193

1