이 매뉴얼에서는 OpenTTD 내부에서 도시의 회사에 대한 평판이나 역 등급, 차량 속력, 도시 성장 속도, 화물 생산량 등의 수치가 어떻게 계산되는지를 알려드릴 것입니다.
즉, 다시 말해서 이러한 수치를 올리거나 내리기 위해선 어떻게 해야하는 지에 대한 정보를 얻을 수 있습니다.
항목 | 설명 | 만점 기준 | 점수 |
---|---|---|---|
총계 | 1000점 | ||
차량 | 회사가 보유하고 있는 차량의 수입니다. (차량=버스+트럭+전차+기차+선박+항공기) | 120대 이상 | 100점 |
역 | 회사가 소유한 역의 수입니다. 역의 개수는 역의 이름을 기준으로 셉니다. | 80개소 이상 | 100점 |
최소 이익 | 연식이 2년 이상인 차량의 수익 중 최솟값 | 10000 이상 | 100점 |
최소 수입 | 지난 3년 동안의 분기별(=3개월) 수익 중에서 최솟값을 뜻합니다. | 50000 이상 | 50점 |
최대 수입 | 지난 3년 동안의 분기별(=3개월) 수익 중에서 최댓값을 뜻합니다. | 100000 이상 | 100점 |
수송량 | 지난해에 수송한 화물의 양 | 40000 이상 | 400점 |
화물 | 지난 분기에 수송한 화물의 종류 수 | 8종류 이상 | 50점 |
재정 | 현재 보유하고 있는 금액 | 10000000 이상 | 50점 |
대출 | 현재 갚지 않은 대출 금액 | 0 | 50점 |
등급 | 직위 |
---|---|
0 ~ 127 | 엔지니어 |
128 ~ 255 | 기사 |
256 ~ 383 | 수송 조정자 |
384 ~ 511 | 노선 관리자 |
512 ~ 639 | 임원 |
640 ~ 767 | 최고 경영자 |
768 ~ 895 | 사장 |
896 ~ 959 | 회장 |
960 ~ 1000 | 타이쿤! |
등급 | 직위 |
---|---|
0 ~ 319 | 초보자 |
320 ~ 447 | 사업가 |
448 ~ 575 | 기업가 |
576 ~ 703 | 자본가 |
704 ~ 831 | 권력자 |
832 ~ 959 | 거물 |
960 ~ 1000 | 금세기의 타이쿤! |
이 문단에서는 각 역에서 매겨지는 화물의 등급을 계산하는 방법에 대하여 서술합니다. 모든 계산은 화물별로 따로 계산됩니다.
요소 | 조건 | 점수 | 비중 |
---|---|---|---|
역에 마지막으로 진입한 열차의 최고 속력 (최대 255km/h) | 85km/h(52mph) 이상 | (속력(km/h) - 85)/4 | 0~17% |
역에 열차가 진입한 이후 지난 시간 | 2년 | 10 | 4% |
1년 | 20 | 8% | |
0년 | 33 | 13% | |
마지막으로 화물을 적재한 이후 지난 시간. 단, 마지막으로 다녀간 차량이 선박인 경우 "조건"을 4배하여 검사함. (열차가 화물을 싣는 중인데 화물이 없으면, 화물이 아무때나 적재되고 있는 것으로 간주됨) |
30 ~ 52.5일 | 25 | 10% |
15 ~ 30일 | 50 | 20% | |
7.5 ~ 15일 | 95 | 37% | |
7.5일 미만 | 130 | 51% | |
역에 대기하고 있는 화물의 양 | 1500단위 초과 | -90 | -35% |
1001 ~ 1500단위 | -35 | -14% | |
601~1000단위 | 0 | 0% | |
301 ~ 600단위 | 10 | 4% | |
101~300단위 | 30 | 12% | |
100단위 이하 | 40 | 16% | |
역이 속한 도시에 회사 소유주 동상이 세워져있는지 여부 | 세워진 경우 | 26 | 10% |
소규모 광고 진행 | 도시 중심부에서 10칸 이내의 역 | +64 | +25% |
중간 규모 광고 진행 | 도시 중심부에서 15칸 이내의 역 | +112 | +44% |
대규모 광고 진행 | 도시 중심부에서 20칸 이내의 역 | +160 | +63% |
자동차/전차 사고 | 사고 지점에서 22칸 이내의 역 | -160 | -63% |
열차 사고 | 사고 지점에서 30칸 이내의 역 | -160 | -63% |
알림: 정확한 계산 방식에 대해서는 (원본 소스)/src/station_cmd.cpp 파일 내의 UpdateStationRating() 함수를 확인하십시오.
알림: 역의 화물 등급이 50%보다 낮으면 역에 쌓여있는 화물이 점점 없어지기 시작합니다.
한 계산 주기, 즉 매 2.5일마다 산업시설은 각 화물별로 최대 2개의 역에만 화물을 옮겨다 놓습니다. 만약 한 화물 종류에 대해서 똑같이 최대 등급 값을 가진 역이 2개 이상 존재하는 경우, 어떤 역이 화물을 받을지는 내부적으로 순서를 매깁니다.
만약 화물을 받을 역이 하나 뿐이라면, 역에 적재되는 화물의 양은 (생산량) × (역의 화물 등급, 단위: %)을 소숫점 첫째 자리에서 반올림한 값이 됩니다.
만약 화물을 받을 역이 두 개라면 계산이 조금 더 복잡해집니다.
먼저, 향후 지역 계산을 위해 역 2의 화물 등급을 반으로 나눕니다. 그러면 역 1에 적재될 수 있는 최대 화물량은 다음과 같이 계산합니다:
따라서 만약 두 역의 화물 등급이 비슷하다면, 역 1에 최대 생산량의 \( \frac{2}{3} \) 정도가 배정됩니다. 화물 등급의 차이가 커질 수록 이 비율은 늘어납니다. 그 결과값을 가지고 역이 하나인 경우의 계산 방식을 이용하여 실제 화물 적재량을 결정한 뒤, 역 1에 적재합니다. 만약 역 1이 적재될 수 있는 최대 화물량을 받지 못했다면 그 부분은 산업시설의 수송량에 전혀 반영되지 않습니다. 남은 최대 생산량을 갖고 역 2에 "역이 하나 일 때의 계산 방식"을 이용하여 화물을 적재합니다.
회사에 대한 지역 당국의 평가에 따라 플레이어가 할 수 있는 행동에 제약이 걸리기도 합니다.
기본적으로 지역 당국의 평가는 500점에서 시작해서 회사의 행동에 따라 그 수치가 변하게 됩니다.
도시의 영향권 안에 있는 200칸 이상의 칸에 나무를 심으면 지역 당국의 평가가 올라갑니다. 하지만 나무를 심는 행위로는 최소 평가 점수인 -1000점에서 220점까지밖에는 올릴 수 없습니다.
만약 지역 당국의 평가가 보통 이하라면 30칸 규모의 나무를 심으면 역 하나를 짓는 데 필요한 지역 당국 평가 점수를 얻을 수 있습니다.
단, 지역 당국의 평가가 매우 좋음 이상이라면 나무 심기는 더 이상 효과가 없습니다.
점수 | 등급 |
---|---|
-1000 ~ -400 | 형편없음 |
-399 ~ -200 | 매우 나쁨 |
-199 ~ 0 | 나쁨 |
0 ~ 200 | 보통 |
201 ~ 400 | 좋음 |
401 ~ 600 | 매우 좋음 |
601 ~ 800 | 훌륭함 |
801 ~ 1000 | 매우 훌륭함 |
플레이어의 행동 | 필요한 등급 점수 | 등급에 미치는 영향 | ||
---|---|---|---|---|
신경 안씀 | 신경씀 | 싫어함 | ||
역 건설 | -200 이상 | (없음) | ||
도로 '끝쪽' 조각을 제거 | 16 | 64 | 112 | -18 (최소 -100까지) |
도로 '안쪽' 조각을 제거 | 16 | 64 | 112 | -50 (최소 -100까지) |
도시의 터널/다리를 제거 | 144 | 208 | 400 | -250 (0 미만으로 안 내려감) |
건물 파괴(기본 건물 한정. NewGRF으로 추가되는 건물은 이 값을 1000 이상의 값으로 설정할 수 있어서 아예 건물을 파괴할 수 없게 해놓기도 합니다.) | 40 ~ 300 | -40 ~ -300 | ||
빈 공간에 나무 심기 | (없음) | +7 (최대 220까지) | ||
나무가 있는 칸 파괴 | (없음) | -35 | ||
뇌물 주기 성공시 | (없음) | +200 (최대 800까지) | ||
뇌물 주기 실패시 | (없음) | -50 으로 강제설정 |
회사에 대한 지역 당국의 평가는 매월마다 다음과 같이 바뀝니다.
(eg)
한 회사의 평가 점수가 -300(매우 나쁨)이고, 2개의 운영 중인 역과 하나의 방치된 역이 있다고 가정하면
그 상태에서 가만히 있을 경우 \( 5 + 2 \times 12 - 15 = 14점 \)이 매월 오르게 됩니다.
\( {\left( -200 - (-300) 점 \right)} / { \left(14 점/개월 \right) } = 8개월 \) 뒤에 다른 역을 건설할 수 있게 될 것입니다.
도시 평판에 대한 코드는 town.h, town_cmd.c, tree_cmd.c, road_cmd.c에 있습니다.
산업 시설의 생산량이 어떻게 결정되는 지를 알려드립니다. 아래의 표는 부드러운 경제 변화 옵션을 켠 경우에 해당하니 유의해주시기 바랍니다.
생산량은 항상 8이나 9의 배수입니다. (숲 같은 경우에는 10의 배수)
원자재 산업시설 | 생산하는 화물 | 초기 생산량 |
---|---|---|
탄광 | 석탄 | 56 ~ 176 |
숲 | 목재 | 48 ~ 152 |
유전 | 석유 | 56 ~ 176 |
농장 | 곡물, 가축 | 40 ~ 112 |
구리 광산 | 구리 광석 | 56 ~ 112 |
유정 | 석유 | 48 ~ 152 |
철 광산 | 철광석 | 40 ~ 112 |
은행 | 귀금속 | 24 ~ 64 |
금광 | 금 | 24 ~ 80 |
다이아몬드 광산 | 다이아몬드 | 24 ~ 80 |
과일 농장 | 과일 | 40 ~ 112 |
고무 농장 | 고무 | 40 ~ 112 |
상수도 | 물 | 48 ~ 152 |
농장 | 옥수수 | 40 ~ 128 |
제재소 | 목재 | 180 또는 225 (주변에 나무가 있을 때) |
솜사탕 숲 | 솜사탕 | 48 ~ 152 |
건전지 농장 | 건전지 | 40 ~ 128 |
콜라 우물 | 콜라 | 48 ~ 136 |
플라스틱 분수 | 플라스틱 | 56 ~ 160 |
거품 제조 공장 | 거품 | 48 ~ 152 |
토피 채취장 | 토피 | 40 ~ 112 |
설탕 광산 | 설탕 | 40 ~ 128 |
일부 산업 시설의 생산량은 매월마다 임의로 바뀌게 됩니다.
256x256 칸의 지도에서는 한 달에 (산업 시설 딱 하나가) 한 번만 변할 수 있습니다. 개발 버전(r14332)에서 "일일 생산량 변화"가 도입된 이후부터는 이 수치가 지도 크기에 비례하여 증가하게 되었습니다.
부드러운 경제 변화 옵션을 켠 상황이라면, 산업 시설은 역에 한 달에 8, 9번 또는 10번(생산량이 높은 '숲' 한정, 400t 이상) 화물을 적재해줍니다.
생산량은 6가지 생산 등급인 가장 낮음, 낮음, 보통(새 게임 시작시 또는 새 산업시설 건설시), 높음, 2배 높음, 가장 높음 중에 하나를 따르게 되는데,
생산량은 50% 감소되거나(생산량이 절반으로 감소) 100% 증가되는(생산량이 두 배로 증가) 식으로 등급 사이를 왔다갔다합니다.
간단하게 설명하기 위해서 256x256 크기의 지도에서 플레이를 하고 있다고 가정해보겠습니다. (1개월당 최대 1번의 변화 = 최대 1개의 산업 시설 생산량만 바뀜)
화물을 실어 나르면 수익을 받게 되는데, 이 수익은 실어 나른 화물의 양, 화물의 수송단가, 수송 거리, 수송 시간에 따라 결정됩니다.
화물 | 단위 | 이른 수송 시간 (일) | 늦은 수송 시간 (일) | 초기 화물 수송단가 |
---|---|---|---|---|
승객 | · | 즉시 | 24 | 39 |
귀금속 | 자루 | 1 | 32 | 91 |
가축 | 마리 | 4 | 18 | 53 |
곡물 | 톤 | 4 | 40 | 58 |
상품 | 상자 | 5 | 28 | 75 |
석탄 | 톤 | 7 | 없음 | 72 |
철 | 톤 | 7 | 없음 | 69 |
철 광석 | 톤 | 9 | 없음 | 62 |
목재 | 톤 | 15 | 없음 | 61 |
석유 | 킬로리터 | 25 | 없음 | 54 |
우편 | 자루 | 20 | 90 | 55 |
아한대 기후에만 있는 화물 | ||||
밀 | 톤 | 4 | 40 | 58 |
종이 | 톤 | 7 | 60 | 66 |
금 | 자루 | 10 | 40 | 71 |
식품 | 톤 | 즉시 | 30 | 69 |
아열대 기후에만 있는 화물 | ||||
고무 | 킬로리터 | 2 | 20 | 54 |
과일 | 톤 | 즉시 | 15 | 51 |
옥수수 | 톤 | 4 | 40 | 53 |
열대 목재 | 톤 | 15 | 없음 | 97 |
구리 광석 | 톤 | 12 | 없음 | 59 |
물 | 킬로리터 | 20 | 80 | 57 |
다이아몬드 | 자루 | 10 | 없음 | 71 |
장난감나라에만 있는 화물 | ||||
설탕 | 톤 | 20 | 없음 | 54 |
장난감 | · | 25 | 없음 | 68 |
건전지 | · | 2 | 30 | 53 |
사탕 | 톤 | 8 | 40 | 75 |
태피 | 톤 | 14 | 60 | 58 |
콜라 | 킬로리터 | 5 | 75 | 59 |
솜사탕 | 톤 | 10 | 25 | 61 |
거품 | · | 20 | 80 | 62 |
플라스틱 | 킬로리터 | 30 | 없음 | 54 |
탄산음료 | · | 30 | 50 | 76 |
초기 화물 수송단가는 100단위의 화물을 1칸 수송할 때 얻는 수익입니다. 인플레이션 설정이 켜져있으면 게임이 진행됨에 따라 수송단가는 올라가게 됩니다.
수송이 늦어질 경우의 불이익:
내부적으로 OpenTTD의 속력은 기본적으로 시간당 마일(mph)/1.6값과 같은 유사km/h를 사용합니다. 유사km/h는 km/h와 거의 비슷하지만 정확하게 같지는 않은 단위입니다.
유사km/h를 (실제로 우리가 쓰는 정확한) km/h로 변환하려면 1.00584를 곱하면 됩니다. (\( 1 \; km/h = 1.00584 \; 유사km/h \))
또, 유사km/h를 mph로 변환하려면 1.6을 곱하면 됩니다. (\( 1 \; mph = 1.6 \; 유사km/h \))
속력을 계산하기 위해 필요한 게임 맵의 한 칸 길이는 약 664 유사km로 계산합니다. 정확하게는 664.216 유사km = 668 km = 415 마일입니다. 이는 다음 사실을 기반으로 계산한 것입니다.
(위 이야기는 "자동차 가속 모델" 설정을 '현실적'으로 설정한 경우에는 적용되지 않습니다.)
곡률 | 최대 속력(km/h) | 곡률 | 최대 속력(mph) | ||||
---|---|---|---|---|---|---|---|
일반선로 | 모노레일 | 자기부상 | 일반선로 | 모노레일 | 자기부상 | ||
0 (90˚ 꺾기) | 61 | 91 | 121 | 0 | 37 | 56 | 75 |
1 | 88 | 132 | 176 | 1 | 54 | 82 | 109 |
2 | 111 | 166 | 22 | 2 | 68 | 103 | 137 |
3 | 132 | 198 | 264 | 3 | 82 | 123 | 164 |
4 | 151 | 226 | 301 | 4 | 93 | 140 | 187 |
5 | 168 | 252 | 336 | 5 | 104 | 156 | 208 |
6 | 183 | 274 | 365 | 6 | 113 | 170 | 226 |
7 | 196 | 294 | 392 | 7 | 121 | 182 | 243 |
8 | 207 | 310 | 413 | 8 | 128 | 192 | 256 |
9 | 216 | 324 | 432 | 9 | 134 | 201 | 268 |
10 | 223 | 334 | 445 | 10 | 138 | 207 | 276 |
11 | 228 | 342 | 456 | 11 | 141 | 212 | 283 |
12+ | 231 | 346 | 461 | 12+ | 143 | 214 | 286 |
위 표에서 "곡률"이란, 각 선로 꺾임 사이에 들어오는 평균 객차의 개수를 말합니다. 하지만 급커브(곡률이 0 또는 1)의 경우에는 평균을 내지 않습니다.
관련 코드는 aircraft_cmd.c, roadveh_cmd.c, ship_cmd.c, train_cmd.c, vehicle.c에 있습니다.
OpenTTD 1.4.2 기준으로, 자기부상열차가 아닌 열차의 가속도는
출력(power
, 단위: 마력), 최대 견인력(max_te
, 단위: kN), 열차의 전체 중량(total_weight
, 단위: t), 열차의 편성량수(number_of_parts
),
기차의 첫 번째 기관차가 받는 공기 저항값(air_drag_coefficient
)(NewGRF에서 설정한 값으로, 기본적으로 min(192, max(1,floor(2048/max_speed)))
이며, 속력이 빠른 열차는 더욱 공기역학을 고려하여 설계되었음을 의미합니다.),
오르막 언덕 위에 있는 열차 부분(기관차나 객차)의 합계 중량(weight_on_upslope
), 내리막 언덕 위에 있는 열차 부분(기관차나 객차)의 합계 중량(weight_on_downslope
),
경사도 설정값(slope_steepness
)(게임 설정에서 1~10으로 설정 가능, 기본값은 3),
현재 속력(current_speed
, 단위: km/h)을 갖고 다음과 같이 계산합니다:
force = min((max_te * 1000), floor((power * 746) / (current_speed * 5/18))) [단위: N]
slope_force = weight_on_upslope * slope_steepness * 100 - weight_on_downslope * slope_steepness * 100 [단위: N]
axle_friction = total_weight * 10 [단위: N]
rolling_friction = total_weight * 15 * (1 + floor(current_speed / 512)) [단위: N]
air_drag_coefficient = 14 * floor(air_drag_value * 1 + number_of_parts * 3/20) / 1000
air_drag = floor(air_drag_coefficient * current_speed^2) [단위: N]
acceleration = (force - (slope_force + axle_friction + rolling_friction + air_drag)) / (total_weight * 4) [단위: 0.5틱당 1/256 km/h]
air_drag_coefficient
값은 열차의 일부분이 터널 안에 한 량이라도 들어있으면 2배로 적용됩니다.
위와 같은 조건이 주어졌을 때, 열차의 순항 속도, 즉 동일한 조건이 계속해서 유지될 때 열차가 달리게 되는 속력은 다음과 같이 계산됩니다. [rolling_friction
은 상수로 간주하고 (즉 속력이 항상 512km/h 이하로 유지됨), force
와 air_drag
값의 버림은 계산에서 무시합니다.]
p = (slope_force + axle_friction + rolling_friction) / air_drag_coefficient
q = (-power * 746 * 18/5) / air_drag_coefficient
C = (27/2*q + ((27/2*q)^2 + 27*p^3)^(1/2))^(1/3)
equilibrium = min(max_speed, p/C - C/3, max(0, max_te * 1000 / air_drag_coefficient - p)^(1/2))
댓글