오브젝트 생성에 관련해 질문이 있습니다.
예를 들어, 지금처럼 화살을 생성할 때, 서버는 화살이 자신의 Owner를 알지만, 클라에서는 자신의 Owner를 모르는데, 만약 알아야 한다면
1. 지금처럼 클라의 ObjectManager - Add() 함수에서 생성할 수 있도록 ObjectInfo에 OwnerId를 추가
2. 클라의 Packethandler는 playerId를 알 수 있으니 Packethandler에서 오브젝트를 생성
3. 아예 클라에서 Owner를 알 필요없게 코드를 수정
어느 방법을 추천하시나요?
현재 오브젝트 생성을 Onwer 오브젝트가 가지고 있는 스크립트에서 생성을 하던 방식이어서 여쭤봅니다.
Answer 1
0
안녕하세요, 인프런 AI 인턴입니다.
님의 질문에 대해서는 제공된 정보와 직접적으로 연관된 내용이 없습니다. 따라서 프로그래밍 원칙과 일반적인 게임 개발 관행에 기반하여 의견을 말씀드립니다.
오브젝트의 오너를 클라이언트가 알 필요가 있는지 여부는 게임의 설계와 요구 사항에 따라 다릅니다. 따라서 가장 적합한 방법을 선택하려면 각 옵션의 장단점을 고려해야 합니다.
ObjectManager - Add() 함수에서 ObjectInfo에 OwnerId를 추가하는 방법:
- 장점: 직관적이고 간단하게 오너 정보를 오브젝트에 추가할 수 있습니다.
- 단점: 모든 오브젝트 생성 요청이 이 방법을 통해야 하므로 유연성이 떨어질 수 있습니다.
- 장점: 직관적이고 간단하게 오너 정보를 오브젝트에 추가할 수 있습니다.
Packethandler에서 오브젝트를 생성하는 방법:
- 장점: 네트워크 메시지 처리 부분에서 직접 오브젝트를 생성하므로, 네트워킹과 관련된 정보(예: playerId)를 바로 활용할 수 있습니다.
- 단점: Packethandler의 복잡성이 증가하고, 오브젝트 생성 로직이 네트워킹 코드와 밀접하게 결합되어, 코드 관리가 어려워질 수 있습니다.
- 장점: 네트워크 메시지 처리 부분에서 직접 오브젝트를 생성하므로, 네트워킹과 관련된 정보(예: playerId)를 바로 활용할 수 있습니다.
클라에서 Owner를 알 필요없게 코드를 수정하는 방법:
- 장점: 클라이언트의 로직을 간소화할 수 있어, 더 단순하고 관리하기 쉬운 코드 구조를 가질 수 있습니다.
- 단점: 게임의 특성에 따라 오너의 정보가 필수적일 수 있으며, 이 정보 없이는 게임 로직을 정확히 구현하기 어려울 수 있습니다.
- 장점: 클라이언트의 로직을 간소화할 수 있어, 더 단순하고 관리하기 쉬운 코드 구조를 가질 수 있습니다.
결과적으로, 가장 중요한 것은 게임의 특정 요구와 상황에 맞는 방법을 선택하는 것입니다. 각 방법의 장단점을 충분히 고려하고, 게임의 설계 및 개발 과정에서 유연하게 적용 가능한 방법을 찾는 것이 좋습니다. 추가적으로, 팀 내에서 이러한 결정에 대해 논의하고, 가능한 코드 리뷰를 통해 여러 방법을 시도해보며 가장 적합한 해결책을 찾는 것도 중요합니다.
MessagePack
0
84
1
본인 플레이어 이동 관련 질문
0
49
1
Part7 Part9 질문이 있습니다.
0
71
1
.
0
116
1
.
0
105
2
게임 로직 루프에서 게임 틱 누락으로 인한 높은 CPU 사용 문제
0
91
1
타일 팔레트 깔았는데도 안돼요
0
115
2
2D로 그냥 만들어도 되나요?
0
81
2
지난 강의와 이어지는게 맞을까요?
0
80
2
순환참조 문제로 인해 발생하는 문제는 없을까요?
0
162
2
유니티 클라와 C++서버연동
0
277
2
멀티플레이 테스트 환경 관련 질문입니다
0
207
3
강의 후반부에 순서 동기화를 위해 잡큐를 사용 안 한 부분 질문입니다!
0
150
2
코드 관련한 몇 가지 질문입니다!
0
153
2
3d 프로젝트 이동 동기화 관련
0
321
4
파트 7 스트레스 테스트 질문 드립니다.
1
189
2
맵 이동 방식
0
133
0
맵 이동 관련해서 질문드립니다.
0
91
1
안녕하세요 도저히 알 수 없는 오류가 나와서 질문드려요,,
0
201
2
안녕하세요. 일전에 질문 드린 포폴 준비 관련 질문의 추가 질문입니다!
0
159
1
[팁] 2024년 기준 버전 이슈?
0
453
1
SendBuffer.cs 삭제 후 대체 되는 부분의 장단점?
1
200
1
지금 강의의 유니티 클라를 IOCP 서버와 연동하는 것
0
333
2
PushAfter 사용 질문
0
189
1

