디시인사이드 갤러리

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

갤러리 본문 영역

[개발 정보] 개발일지 #170 성능 및 기술적 이슈

ㅇㅇ(211.229) 2020.02.20 22:19:25
조회 4443 추천 14 댓글 18
														

섬세한 균형


스텔라리스는 복잡한 코드의 집합입니다. 마치 미카도나 젠가와 같은 복잡한 게임처럼요. 모든 부분이 각기 다른 부분과 연결되어 있습니다. 무언가를 추가하면 연결이 더 늘어납니다. 조심스럽게 추가한다면 소수의 연결이 늘어나고, 급하게 추가하면 더 많은 연결이 발생합니다. 이는 계획되지 않은 특징(다시 말해, 버그)을 나타냅니다. 또한 실제 게임 내에서 작동하는 것을 보면, 새로운, 그리고 예기치 못한 방향으로 작동해 더 많은 계획되지 않은 기능을 만들어내기도 합니다.


일단 우리가 현재 상황을 깨닫고 난 이후엔, 우린 더욱 조심하기 시작했습니다. 어쩌면 너무 조심스러웠을 수도 있습니다. 너무 많은 곳을 너무 자주 체크하며, 일어나서는 안 될 상황이 정말로 일어나지 않게 만드는 일에요. 지금은 안되고, 나중에도 안되고, 절대로 안되고.


그래서 당신이 계획되지 않은 기능을 제거했지만, 그래도 게임은 어...조심스럽습니다. 그러니까, 느리단 소리죠.


그래서 여러분은 몇몇 확인 기능을 제거했습니다. 은하계 전체를 순환시킬 필요가 없음을 깨닫고, 단지 작은 하나의 행성만을 순환시키는 겁니다. 그리고 한걸음 더 나아가, '음, 글쎄. 3주에 한번만 확인하는건 어때? 그리고 계산에 필요한 확인들은 바뀌기 전 까지 이쪽에 저장해두자고'라는 생각을 해 보세요.


이제 게임은 더이상 '조심스럽지' 않습니다. 그리고 이제, 다시 계획되지 않은 기능의 영역으로 돌아가보죠. 그러나 캐싱 과정이 서로 다른 시간에 다른 곳에서 발생한다면, 이는 결과의 변동을 불러옵니다.(개발자가 커피를 마시기 전에 부탁받은 것과 커피를 마신 후 부탁받은 과제의 결과물의 차이와 같이요)


약간의 다른 결과는 곧 OOS(역주:서비스 장애를 말하는 것 같음)가 넘쳐난다는 소리입니다! 클라이언트와 서버는 0.0001의 차이를 가지고 있으며, 시간이 지나면 명령은 서버에는 입력되지만 클라이언트엔 입력되지 않습니다.


그래서 당신은 '스마트'한 알고리즘을 제거하고, 정확한 알고리즘으로 대체합니다. 이전의 두 단계에서 얻어낸 결과물을 잃게 되고, 또다른 버그가 생겨납니다. 어쩌면 말이죠. 이걸 끝없이 반복합니다.


하지만 끝없이 반복되는 건 제 아침 일상으로 충분합니다! 다른 부분에 대해 이야기해보죠.



성능


스텔라리스의 팬들은 C++ 프로그래머와도 같습니다. 성능은 항상 그들의 머릿속을 멤돌고 있죠. 공정히 말해서, 우리도 최근에 이 부분을 신경써서 적용하고 있습니다. 우리도 이게 끝이 아니라는 걸 압니다. 특히 후반부 게임과, 더 큰 은하계에선 말이죠. 그 점을 염두에 두고, 우리는 평소에 하던 것 보다 더 많은 싱경을 써서 성능을 향상시키고 있습니다. 우린 무엇이 가장 많은 계산을 필요로 하는지 살펴봤으며, 모두가 알고 있듯...


viewimage.php?id=3ea9d52ae9d32aaf7d&no=24b0d769e1d32ca73ded83fa11d0283177940c12fe472eea84be02aa9a6012b2febb0273e06bc0260f5209f7d774a4626fc6b7a99c1daef120b1f85c6610d39c26cd3cac



POP


POP이 스텔라리스에서 가장 많은 계산을 요구하는 이유는 여러가지가 있으나, 중요한 것은 후반부 게임에는 너무 많은 POP이 존재한다는 것입니다. 너무 너무 너무 너무 많죠. 그리고 POP은 많은 것을 합니다! 매일마다 어떤 직업에서 자신의 성능을 최대로 발휘할 수 있을지를 행성의 모든 이들과 경쟁하며 확안하고, 윤리관을 가지는 것을 확인해야 합니다. 파벌에 가담하는 건 얼마나 행복한 일인지요. 여기선 얼마나, 저기선 또 얼마나 행복할까요?

이 모든 것들이 모디파이어 계산을 유발시킵니다. 이전 개발 일지를 기억한다면, 스텔라리스에서 POP보다 많은 것은 모디파이어 뿐만이라는 것을 알고 있을 것입니다. 그리고 모디파이어는 상호간에 의존관계를 만들어냅니다. 그걸 모두 계산하는 것은 실타래를 잡아당겨 스웨터 전체를 끌고오는 것과 같습니다.



좋아, 그럼 정말로 뭐가 변했는가?


우선, 우린 '새로운 일자리가 언제 추가될지 모르니까 직업 분배는 매일 해야 한다'라는 생각이 너무 고집 센 생각이었다는 것을 인정하겠습니다. 우리는 이 부분을 재검토했으며, 이제 일자리는 수요에 의해 이루어질 것입니다. 이제 더 적은 반복이 수행될 것입니다.

우리는 또한 하나 이상의 노예가 있는지, 퇴폐적인지, 종족 수준에서 확인할 것이 있는지를 찾기 위해 제국의 모든 POP을 체크하는 몇가지 트리거를 찾아냈습니다. 이러한 부분을 POP단위가 아닌 종족 단위로 체크하도록 몇가지 트리거를 만들었습니다. 같은 방식으로, 함대를 확인하기 위해 모든 함선을 체크하는 트리거도 있었으므로 함대를 찾아낼 수 있는 트리거를 추가했습니다.

또한 POP이 윤리관을 바꿀 수 있는지, 파벌에 들어갈 수 있는지를 확인하는 새로운 방식을 연구했습니다.

마지막으로, 우리는 더 많은 멀티스레드를 사용할 수 있는 방법을 찾았습니다.

이야기는 충분합니다! 결과는? 흠, 만일 사진이 천개의 단어보다 더 나은 것을 전달한다면, 여기에 3만개의 단어보다 더 나은 결과가 있습니다.(결과는 https://youtu.be/9SFE89Wj8go 에서)


이 영상은 아래 세이브(개발일지 하단에 있음)를 실행시, 2.5.1과 2.6을 비교한 영상입니다. 내 업무용 컴퓨터(Intel Core7-7900X @ 3.30Ghz, 10 cores and 20 threads, and AMD R9 Fury)에서 실행한 결과입니다. 반드시 같은 결과가 나오진 않으며, 정확한 성능의 차이는 컴퓨터마다 다를 것이며, 정확한 상황은 여러분의 세이브 상황마다 달라지겠지만요. 평균적으로 15~30%의 성능 향상이 나타났습니다.

이 세이브는 POP 계산 성능 향상을 확인하는데 이상적입니다.


평균적으로 어느정도나? 어떻게 알았는가?

우리는 매일 밤마다 밤새도록 게임을 합니다. 그리고 아침에, 게임이 얼마나 진행되었는지 확인합니다. 또한 얼마나 많은 오류가 생겼는지, 최종 상태가 어떤지, 얼마나 많은 OOS가 나타났는지, 그리고 테이블과 그래프에 다양한 색으로 정리해서 나타냅니다. 그리고 신스를 지우고 나면, 그들은 영혼과 그 외에 대한 성가신 질문이 사라집니다.



결론

비록 우리가 성능을 염두에 두며 성능을 합리적으로 유지하기 위해 최선을 다 했으나, 우리는 이 문제에 대해 깊이 파고들 기회를 가져서 기쁩니다. 이 변화가 우리에게 주었던 만큼의 기쁨을 여러분에게 주길 바라며, 여러분의 피드백을 기다리겠습니다.

다음주에는 여러분 모두가 기다리던 것에 대한 또다른 개발일지가 나올 것입니다. 더 많은 오리너구리요!


추신

우리가 사용한 저장 파일은 커뮤니티 중 하나인 성능 스레드에서 가져왔습니다. 그러나 정확히 어디서 얻었는지는 모릅니다. 만일 당신이 이 세이브를 알아본다면, 혹은 당신의 것이라면, 우리가 당신에게 감사를 표할 수 있도록 알려주셨으면 합니다.


https://forum.paradoxplaza.com/forum/index.php?threads/stellaris-dev-diary-170-performance-and-other-technical-issues.1335134/&utm_source=launch-steam&utm_medium=launcher&utm_content=post&utm_campaign=fede_stpc_20200220_for_dd

자동등록방지

추천 비추천

14

고정닉 9

0

원본 첨부파일 1

댓글 영역

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

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 말머리 제목 글쓴이 작성일 조회 추천
3004 설문 소속 연예인 논란에 잘 대응하지 못하는 것 같은 소속사는? 운영자 25/04/21 - -
3002 AD 작혼X페스나 헤븐즈필 콜라보 개시! 운영자 25/04/22 - -
216489 공지 신문고 [2] ㅇㅇ(211.234) 25.03.29 237 0
215507 공지 스텔라리스 마이너 갤러리 공지사항 [1] ROMANIANOPOLIIS갤로그로 이동합니다. 25.03.15 308 0
192605 공지 뉴비를 위한 별갤럼들의 DLC 평가 [15] 바보판타지갤로그로 이동합니다. 24.05.08 14309 18
192820 공지 입문자에게 DLC 구독을 추천하는 이유 [2] ROMANIANOPOLIIS갤로그로 이동합니다. 24.05.08 10154 8
189719 공지 제국이름 등 명명시 주의할점 [1] ROMANIANOPOLIIS갤로그로 이동합니다. 24.03.29 5926 2
3004 공지 #####스텔라리스 정보&연재글 모음##### [22] 슐레딩거갤로그로 이동합니다. 19.05.14 153971 52
129437 공지 개인 모드 번역하는 방법 [11] 무시무시한누렁이갤로그로 이동합니다. 22.05.17 9962 23
117541 공지 [공지] 패러독스 사에 버그신고, 번역 오류 피드백 방법 [5] 슐레딩거갤로그로 이동합니다. 22.02.13 4732 7
192420 공지 [공지] 앞으로의 갤러리 운영 방향 [8] 슐레딩거갤로그로 이동합니다. 24.05.06 2770 14
218251 일반 연구협약이나 무역협정 영향이 큰가? ㅁㅁ(118.235) 15:55 4 0
218250 일반 ㅈㄴ 영롱하네.. 준지성체(210.217) 15:32 27 0
218249 일반 갤에서 합생 빌드 찾아보다 유토피아 백수빌드를 봤는데 준지성체(1.231) 15:29 30 0
218248 일반 이종간 호환성 어디서 끄냐 [4] 준지성체(211.211) 15:12 40 0
218247 일반 메이드 모드 해본 게이들아 기계틀딱 언제 미션줌? ㅇㅇ(223.39) 15:00 20 0
218246 일반 여태 1항성기지 1조선소로 게임했네 ㅇㅇ(175.119) 14:43 36 0
218245 일반 뉴비인데 기사단이 무슨 빌드임?? [4] 쵸코코로네갤로그로 이동합니다. 14:38 66 0
218244 일반 몇년만에복귀하는데 AI가 존나이상한데? [3] 준지성체(220.74) 13:54 75 0
218243 일반 뉴빈데 번통 고유 이벤트 있음? [2] 준지성체(210.217) 13:47 41 0
218242 일반 500시간 뉴빈데 각성몰락, 종반위기 한 번도 못봄 [1] 준지성체(118.235) 13:43 61 0
218241 일반 그랜드 아카이브 이거 지으면 뭐가 좋음? [3] ㅇㅇ(223.39) 13:39 62 0
218240 일반 니들은 오비탈링 다 짓냐? [3] 무기상갤로그로 이동합니다. 13:30 68 0
218239 일반 4.0 베타는 어떻게 하는거임? [2] ㅇㅇ(223.39) 13:25 39 0
218238 일반 사이언스 넥서스 신경계 저장소 이벤트 떴을 때 과학자가 없으면 [2] Divi:SION갤로그로 이동합니다. 12:47 67 0
218237 일반 4.0이랑 DLC랑 같이 나오나? [5] 준지성체(118.217) 12:32 59 0
218236 일반 4.0 기사단 기사직업 주는거 생산량증가 받으려나 [1] 준지성체(175.211) 12:32 42 0
218235 모드 모드 호환성 패치같은건 어떻게 만듬??? [1] Rhail갤로그로 이동합니다. 12:18 25 0
218234 일반 아니, 근데 이거 설마 기사:견습기사 비율 1:10인가..? [2] 준지성체(121.167) 12:10 129 0
218233 일반 보통 원시문명 통찰은 몇정도면 충분해? [1] 준지성체(59.13) 12:01 50 0
218232 일반 3.14하기 vs 4.0 베타하기 [3] 반짝반짝작은별갤로그로 이동합니다. 11:57 98 0
218231 일반 금성 테라포밍 후보지로 뜰때 있음? [2] ㅇㅇ(14.35) 11:45 58 0
218230 일반 기사단 4.0 나와도 여전히 태양계 스타트 하는 게 좋겠네 [4] 준지성체(121.167) 11:31 182 0
218229 일반 가축기사단 이제 기사가 안정도 안주잖아 [1] 준지성체(118.235) 11:22 63 0
218228 일반 쟁탈 명분 전쟁은 안생기나 ㅇㅇ(59.15) 11:00 24 0
218227 일반 이 겜은 ai가 너무 멍청해서 [3] 준지성체(222.111) 10:41 140 0
218226 일반 생명파종 꽂혀서 이거 파려는데 질문좀.. [6] 준지성체(210.217) 10:33 77 0
218225 일반 뉴비 질문 칸 태수국으로 들어가 있는 상태인데 [4] 준지성체(118.235) 10:02 85 0
218224 일반 혼합진화도 4.0으로 숨통 트이겠다 [2] amazig갤로그로 이동합니다. 09:51 103 0
218223 일반 공허충 사냥꾼 받으면 포획할때마다 식량 1000씩 오르던데. [2] ㅇㅇㅇ(118.176) 09:47 74 0
218221 일반 시작 스타팅 사기적으로 나온건 처음이네 준지성체(211.234) 09:42 67 0
218220 일반 과도한 개조 + 선별적 동족 관계 준지성체(118.235) 09:41 32 0
218219 정보 AI반란 대처법 [2] 준지성체(222.101) 07:00 222 0
218218 일반 드디어...번역모드들 고쳤습니다. [8] 술좀알려주세요갤로그로 이동합니다. 05:01 255 7
218216 일반 2300년 중반쯤부터 슬슬 느려지기 시작하니까 게임 맛이 확 떨어짐... [1] 준지성체(121.137) 03:15 76 0
218215 모드 기가랑 RS랑 같이 쓰면 안되는듯 [2] Rhail갤로그로 이동합니다. 02:20 87 0
218214 정보 기계반란 조건 오해하는 놈들이 있는 것 같은데 정리해줌 [2] ㅇㅇ(59.29) 02:15 442 6
218213 일반 4.0 베타로 몇번 초반을 굴려봤는데 준지성체(210.101) 01:42 148 1
218212 일반 형들 뉴비 질문점 스샷떠옴 [2] ㅇㅇ(59.7) 00:31 144 0
218211 일반 아니 먼 길 오셔서 뇌 바치시나 Divi:SION갤로그로 이동합니다. 00:17 91 0
218210 일반 함재기 반복연구랑 X슬롯 폭발무기는 언제나오냐 [5] 준지성체(218.237) 00:06 111 0
218209 일반 복귀할 사람은 5월 5일 복귀하면 됨? [3] 엑린이갤로그로 이동합니다. 04.26 173 0
뉴스 “입구서 저 찾아도 없어요”…신지, 초상권 무단 사용에 일침 디시트렌드 10:00
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2