
GitHub - OpenRCT2/OpenRCT2: An open source re-implementation of RollerCoaster Tycoon 2 🎢
An open source re-implementation of RollerCoaster Tycoon 2 🎢 - OpenRCT2/OpenRCT2
github.com
롤러코스터 타이쿤(이하 롤코타)은 크리스소어 한명이 단독으로 어셈블리어로 만든 게임이다.
출시 될 때부터 버그도 거의 없던 걸로 들었다. 가히 천재적인 개발자이다.
그리고 시간이 흐르면서 OpenRCT2라는 기존의 롤코타2를 리버스 엔지니어링해서 만든 오픈소스 기반의 프로그램이 나온다.
이걸 있으면 다양한 동적 해상도 변경, 인게임 속도 n배 변화, 치트 등 게임 플레이에 유용한 도구들을 사용해서 게임을 더 재미있게 플레이할 수 있다.
자 이제 본론으로 들어가서, 내가 처음 나무위키와 롤코타DC글에서 보기로는 놀이기구에는 적정가격이 존재한다고 한다.
시간이 흐르면서 업데이트된 내용도 있고 더 추가할 사항이 있기 때문에 여기에 글을 남긴다.
Guest의 적정 비용 판단

이건 손님(Guest)파일에 놀이기구를 탈지를 결정하는 함수이다.
여기에 지불할 가격에 대한 코드가 있다.

여기서 ridePrice는 현재 ride(놀이기구)의 가격이고 value(가치, ride.value)는 해당 ride에 대해 나름의 공식에 의해 계산된 가치이다. (곧 기술할 예정)
손님들은 value(가치)를 기준으로 이 기구가 저렴한지 비싼지를 생각한다.
코드를 순차적으로 읽으면,
· 공원 입장료를 받는순간 value는 1/4 토막이 난다. (25%가 된다)
· 만일 value보다 2배 비싸고 내눈앞에 ride가 있으면 행복추정값(*1)을 내리고
놀이기구의 인기도를 내린다 (*2)
그리고 이 놀이기구는 타지 않는다
· 혹은 value보다 2배이하면 저렴하다고 생각한다. (하지만 게임시스템상 무언가 특별히 베네핏을 주진 않는다)
그럼 이 가치를 기준으로
value/2 보다 크고 value*2 이하이면 적정 가격인 것이다.
Value 산출
이제 이 value(혹은 ride.value)를 산출하는 공식을 보자.

RideRatings.cpp 파일의 1100라인 정도에 보면 저런 함수가 있고 조금 내려 보면 바로 공식이 보인다.

실제로 계산해보면 이전에 갤러리에 올라온 글과 같다. (각 수치에 100을 곱한다음 32768을 나눔)
여기선 코드에 충실하게 적어본다면,
각 수치(a)와 놀이기구 자체(b)의 계수값을 곱하고 32(2의 5승, 2^5)를 곱한다. 그리고 2^15를 나눈다.
좀더 풀어쓰면, 각 놀이기구는 고유의 계수(RatingsMultipliers)가 있다.
우든 롤러코스터(이하 롤코)는 아래와 같고

기가 롤코는 이렇다.

왼쪽부터 흥미도(exitement), 격렬도(intensity), 멀미도(nausea)이다. (이하 흥격멀)
그리고 아래 이미지를 보자.

이건 이몸께서 만든 킹왕짱 우든롤코다. 아무나 만들수 있는 숫자가 아니지. 허허헣
저기서 흥미도 8.20은 단순히 화면표시값이고 (엑셀 셀서식처럼) 내부적으로 820이란 숫자로 다루어진다.
저 공식에 따라 흥미도만 계산해보면,

이렇게 된다. (아직 학창시절 감이 살아 있으면 2^10=1024를 나누면 된다는 걸 알 수 있다.

컴퓨터에선 정수끼리의 나눗셈 계산시 소수점 값은 버린다.
나머지도 계산해보면.. 격렬도는 30, 멀미도는 4이다.
ride.value는 41 + 30 + 4 = 75이다. 콩그레츄레이션, 거의 다 왔다!
놀이기구 연식에 따른 감가를 해야 한다.

위 표는 엑셀 장부와 같다. 1열부터 지나간 월(months), 곱할 수, 나눌 수, 더할 수이다.

예를들어 5개월 미만이면,
value에 1을 곱하고 1을 나누고 30을 더한다.
만일 6년 (48개월) (게임에선 8개월이 1년이다)이면
value에 3을 곱하면 4를 나누고 0을 더한다. 즉, (3/4)를 곱한다. (75%)


마지막으로 똑같은 놀이기구가 있으면 75%가 된다.
만일 value가 75이면 37 ~ 150 사이로 그걸 10으로 나눈 3.7 ~ 15.0이 적정가이다. (게임 내부의 money64라는 값을 GBP로 환산)
이 수치의 화폐단위는 파운드(£)로 크리스소어가 영국/스코틀랜드 개발자라서 default가 된것으로 보인다.

한화로 3,700원 ~ 15,000원.
만약 5개월 미만이면 105로 책정되어 5,200원~20,000원 (인게임 최고가)이다!
13개월 미만일 경우 85로 4,200원 ~ 17,000원이다.
(지금 보니까 10배 차이나는 것 같은데 나중에 오류를 보면 내용 업데이트 예정..)
'기타' 카테고리의 다른 글
| 결제 도메인 간이 조사 (0) | 2024.04.28 |
|---|---|
| 2024. 2~3월의 작은 기록 (1) | 2024.03.29 |
| 일자별 집중한 시간을 기록해 봤다 feat 주 69시간 (0) | 2024.02.12 |
| 블로그, 월간 방문수 1000회 돌파 (0) | 2024.01.25 |
| 블로그 대공사!! 티스토리 스킨 변경 (0) | 2024.01.22 |
hi hello... World >< 가장 아름다운 하나의 해답이 존재한다
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!