'턴 수행을 그대로 리플레이 가능하게 하고자' 하는 목적으로 장수 턴 실행 시 random을 다음과 같이 적용
random_seed := hash(game_seed | generalID | year | month)
로 하고 이 값의 '31비트를 자른 값'을 mt_srand에 입력하는 방안.
game_seed는 내부에 숨겨져 보이지 않으므로, 게임 이용자는 랜덤 결과를 예측할 수 없음.
'턴 수행을 그대로 리플레이 가능하게 하고자' 하는 목적으로 장수 턴 실행 시 random을 다음과 같이 적용
random_seed := hash(game_seed | generalID | year | month)
로 하고 이 값의 '31비트를 자른 값'을 mt_srand에 입력하는 방안.
game_seed는 내부에 숨겨져 보이지 않으므로, 게임 이용자는 랜덤 결과를 예측할 수 없음.
sequence값이 장수의 '턴 입력', '부대 탑승', '수비 켬끔', '내무부 값 변경', '인사부 값 변경', '설문 조사 입력', '전체 메시지 입력' 등에 따라 증가하도록 하면 됨. (턴 갱신은 제외)
이 경우 운영자가 예측할 수 있는 값은 많아봐야 최대 1분일 것으로 예상함.
문제라면 운영자가 결과값을 예측가능하다는 문제가 있는데...
random_seed에 sequence값을 추가로 넣고,
sequence값이 장수의 '턴 입력', '부대 탑승', '수비 켬끔', '내무부 값 변경', '인사부 값 변경', '설문 조사 입력', '전체 메시지 입력' 등에 따라 증가하도록 하면 됨. (턴 갱신은 제외)
이 경우 운영자가 예측할 수 있는 값은 많아봐야 최대 1분일 것으로 예상함.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
'턴 수행을 그대로 리플레이 가능하게 하고자' 하는 목적으로 장수 턴 실행 시 random을 다음과 같이 적용
random_seed := hash(game_seed | generalID | year | month)
로 하고 이 값의 '31비트를 자른 값'을 mt_srand에 입력하는 방안.
game_seed는 내부에 숨겨져 보이지 않으므로, 게임 이용자는 랜덤 결과를 예측할 수 없음.
mt_srand와 mt_rand의 설명에 따르자면,
PHP 버전에 따라 seed가 같더라도 mt_rand의 결과값이 ''항상 같다고 생각하지는 말라'' 라고 적혀있음.
별도의 HASH_DRBG 비슷한 물건의 세팅이 필요할지도.
문제라면 운영자가 결과값을 예측가능하다는 문제가 있는데...
random_seed에 sequence값을 추가로 넣고,
sequence값이 장수의 '턴 입력', '부대 탑승', '수비 켬끔', '내무부 값 변경', '인사부 값 변경', '설문 조사 입력', '전체 메시지 입력' 등에 따라 증가하도록 하면 됨. (턴 갱신은 제외)
이 경우 운영자가 예측할 수 있는 값은 많아봐야 최대 1분일 것으로 예상함.
2차로 미룸
#208 에서 모듈 구현 완료.
운영자 문제는 어차피 작정하면 못 이기는데 굳이 상관이 있나 하는 생각.
그냥 충분한 랜덤을 보장하되, 추후 replayer 같은걸 만들 때 에러가 잘 발생하지 않는 수준에서 마저 만들면 될 것으로.