Stranded: Alien Dawn – 고급 모딩 팁

더 복잡한 S:AD 모드를 개발하는 데 도움이 되는 몇 가지 팁입니다.

 

버전 관리 사용

일종의 버전 제어 시스템이 없으면 복잡한 소프트웨어를 개발하는 것이 거의 불가능합니다. 일부 내장 UI 도구가 모드 편집기를 단순화하는 데 도움이 된다는 사실에도 불구하고 모드는 실제로 그러한 소프트웨어입니다(거의 모든 사람이 모드 편집기를 사용하여 사용자 정의 생존자를 만들 수 있음).
버전 제어 시스템을 사용하면 작업에 대한 모든 변경 사항을 추적할 수 있고 문제가 있는 경우 이전의 안정적인 버전으로 되돌릴 수 있으며 가장 중요한 것은 여러 개발자가 동일한 프로젝트에서 쉽게 작업할 수 있다는 것입니다.
매우 인기 있는 버전 제어 솔루션은 GitHub입니다. 온라인 프로젝트를 위한 호스팅을 제공하므로 여러 모더가 하나의 복잡한 모드를 개발할 수 있습니다.
또 다른 솔루션은 자신의 컴퓨터 또는 서버에서 프로젝트를 호스팅하는 데 사용할 수 있는 GUI 하위 버전 래퍼인 TortoiseSVN입니다. 그렇게 하는 것은 매우 쉽습니다. 온라인에서 사용할 수 있는 설명서가 있습니다.
제안된 두 솔루션은 물론 무료입니다(또는 무료 버전이 있습니다).
버전 제어가 작동하면 모드에 대한 모든 변경 사항을 추적할 수 있습니다. 예를 들어 새 버전의 모드를 업로드하기 직전에 모드를 저장한 후 모든 변경 사항을 확인할 수 있습니다. 마지막 순간에 엉망이 되는 경우가 매우 많기 때문에 반드시 수행해야 하는 단계입니다. 모드 편집기 자체에 버그가 있는 것으로 보고되었습니다.
Steam에 업로드한 후 로컬 변경 사항도 버전 제어 저장소에 "커밋"해야 합니다.
버전 관리가 필요한 모드 폴더는 다음 위치에 있습니다.

%appdata%\Stranded - Alien Dawn\Mods

런타임 오류 모니터링

모드를 테스트할 때 특수 모드 맵에서 게임은 모든 게임 출력을 화면과 모드 관리자 콘솔에 표시합니다. 오류가 발생한 경우 모더는 오류로 인해 생성된 정확한 메시지를 확인하고 문제를 해결할 수 있습니다. 그러나 실제 게임, 특히 새 모드가 없는 저장된 게임에서는 오류가 표시되지 않습니다. 따라서 많은 모드가 충분히 테스트되지 않은 상태로 업로드되며 현재 모드가 실제로 게임 로직을 깨뜨리는 버그 보고서가 많이 있습니다.
최종 오류를 찾을 수 있는 게임 출력 로그는 다음에서 찾을 수 있는 파일에 저장됩니다.

%appdata%\Stranded - Alien Dawn\logs

문제는 생성된 게임 로그를 플러시하기 위해서는 게임이 종료되어야 한다는 것입니다. 이는 로그의 오류를 특정 게임 내 이벤트와 연관시키기 어렵기 때문에 디버깅에 실용적이지 않습니다. 모딩 맵 외부에서 실시간으로 게임 로그를 모니터링하는 간단한 방법이 있습니다. Visual Studio IDE만 있으면 됩니다. 메뉴 디버그 - 프로세스에 연결(또는 바로 가기 Ctrl-Alt-P)에서 게임 프로세스에 연결하면 오류를 포함한 모든 게임 로그가 "출력" 창에서 실시간으로 표시됩니다. 첨부할 때 검색하는 게임 프로세스는 “StrandedSteam.exe”라고 해야 합니다. Visual Studio에 익숙하지 않은 분들을 위해 VisualStudio 사이트에서 다운로드할 수 있는 “Community”라는 무료 버전이 있습니다.

쓰기 모드 코드

S:AD 게임 엔진은 Lua를 게임 논리 언어로 사용합니다. 비록 바닐라 버전은 아니지만 수정된 것입니다. 표준 라이브러리에는 많은 추가, 변경 또는 제거된 기능이 있습니다. 모딩 코드 "item"도 Lua에 있지만, mod 버전은 원본을 사용하지 않고 특정 기능이 블랙리스트에 있는 제한된 환경입니다. Lua 언어 자체는 매우 쉽습니다. JavaScript 또는 Python에 익숙한 사람이라면 누구나 사용할 수 있습니다. 문제없이. Lua 파일을 편집하는 데 사용할 수 있는 많은 IDE가 있습니다. 매우 인기 있는 것은 Visual Studio Code와 Sublime이며 둘 다 무료입니다. Lua IDE가 모딩 환경에서 시작된 경우 Steam은 게임을 종료한 후에도 여전히 실행 중인 것으로 간주할 수 있습니다. 그렇다면 IDE를 닫으십시오.

게임 내 콘솔 사용

모드 편집기 맵에서 ENTER 키를 통해 게임 내 콘솔을 열 수 있습니다. 모든 게임 변수의 값을 확인할 수 있으므로 좋은 테스트 도구가 됩니다. 콘솔에 입력된 모든 것은 런타임에 Lua 코드로 평가되고 결과가 화면에 인쇄됩니다.
예를 들어 개체가 선택되면 SelectedObj라는 전역 변수는 선택한 개체를 값으로 갖습니다. 콘솔에 입력하면 매우 큰 텍스트일 수 있는 개체의 내용이 인쇄됩니다. 따라서 개체 내부의 특정 정보를 찾는 것이 좋습니다. SelectedObj 뒤에 점(.)이 입력되면(루아에서 구성원이 액세스되는 방식이므로) TAB 키를 누르면 선택할 수 있는 목록에 객체의 내용이 표시됩니다.
디버깅에 도움이 될 수 있는 또 다른 중요한 전역 변수는 UIPlayer입니다. 이것은 많은 중요한 게임 값의 이름 공간입니다. 예를 들어, UIPlayer.labels.Buildings는 배치된 모든 건물이 포함된 목록을 보유하는 반면, UIPlayer.labels.Survivors는 생성된 모든 생존자가 포함된 목록입니다. 콘솔에 입력하면 매우 많은 양의 텍스트가 기록되지만 그다지 실용적이지 않습니다. 사람이 읽을 수 있는 텍스트를 더 많이 표시하는 데 사용할 수 있는 ValueToStr이라는 도우미 함수가 있습니다. 예: ValueToStr(SelectedObj), ValueToStr(UIPlayer.labels).
콘솔은 TAB 키를 통한 자동 완성도 지원합니다. 이렇게 하면 주어진 전역 변수 또는 개체 구성원의 정확한 이름을 알 필요가 없습니다.
인쇄된 텍스트에서 화면을 지우려면 F9 키를 사용하십시오.

게임 데이터 작업

게임에서 새 항목을 만들 때 가장 쉬운 방법은 기존 항목을 기반으로 새 항목을 만드는 것입니다. 특정 모드 항목에는 바닐라 데이터 사전 설정을 "복사"할 수 있는 옵션이 있습니다. 그러나 모든 데이터 사전 설정에 mod 항목이 있는 것은 아닙니다. 또는 모드가 새 사전 설정을 만드는 대신 기존 사전 설정을 망칠 수도 있습니다. 그러나 모드를 비활성화하는 것만으로는 그 효과를 되돌릴 수 없다는 단점이 있습니다. 모드가 비활성화되면 데이터는 다시 로드되지 않고 게임 코드만 다시 로드됩니다.
어쨌든 어떻게든 게임 데이터를 검사할 수 있는 방법이 있으면 유용합니다. 한 가지 방법은 게임 콘솔을 사용하여 전역 var 사전 설정의 내용을 확인하는 것입니다. 여기에는 프리셋 클래스별로 그룹화된 거의 모든 게임 데이터가 포함되어 있습니다. 이전 섹션에서 설명한 것처럼 콘솔에서 각 이름 뒤에 점(.)을 입력하면 현재 컨텍스트의 내용이 포함된 목록이 표시됩니다. 이렇게 하면 레벨별로 모든 내용을 분석할 수 있습니다.
그러나 콘솔을 사용하는 데에는 한계가 있습니다. 데이터 콘텐츠가 너무 복잡해서 큰 텍스트 덩어리로 검사할 수 없기 때문입니다. 각각에 대해 명시적인 도구를 호출하기 위해 사전 설정 클래스가 게임에 등록되어 있는지 이해해야 합니다. UI 데이터 인터페이스를 여는 사전 설정 클래스를 수락하는 콘솔 명령이 있습니다.

OpenPresetEditor("<PresetClass>")

어디 검사할 특정 클래스로 교체해야 합니다. 예를 들어 콘솔 OpenPresetEditor("FXPreset")에 입력하면 시각 및 음향 효과와 같은 가장 난해한 데이터 항목 중 하나를 포함하는 FX 편집기가 열립니다.

By injto4ka

더 많은 가이드:

코멘트 남김

ArabicEnglishFrenchGermanItalianJapaneseKoreanPortugueseSpanish