지금 만들고 있는 모드에서, 매 n틱마다 특정 작업을 수행하는 객체가 있는데
이 객체가 여러개 설치가 가능한 상황이다. 그런데, 이 객체들이 어떤 순서로 작동해여 결과론적 동작이 안깨질까?
특히 멀티플레이 할때 유저마다 결과가 달라지면 안되는거 아님?
지금 만들고 있는 모드에서, 매 n틱마다 특정 작업을 수행하는 객체가 있는데
이 객체가 여러개 설치가 가능한 상황이다. 그런데, 이 객체들이 어떤 순서로 작동해여 결과론적 동작이 안깨질까?
특히 멀티플레이 할때 유저마다 결과가 달라지면 안되는거 아님?
뭐 이상한 난수생성기라도 쓰지 않는 이상 기본적인 업데이트 순서는 모두 동일하겠지 여러개의 객체를 순회하면서 뭔가 동작을 하는거라면 find_entities쓰거나 객체들 캐싱해둔 리스트 쓸것 같은데 어느쪽이든 순서는 정해져있을거고
흠... 여러 객체 순회하는거 그냥 구현해도 크게 문제가 없다는거지?
@글쓴 팩붕이(58.227) ㅇㅇ
?? 결과론적 동작을 너가 왜 고려함? 이해 불가네
당연히 모더가 고려해야하는거 아님..? 내 ㅈ대로 구현했다가 멀티플레이에서 sync오류나면 누가 책임져줌?
@ㅇㅇ(211.234) 어차피 모든 유저들이 똑같은 모드를 똑같은 타이밍에 똑같은 조건으로 실행하고 있는데 모더가 그걸 고려할 이유가 전혀 없음. desync는 문제가 생겼을때 생각해도 충분해.
@ㅇㅇ 그럼 가끔 모드 패치노트 보면 멀티플레이 desync 문제를 해결했습니다 이런 문구는 왜있는거임? 시비 거는게 아니라 모드 초보 개발자라 진짜 궁금해서
@ㅇㅇ(211.234) 그게... 모든 실행 조건이 완벽하게 동일하면 desync가 발생하는 것이 불가능하겠지만 현실적으로는 그럴 수가 없거든. 특히 개별 유저의 로컬변수와 GUI 등은 오히려 완벽한 동일성이 있어서는 안되기 때문에 이런데서 desync가 터짐. 그게 아니면 보통은 게임 엔진 수준에서 동기화가 보장되니까 일반적으로 대부분의 요소에서는 모더가 동기화를 고려할 필요는 없어.
@ㅇㅇ gui도 누구한테 보인다 안보인다 차이지 gui에 대한 연산 자체는 자기꺼든 남에꺼든 다 똑같이 하는 구조 아니던가
@이파 나도 그럴거라 생각했는데...