FFF #286 - 오염 정화


원글 : 



사무실에서 일주일


이번 주는 전형적인 버그 수정의 또 다른 주입니다. 그래서 저는 우리가 한 번 스타일을 변경하고 그것이 우리에게 정확히 무엇을 의미하는지에 대한 매일 매일의 설명을 하기로 생각했습니다.



월요일

우리는 대부분 전형적인 버그를 고치는 날을 보냈습니다. 매주 월요일 회의, 즉 개발 계획과 FFF 계획에 대해 논의한 후, 모든 사람들이 일반적인 버그 수정 작업에 착수했습니다. 이는 다음과 같은 것으로 요약됩니다.


1. 포럼 또는 자동 충돌 보고서를 통해 작업할 버그를 찾습니다.

2. 문제를 재현하거나, 어떤 식으로든 무엇이 잘못되었는지 알아내려고 노력하세요.

3. 문제를 해결하도록 노력하세요. 때때로 이것은 매우 쉬울 수 있고, 다른 때는 몇 시간이나 며칠이 될 수 있습니다.

4. 버그를 고치는 데 효과가 있는지 확인하십시오.

5. 패치가 다른 것을 망가뜨리지 않았는지 확인하십시오. 이를 위해 1,300개 이상의 통합 테스트가 있으며, 이 테스트는 많은 양의 코드 베이스를 포함합니다. 또한 어떤 것이 마스터 또는 어떤 풀 요청으로 밀릴 때마다 모든 플랫폼에 대한 테스트를 실행하는 서버도 있습니다.

6. Changelog 항목이 있는 솔루션을 실제 서버에 적용하고 업데이트하십시오!

7. 해당되는 경우 포럼의 버그 보고서를 '다음 릴리스에 대한 해결'로 이동합니다.


4시쯤에야 릴리즈를 결정했어요. 슈퍼게임 파기는 없었지만, 저희가 해결한 인트로 캠페인 스크립트 문제가 있어서 구축 프로세스를 시작하기로 했습니다.


간단히 설명하자면, 배포 프로세스는 다음과 같습니다.


1. 배포 서버에 콘솔 명령을 입력합니다.

2. 배포 서버는 자동화의 마법을 부리고, 모든 플랫폼을 구축하여 모든 곳에 업로드하며, 크라우딘에서 로캘을 업데이트합니다.

3. 스팀 체인지로그를 올리고 스팀에서 방출되는 것을 라이브로 설정하는 것과 같은 비자동화 단계를 사람이 마칩니다.


이 작업은 일반적으로 약 90분이 소요됩니다.

0.17.10 배포 프로세스가 완벽하게 실행되었습니다.


하지만 충돌 보고가 크게 급증하는 것을 보자마자 GUI가 멀티플레이어로 작동하면서 뭔가 망가진 것 같습니다. 첫 시간 이후, 100건이 넘는 충돌 신고가 접수되었으니, 확실히 큰 문제가 되었습니다.


단순한 실수였기에 한 줄짜리 해결책이었어요. 신속하게 배포 스크립트를 다시 작성했습니다. 핫픽스가 종료될 때까지 충돌 보고서의 최종 집계는 300개가 넘었습니다.




화요일


화요일은 평상시와 같은 방식으로 시작되었는데, 대부분의 팀원들이 오전 11시까지 사무실에 도착했고 벤은 독일에서 버스를 타고 긴 시간 후에 도착했습니다. 점심 식사 직전에 코바렉스는 이 포럼 게시물에 의해 야기된 오염 균형에 대한 토론을 사무실에서 시작했습니다.


용광로 에너지 효율을 정상화할 때 용광로가 얼마나 많은 오염을 발생시킬지는 고려하지 않은 것 같습니다. 우리는 무엇을 해야 할지, 오염이 전략적인 게임 플레이 결정에 미치는 영향에 대해 잠시 얘기했습니다. 예를 들어, 강철용광로에서 전기용광로로의 오염 감소는 플레이어들이 사용할 용광로를 선택하는 데 중요한 요소입니다.


그 출발점은 우리가 오염에 대한 어떠한 믿을 수 있는 정보도 가지고 있지 않고, 게임의 진정한 가치가 무엇인지에 대한 정보도 가지고 있지 않다는 것입니다. 우리는 소비된 에너지 양 당 틱의 가치가 어느 정도인지 논의 중이었지만, 다른 실체들도 또한 다른 방식으로 그것을 한다는 점을 논의했습니다. 그래서 그 아이디어는 공해 통계를 추가하기 위해 발표되었습니다. 이는 오염이 생성되고 흡수되는 위치를 항목, 전기, 유체 통계 등과 동일한 방식으로 보여 줍니다.


퇴근 시간이 끝날 무렵 코바렉스는 게임 내 오염 통계를 작성했고, 일부 최종화도 나중에 계획되었다.


그렇지 않으면, 버그를 발견하고, 버그를 수정하고, 수정 사항을 푸는 꽤 전형적인 날이었습니다. Rsedding은 Manage Mods GUI의 'Back Button' 로직에 시간을 할애했습니다. 이제 GUI에서 확인되지 않은 변경 사항과 원하는 사항에 대한 프롬프트가 표시되므로 '돌아가는 버튼'만큼 간단하지 않습니다.


저녁에 코바렉스는 나무 흡수와 타일 흡수에 대한 통계를 추가하면서 오염 통계를 완성했습니다. 코바렉스는 종종 그의 세 어린 소년들과 씨름하고 잠자리에 든 후 몇 시간 동안 야간 교대 근무를 할 것입니다. 이러한 모든 통계 GUI를 확인하는 동안 또 다른 변경 사항은 통계 평활 논리(statistic smoothing logic)였습니다. 이전과 마찬가지로 모든 통계는 항목 통계를 제외하고 0으로 평활화되었으며, 이는 통계가 극도로 스파이크하다는 것을 의미합니다.




우리는 전기 네트워크 통계와 별도로 모든 통계를 평활할 수 있도록 하기로 결정했다(그 성격상 매끄러움). 우리는 그 결과가 훨씬 더 좋다고 생각합니다.







수요일

버그 수정의 꽤 전형적인 날. 코바렉스는 오염 통계를 완성하고 오염 값을 정상화하는 작업을 시작했습니다. 내부 프로토타입 값은 expects_per_tick_per_watt로 이름을 바꾸었으며, 기존 프로토타입 값이 존재하는 경우 내부값으로 변환됩니다. 또 다른 변화는 타일 프로토타입 오염 흡수 정의를 수정하는 것이었습니다. 현재 그것은 노화(ageing)라고 불립니다, 그것은 무엇을 의미합니까? 그래서 지금은 pollution_absorption_per_second 로 이름이 바뀌었고, 이것은 그것이 무엇을 하는지 힌트를 줍니다.


이 재작업의 다음 단계는 오염을 'x/s' 값으로 표시하는 것이었습니다. 현재 설명할 수 없는 수치와는 달리 말이죠. 이 형식으로 플레이어에게 보여주면 수치가 매우 크고 '83.33/s'와 같이 '깨끗하지 않습니다. 목표는 값을 '정상화'하는 것이었고, 그래서 우리는 상대적으로 균형을 유지하면서 1/s, 5/s와 같은 깨끗한 숫자를 가지고 있습니다. 일반적으로 모든 내부 값은 60으로 대략 나뉘며, 이를 지원하기 위해 아래와 같은 많은 마이그레이션이 필요했습니다.


- 각 청크의 오염의 양

- 외계인 둥지가 흡수하는 오염의 양

- 나무에 의해 흡수되는 오염의 양


결과는 다음과 같습니다.




점심 식사 후, pecila는 MacOS 버전: 기본 해상도로 렌더링에 대한 새 그래픽 설정을 추가했습니다. 이 게임은 기본적으로 MacOS에게 기본 'Retina' 해상도로 게임을 렌더링하도록 지시하지만, 일부 사람들은 더 오래되고 더 약한 MacBook의 성능에 문제가 있기 때문에 설정을 추가해 끌 수 있도록 했습니다. 때때로 게임을 개발하기가 힘듭니다. 많은 MacOS 플레이어들이 오랫동안 우리에게 높은 DPI 망막 화면을 지원하라고 말했고, 그들은 우리가 구성 플래그를 설정하는 것과 같은 기본적인 것을 하지 않았다는 것을 믿을 수 없습니다. 그래서 0.17을 더했고, 다른 참가자들이 우리가 그것을 켰다고 불평합니다. 가끔은 이길 수 없을 때도 있어요.




목요일


오염 이전을 마무리하고 모든 테스트가 통과되도록 한 후, 오염 변화를 정식 버전으로 통합했습니다. 변경 사항이 포함된 릴리스를 만들 계획이었기 때문에 주말에 앞서 금요일에 버그가 있으면 고칠 수 있습니다.


그것이 게임으로 통합되고, 그 가치들이 어느 정도 밝혀짐에 따라, 이것은 전형적인 공장에서의 새로운 오염 그래프는 다음과 같이 보일 것입니다.




또 다른 좋은 점은, 어떤 스피터, 바이터가 생성될 것인가와 공장을 공격하기 위해 유닛을 보낼 때 둥지가 얼마나 많은 오염을 흡수할 것인가에 대한 정보를 추가하는 것입니다.




이를 통해 플레이어들은 자신의 전략적 결정에 따라 적의 대응 규모를 직접 추정할 수 있습니다. 예를 들어 채굴시 오염 생성 및 산발적인 공격 주기를 기준으로 광산 전초기지에서 비축된 탄약이 얼마나 오래 지속될지 대략적으로 추정할 수 있습니다. 우리는 사람들이 정기적으로 그것을 하기를 기대하지는 않지만, 게임 기계들을 주의 깊게 검사할 수 있는 방법이 있다면 그것은 항상 좋습니다.


또한 보통 목요일에는 FFF를 준비하는데, FFF는 주제 작성, GIF 및 이미지 작성, 특징 완성, 광택제 적용 등을 의미합니다. 때때로 FFF의 마감일이 빠듯할 때도 있지만, 적당한 시간에 일을 끝내도록 우리를 재촉하는 것이 좋습니다. 우리는 무언가를 할 수 있는 무한한 시간이 있다면 그것은 결국 끝내는 무한한 시간이 걸리는 문제를 경험했습니다.


16시 30분쯤에 배치를 시작하기로 결정하고 내부 발표를 했습니다. 이 내부 발표는 팀원 모두가 알고 있고, 작업을 완료하고 추진할 수 있는 충분한 시간을 제공하며, 출시를 지연시키는 이유가 있을 경우 이를 언급하도록 초대합니다. 0.17.12 릴리스의 최종 결과 중 하나는 개조된 지하 파이프와 관련된 도미니크에 의한 분기를 병합하는 것이었습니다. 특히, PipeToGround 클래스에서 FluidBox로 지하 연결 지지대를 이동했습니다. 이와 같이 큰 변경 사항이 있을 경우 풀 요청을 통해 이를 처리합니다. 코드 검토자로 지명된 사람은 버그나 이슈에 대해 PR을 통해 모든 것이 잘 보이면 마스터 지사에 병합할 수 있습니다.


그래서 이 모든 것이 PR에게 좋은 것처럼 보였고, 그래서 그것은 합병되었습니다. 그리고 시험이 통과된 후에 우리는 공개 과정을 시작했습니다. 약 20:00 CET에서 전체 구축이 완료되었으며, 0.17.12는 모든 베타 참가자에게 제공되었습니다.




금요일

어떤 면에서는 이 계획이 효과가 있었습니다. 릴리즈 후 ' 누락된 사항'에 대한 피드백이 있었습니다.


- 오염이 진화 인자를 증가시키는 방법에 대한 지도 설정을 마이그레이션합니다. (공해는 기존 절약량보다 16.6배 빠른 속도로 진화를 증가시키고 있었습니다.)

- 강철 용광로의 생산량은 0.16에 비해 너무 낮았습니다.

- map_settings_example.json을 (지금은) 터무니없는 오염 값을 갖지 않도록 변경하였습니다.


진화 요인이 정상 속도의 16배로 증가합니까? 그것은 실험적인 놀이의 스릴이에요!


또한 소개 캠페인 수정 및 변경사항을 일괄 병합할 계획도 세웠습니다. 우리는 이 작업을 하루 일찍 하기를 원했습니다. 그래서 테스트를 하고 그것이 작동하는지 확인할 시간이 있습니다. 그리고 또한 우리가 출시하기 전에 수정 작업을 할 수 있는 충분한 시간이 있을 것입니다. 더 나아가, 우리는 재앙적인 버그가 유입될 수 있는 충분한 시간이 필요합니다. 우리는 같은 날에 또 다른 방역을 할 수 있습니다.


보통 금요일에는 FFF가 마무리 단계에 있습니다. 항목의 마지막 부분이 채워지고 업로드된 영상이 표시되고 최종 편집이 시작됩니다. 이번 주는 제가 매일 글을 쓰기 때문에 다소 특별합니다.


이제 막 5시가 지났는데, 대부분의 팀원들이 주말을 위해 일을 마무리 짓고 있습니다. 포럼에 대한 버그리포트의 수는 366건으로 지난 주의 372건보다 낮습니다. 이제 커브길의 정점을 지났을 수도 있습니다. 버그리포트가 더 이상 더 이상 빨리 나타나지 않을 때, 우리는 그들을 닫을 수 있습니다. 지난 7일 동안 해결된 100개 이상의 버그 보고서와 함께 0.17.13개의 새로운 기능이 추가되었습니다. 꽤 좋은 한 주였다고 말하고 싶군요. 이번 주 마지막 업무 순서는 금요일 사실을 발표하는 것입니다.


이번 최신 릴리즈에는 새로운 버전의 소개 캠페인이 포함되어 있습니다. 가능한 한 많은 피드백을 받을 수 있도록 다른 플레이오프를 제공해 주시면 감사하겠습니다.


항상 그렇듯이, 저희 포럼에 어떻게 생각하시는지 알려주세요.










파파고 + 의역 몇가지

기술적인 부분은 모르겠다