도심에 빈 타일이 많은 이유는 무엇입니까?

Aug 21 2020

내 도심에 빈 타일이 생기는 이유는 무엇입니까?

교외는 집으로 가득 차 있지만 OpenTTD는 더 많은 건물을 짓기 위해 도심의 빈 땅을 사용하는 데 신경 쓰지 않는 것 같습니다. 왜?

약 80 년 (게임 내 시간)을 기다렸지 만 빈 타일은 아직 사용되지 않았습니다.

물 타일을 올려서 더 많은 토지를 매립하면 새로운 건물이 지어 질 것이지만 OpenTTD는 새로운 땅에 일부 타일을 지어지지 않은 채로 남겨 둘 것입니다.

답변

4 aphid Aug 21 2020 at 16:18

'건물 숨기기'가 켜져있는 것 같습니다. 일부 건물 (공원, 분수 등)에는 기초가 전혀 없습니다. 이들 중 일부는 포장 도로를 나타내지 만 전부는 아닙니다. 빈 타일을 쿼리하여 실제로 비어 있는지 확인 했습니까 (공원뿐만 아니라)? 그렇다면 계속 진행하십시오.

무슨 일이 일어나고 있는지 이해하려면 게임의 주택 배치 알고리즘에 대한 더 자세한 이해가 필요합니다 (fn. 참조 GrowTownInTile).

이 게임은 반복 할 때마다 인접한 타일을 무작위로 선택하여 마을의 길을 따라가는 '걷기'기능을 실행합니다. 마을 이름 바로 아래에있는 마을의 씨앗 타일에서 시작합니다. 선택한 타일이 이미 건물이나 도로에 의해 점유 된 경우 도로를 따라 탐색합니다.

이 기능은 각 교차로에서 어디로 가야할지 무작위로 선택하고, 각 타일이 걸어 갈 때마다 현재 도로 타일 옆에 추가 무작위 타일을 시도하여 집을 지을 것입니다. 그 자체로는 되돌릴 수 없습니다. 버전 1.9 부터는 대각선 타일 (모퉁이에 집을 지음)도 확인합니다.

당신이 기록한 빈 공간 중 일부는 도로에 인접하지 않습니다. 따라서 집 배치 알고리즘은 그것들을 찾지 못하고 비어있게됩니다. 때로는 마을이 만든 도로와 인접하지 않은 공간을 볼 수 있습니다. 이것은 일반적으로 2x1 또는 2x2 건물이 그러한 타일을 차지하기 때문에 발생하지만 게임은 타일을 채우기 위해 그러한 건물을 명시 적으로 선택하지 않고 우연의 일치로 인해 발생합니다.

위치를 찾지 않고 오랫동안 걸어 다니거나 (검색을 시도하는 총 시간은 마을의 크기에 따라 다르며, 더 긴 마을은 더 오래 탐험 할 것입니다) 막 다른 골목에 도달하면 중지 (실패)하고 70 틱에서 다시 실행하십시오. 이것이 최대 성장 속도이기 때문에 가끔씩 지을 장소를 찾지 못하면 큰 도시의 성장 속도에 훨씬 더 큰 영향을 미치며, 대도시의 경우 실패율이 50 % 감소하면 30 일에 한 번씩 성장하는 마을의 경우 실패율이 50 %이면 성장 속도가 약 3 % 만 감소합니다.

여기서 게임의 마을 성장 알고리즘을 실험 해보 십시오 . 여기 내 실험 중 하나의 결과가 있습니다. 나는 잠시 동안 마을을 운영했습니다 (이는 openttd 알고리즘의 정말 정확한 모델, 1.9 이전)

무브먼트의 무작위 적 특성으로 인해 알고리즘이 자체적으로 루프를 실행하고 도로 옆에있는 타운 지점의 중심에 가까운 지점이 있음에도 불구하고 집을 배치 할 지점을 찾지 못하는 이유를 확인하십시오.

따라서 교차로가 많은 마을은 배치 알고리즘이 취하는 임의의 경로가 이러한 빈 공간을 놓치기 때문에 채우기에 오랜 시간이 걸리는 도로 옆에 결국 죽은 공간이 생깁니다. 다음은 또 다른 (더 극단적 인) 예입니다.

320 번의 시도로이 마을은 18 개의 건물을지었습니다. 모든 교차로와 막 다른 골목이 없으면 훨씬 더 빠르게 성장할 것입니다.

이를 방지하기 위해 도로 시스템에 교차로와 루프를 줄이십시오. 최적의 마을 성장은 루프 (원으로 움직이는 방법)가 전혀없는 갈래 나무 또는 나선형 패턴으로 건축하여 이루어집니다. 이후

_grow_town_result = 10 + t->cache.num_houses * 1 / 9;

(참고, 이것은 2x2 및 3x3 그리드 레이아웃 용이며 다른 레이아웃은 훨씬 더 오래 검색 할 수 있습니다). 우리의 나선은 중앙에서 각 타일에 대해 최소 9 개의 사용 가능한 건물 타일이 있어야합니다. 각각의 나선 팔이 도로 타일 당 약 2 개의 타일을 얻음에 따라 나선은 마을이 계속 성장하려면 최소 5 개의 팔이 필요합니다.

또한 OpenTTD City 규모 감소 및 타운에 자금이 지원되는 동안 새로운 건물에 자금을 지원하는 혜택이 있습니까?에 대한 나의 답변을 참조하십시오 . .