inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

평타 스킬

충돌처리 질문

574

gamecoding

작성한 질문수 9

0

안녕하세요 강사님 강사님 강의를 듣고 IOCP서버와 유니티 클라이언트로 3D rpg게임을 제작하고 있습니다.

충돌처리 같은경우 유니티에서 제공하는 boxcollider를 써서 충돌처리를 구현하는 방법을 사용해도 되나요?

c# C# unity

답변 2

0

gamecoding

아 이해했습니다 감사합니다 !

0

Rookiss

그러면 서버에서는 알 길이 없으니, 동기화에 애를 먹을 수 있습니다.
보통 3d mmo 게임에선 충돌이 없고,
그나마 충돌이 있다면 리니지 같은 타일 방식에서나 가능합니다.

0

gamecoding

맵의 정보를

예를 들어 2차원 행렬로 0 : 빈 공간 1 : 바닥 2 : 장애물 3 : 플레이어 4 : 몬스터 와같은 형태로 저장해 두고

0 0 0 0 0 0 0

1 1 1 1 1 1 0

1 1 3 1 1 2 1

0 1 1 1 1 1 0

맵의 형태를 서버에서 저장해두고

플레이어가 서버에 들어왔을때 플레이어의 좌표를(player.pos = map(1, 2); // map[1][2]의 좌표를 뱉어주는 함수)

저장해두고 플레이어가 이동 패킷을 보내게 되면 if(map[2][2] == 1) 이면 이동을 시켜주고 그외의 경우 이동을 안시켜주는 형식

2d게임 구현했을때 저런 2차원 배열 형태로 맵의 정보를 저장해두고 충돌처리를 구현했었는데 3d게임에서도 이러한 방법으로 충돌처리 구현을 하나요?

1

Rookiss

리니지 류의 게임들은 유심히 보면 3d 게임임에도 '칸' 단위로 플레이어가 움직입니다.
그러나 2d게임처럼 정말 2차원 배열 형태의 그리드를 관리하는 것이죠.

테라 같은 3d 게임은 유닛 간 충돌이 없습니다.
그러니 스킬 판정 등은 주기적으로 수학 계산을 통해서 하는 것이죠.

MessagePack

0

87

1

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

0

51

1

Part7 Part9 질문이 있습니다.

0

75

1

.

0

117

1

.

0

107

2

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

0

92

1

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

0

122

2

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

0

85

2

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

0

84

2

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

0

162

2

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

0

278

2

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

0

207

3

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

0

150

2

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

0

153

2

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

0

323

4

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

1

190

2

맵 이동 방식

0

134

0

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

0

91

1

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

0

204

2

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

0

161

1

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

0

458

1

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

1

204

1

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

0

337

2

PushAfter 사용 질문

0

193

1