디시인사이드 갤러리

갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

[일반] 개발자 노트 2024년 3월

N갤러(182.226) 2024.04.05 21:09:18
조회 264 추천 5 댓글 2
														

NIMBY Rails 개발자 블로그 2024-03

2024년 4월 1일


역세권 중첩


지난 게시물에서 암시했듯이, 새로운 승객 수요 시스템은 처음부터 역세권 중첩을 지원하는 방향으로 개발되고 있었습니다. 저는 이 방향으로 가기고 결정했습니다. 보로노이(Voronoi) 도형 퍼즐은 더 이상 존재하지 않고, 이제 역세권은 서로 융합됩니다:


7cf3c028e2f206a26d81f6e740877d6d1261



이는 현재 역이 아닌 맵의 지점을 기반으로 하는 1.12 승객 생성 시스템과 완벽하게 일치합니다. 승객은 인구 밀도를 기반으로 지도의 지점에 생성되고 역의 존재와 무관하게 동일한 방식으로 목적지를 선택합니다. 이것은 또한 역 선호도가 없으며 출발지와 목적지 모두에서 각 위치 내 범위에 있는 역 중 하나를 선택해야 한다는 것을 의미합니다. 현재 이 선택은 완전히 무작위이며, 여기에 출발지와 목적지 지점은 두 개의 역이 선택되면 즉시 폐기됩니다. 앞으로 이것을 더 흥미롭게 만드는 것을 고려하겠지만, 현재로서는 1.12 설계에 많은 (새로운) 복잡성이 있습니다.


스크린샷에 뭔가 다른 것이 있을지도 모릅니다... 누가 알 수 있을까요?



역 만족도 비활성화


복잡성의 측면에서, 역 만족도는 1.12에서 비활성회됩니다. 이 시스템은 항상 혼란스럽고 어설픈 상태로 개선될 차례를 기다리고 있습니다. 명백한 선택은 승객의 역 선택을 알리기 위해 사용하는 것이지만, 역 만족도가 무엇인지에 대한 정의 자체는 잘 정당화되지 않으며 승객 선택에 더 강하게 영향을 미치는 다른 기준이 있습니다. 승객 생성 역 선택은 (현재로서는) 무작위이기 때문에 역 색스(sax)는 현재로서는 자리가 없습니다. 승객 만족도는 여전히 활성화되어 있으며 모든 승객 목록에서 볼 수 있습니다.



역 글로벌 승객 통계


새로운 기능을 개발할 때 테스트하고 개선하는 데 도움이 되는 디버그 UI가 필요할 때가 많습니다. 이러한 테스트 UI 중 일부는 결국 일반 UI의 일부가 될 만큼 유용합니다. 1.12의 경우 기본적으로 특정 지점 또는 지역을 오가는 네트워크 전체 수요에 대한 실시간 스냅샷을 찍기 승객 흐름을 조사하는 방법이 필수적이었습니다. 그리고 완벽하게 정의된 지역이란 무엇입니까? 역세권입니다. 따라서 이제 역에는 지도의 모든 다른 역과 열차를 검사할 수 있는 탭이 있으며 이러한 객체의 주어진 승객이 역과 일치하면 탭에 표시될 수 있습니다. 이것이 바로 출발지 및 도착지 모드와 함께 인/아웃(In/Out) 실시간 모드가 표시하는 것입니다:


7ff3c028e2f206a26d81f6e746847d6d4d



하지만 때로는 실시간 스냅샷뿐만 아니라 시간이 지남에 따라 이 정보를 검사해야 할 때도 있습니다. 이런 종류의 데이터를 집계하는 것은 CPU와 메모리를 소모하는 일이지만, 단순화된 버전을 구현할 수 있으며, 이 또한 지원됩니다:

7ef3c028e2f206a26d81f6e442817668e7



이 새로운 탭은 3월의 나머지 기능을 평가하는 데 매우 중요한 위치 및 시간 기반 승객 생성을 매우 눈에 띄게 합니다.



출발 시간, 도착 시간 및 거리 가중치에 대한 별도의 곡선이 있는 다중 수요 곡선


2월에는 인구 밀도에 기반한 편향(bias)이 없고 공정한 승객 생성 시스템이 구현되어 이를 달성하는 데 필요한 데이터의 규모를 고려할 때 많은 문제를 극복했습니다. 3월에는 승객 모델링의 다음 두 가지 주요 시스템인 시간과 거리가 재설계되고 다시 구현되었습니다.


시간 가중 수요 곡선



79f3c028e2f206a26d81f6e44785746afd



시간 기반 수요는 첫 번째 버전부터 게임의 특징이었습니다. 1.12는 시간당 하나씩 168개의 값으로 친숙하고 동일한 시스템으로 요일별로 가중된 수요를 계속 지원합니다.



78f3c028e2f206a26d81f6e44488746c7f



새로운 기능으로서 이제 출발지 수요와 도착지 수요를 분리합니다. 이는 특정 지역이 더 많은 승객(더 높은 출발 수요)를 발생시키는 하루 중 어떤 시간대와 어떤 지역이 그것을 향해 더 많은 승객을 끌어드리는 다른 시간대(더 높은 도착 수요)를 갖는 것이 가능하다는 것을 의미합니다.


거리 가중 도착 수요 곡선


7bf3c028e2f206a26d81f6ed41897c6c


시간 곡선 외에도 거리 가중 수요도 지원됩니다. 그러나 3개의 임이의 거리 제한에 대해 3개의 하드코딩된 "평탄한" 수요 버킷(bucket)을 사용했던 이전 버전과 달리 1.12는 부드러운 곡선을 지원합니다. 현재 이 곡선은 거리 0에서 100%, 어느 거리에서는 최소 수요의 긴 꼬리(long tail)가 있는 지수적으로 감소하는 것이지만, 대신 100% 수요를 0이 아닌 다른 곳에 집중시킬 수 있도록 가우시안(Gaussian) 모양으로 실험하여 지역에 초점을 맞춘 저장과 같은 것을 더 잘 구현할 수 있을 것입니다.


여러 개의 사용자 정의 곡선


앞서 언급한 모든 곡선은 사용자 정의이며 스크린샷에서 볼 수 있듯이 게임 내 편집기가 제공됩니다. 여기에는 인구다발 지도에서 사용되는 기본 곡선이 포함되며, 삭제할 수는 없지만 원하는 경우 이름을 변경하고 완전히 수정할 수 있습니다. 내장된 인구를 완전히 비활성화하려면 모든 시간 요구 사항을 0으로 설정할 수도 있습니다.


또한 여러 수요 곡선을 정의할 수 있게 되었습니다. 새로운 곡선이 만들어지면 원점, 수요 곡선, 거리 곡선의 전체집합을 다시 정의할 수 있습니다. 이는 인구 밀도 CDF 위에 추가적인 수준의 CDF로 구현되었습니다.


그러나 여러 개의 수요 곡선이 무엇에 유용할 수 있을까요?



사용자 정의 POI


사용자 정의 인구 변경 POI에 유용할 수 있습니다! 1.12에서는 사용자가 지도의 한 지점에 인구를 추가하는 특별한 건물을 만든 다음 수요 곡선을 할당하여 해당 지점의 인구가 시간이 지남에 따라 어떻게 변화하고 그 지점의 거리가 목적지로 간주되는지 제어할 수 있습니다. 현재 POI는 특수 형식의 텍스트 레이블일 뿐이기 때문에 현재 1.12 빌드에서는 볼 것이 많지 않습니다.


7af3c028e2f206a26d81f6e44086766efe



완성된 시스템은 이러한 점을 만들기 위한 전용 모드를 갖추고 있으며, 모집단 값 및 수요 곡선 설정을 위한 전용 UI를 사용하여 색상과 이름을 정상적으로 지정할 수 있습니다.



다 같이 묶어보면


이 모든 기능들이 함께 작동하는 예시는 시스템을 더 명확하게 만들 것입니다. 다음 영상(자세한 내용을 보려면 전체 화면을 보고 싶어할 수도 있는)에서는 비디오 효과를 확대하기 위해 "경기장(Stadium)"이라는 사용자 정의 수요 곡선과 일부 과장된 모집단 값을 사용하여 POI가 생성되었습니다. 곡선은 편집기에 표시됩니다. 목적지(빨간색) 및 출발지(초록색) 가중치에 대한 뚜렷한 곡선이 있습니다. 이는 역이 가질 수 있는 수요를 모델링하여 처음에는 매우 인기 있는 목적지가 되었지만 몇 시간 후에는 매우 인기 있는 승객 생성기가 되었습니다.


곡선 편집기 아래에 POI 레이블이 있고 POI를 포함하는 영역이 있는 역의 인/아웃 탭이 있습니다(이 POI를 포함하는 역이 2개 있으므로 완전히 혼잡해질 것입니다). 탭은 먼저 목적지(Destination) 모드로 설정되어 있으며, 이곳에서 경로를 종료하려는 네트워크의 모든 승객을 보여줍니다. 어느 시점에서 출발지(Origin) 모드로 변경하여 출발하려는 모든 승객과 이미 출발하고 목적지로 가는 중인 다른 모든 승객을 보여줍니다.




추천 비추천

5

고정닉 0

0

댓글 영역

전체 댓글 0
등록순정렬 기준선택
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 말머리 제목 글쓴이 작성일 조회 추천
2860 설문 경제관념 부족해서 돈 막 쓸 것 같은 스타는? 운영자 24/05/13 - -
421 공지 방장 호출용 글 [8] 병풍과노루갤로그로 이동합니다. 21.05.28 783 3
115 공지 말머리에 '창작마당' 카테고리가 추가되었습니다. 병풍과노루갤로그로 이동합니다. 21.02.18 398 0
6 공지 매니저 호출용 게시글 [7] 병풍과노루갤로그로 이동합니다. 21.02.02 847 1
3 공지 NIMBY RAILS 게임 미니 갤러리입니다. 병풍과노루갤로그로 이동합니다. 21.02.02 795 1
1599 일반 열차 가속도 조정 ITX-청춘갤로그로 이동합니다. 05.17 6 0
1598 질문 역이 쭉쭉 늘어나는건 왜이런거임 [1] N갤러(58.237) 05.14 48 0
1597 일반 살지말지 고민하는중인데 [2] N갤러(14.33) 05.11 72 0
1596 일반 순환선이나 지선 통계 하나로 보는법 있나 [2] N갤러(180.229) 05.05 112 0
1595 일반 혹시 게임 중간에 모드 추가 ㄱㄴ? [1] ㅅㅇㅅㅅㄱㅌ갤로그로 이동합니다. 04.18 151 0
1593 일반 선로 최고속도 [1] N갤러(119.202) 04.07 180 0
일반 개발자 노트 2024년 3월 [2] N갤러(182.226) 04.05 264 5
1591 일반 pax pathfind bias 이거 뭐임? [1] N갤러(118.42) 04.04 191 0
1590 일반 이 겜 환승시스템 ㅈ같네 [5] N갤러(118.129) 03.29 296 0
1589 일반 이 게임 살까말까 [4] N갤러(211.60) 03.25 161 0
1588 일반 뉴빈데 레일 건설할 때 비용 차이에 대해 궁금함 [3] N갤러(121.182) 03.21 141 0
1587 스크린 1270시간 님붕이 스크린샷 [1] N갤러(39.119) 03.20 268 0
1586 일반 님비레일 217시간 맵 공유 [1] N갤러(218.239) 03.09 431 6
1585 일반 개발자 노트 2024년 2월 Deadlock갤로그로 이동합니다. 03.09 146 0
1584 일반 다릌 노선으로 이어서 열차 운영하고 싶은데 어케함 [1] ㅇㅇ갤로그로 이동합니다. 03.09 182 0
1583 질문 얘 왜이럼? N갤러(14.58) 03.09 129 0
1582 소식 뭐야 개발 블로그 올라왔었네 [2] ㅇㅇ(106.101) 03.04 200 0
1581 질문 쌍섬식 역 어케 만듦? [1] N갤러(221.153) 03.03 210 0
1580 일반 공유 왜 업데이트 안됨? N갤러(125.142) 03.03 70 0
1579 일반 만들만한 노선 추천 좀 [4] ㅇㅇ(1.234) 02.21 226 0
1578 일반 차량기지 만드려하는데 [4] cohgon07갤로그로 이동합니다. 02.20 199 0
1577 스크린 신림선 전구간 현실고증 제작 완료 ㅇㅇ갤로그로 이동합니다. 02.19 253 3
1575 일반 시간표 질문 [2] N갤러(106.101) 02.19 164 0
1574 일반 신분당선 + 11호선 이렇게 됐으면 수요 어떠냐? [11] 대나무숲7갤로그로 이동합니다. 02.19 282 0
1573 일반 님비레일 892시간 유저 맵 공유함 N갤러(1.234) 02.08 563 14
1572 일반 평일 10시 기준에 순수익 확인해보니.... N갤러(58.143) 02.07 159 0
1571 일반 지금 돌리고 있는 노선들 N갤러(58.143) 02.07 211 1
1570 일반 새로운 도시철도(군산, 익산, 전주, 순천, 여수, 충주 등등 [2] N갤러(58.143) 02.07 357 0
1569 일반 뉴비 복선질문 [2] N갤러(219.255) 02.06 219 0
1568 일반 뭐가 문제일까 성시스동호인갤로그로 이동합니다. 02.06 119 0
1567 일반 9호선 전구간 현실고증 제작 [2] ㅇㅇ갤로그로 이동합니다. 02.04 386 3
1565 일반 꼬리물기 원천 차단하는 방법 N갤러(211.177) 02.04 176 0
1564 일반 창작마당에 올라오는 열차들 어케 만드는 거임? [1] N갤러(112.152) 02.01 145 0
1563 일반 아래 글 쓴 갤러인데 [5] N갤러(106.101) 01.29 246 0
1562 일반 이게 뭔 소리임? N갤러(112.152) 01.29 122 0
1561 일반 뱀눈,싱글암뱀눈,큐브 [1] km1192갤로그로 이동합니다. 01.29 103 0
1560 일반 시간표 질문 [2] ㅇㅇ갤로그로 이동합니다. 01.24 145 0
1559 일반 간만에 하는데 재밌네 [1] N갤러(122.128) 01.21 216 3
1558 일반 맵 데이터 수정도 가능함? [1] Zintp_찐팁갤로그로 이동합니다. 01.17 170 0
1557 질문 한국 시간대 관련 [1] ㅇㅇ(211.114) 01.17 150 0
1556 일반 날카로운 레일 [1] N갤러(112.152) 01.16 250 0
1555 일반 배차간격 관리하기 빡세네 N갤러(211.177) 01.16 146 0
1554 일반 버그 발생 [2] N갤러(211.177) 01.14 105 0
1553 일반 일본에도 만들라하는데 [1] N갤러(112.152) 01.13 153 0
1552 TIP 원하는 색상 적용하는 법 [2] ㅇㅇ(112.214) 01.12 182 4
1551 일반 승하차량 계산 질문 [3] N갤러(125.185) 01.11 187 0
1550 일반 개발자 노트 2023년 12월 [2] Deadlock갤로그로 이동합니다. 01.11 218 0
1549 일반 오늘 시작한 뉴비인데 [1] N갤러(211.177) 01.10 121 0
1547 일반 개인적으로 추가됐음 하는 기능 [6] N갤러(125.179) 01.06 535 14
1546 일반 님비레일을 다른나라에다가도 만들고싶다면 ㅇㅇ(1.234) 01.05 185 0
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2