홈 › 모딩 정보 › 확인, 패키징, 공개
06장

확인, 패키징, 공개

oa-tool mutator check와 pack, 시험 실행, 목록 페이지에 표시되는 내용, 아이콘, 그리고 Core Prime에 패키지를 제출하는 방법.

이 장은 docs/mutators/authoring.md 문서와 docs/mutators/oamut-standard.md 문서를 요약합니다.

.oamut 확인하기

뮤테이터는 oa-tool mutator pack으로 패키징하고 oa-tool mutator check로 확인합니다. oa-tool pack과 oa-tool check는 .oamap이나 .oamod용 명령입니다. check는 폴더가 아니라 .oamut 파일을 읽습니다. Lua를 컴파일하고 각 .sm을 파싱하지만 실행하지는 않습니다. 마지막 줄은 result: ok 또는 result: refused입니다.

$ oa-tool mutator pack commander-radar
$ oa-tool mutator check commander-radar-1.oamut

거부되면 파일과 줄을 알려 줍니다. 제출하기 전에 고치세요. Commander Radar의 패키지 파일 이름은 commander-radar-1.oamut입니다. 그 파일의 확인은 result: ok로 끝납니다.

폴더 밖에서 패키징하기

폴더 밖에서 폴더 이름을 넣어 pack을 실행하세요. 따로 지정하지 않으면 현재 폴더에 <id>-<version>.oamut 파일을 씁니다. --out에는 .oamut 파일을 지정해야 하며, 다른 확장자는 거부됩니다. --force는 이미 있는 파일을 덮어씁니다. 폴더 안에서 현재 폴더(.)를 패키징하지 말고, .oamut 파일을 폴더 안에 두지도 마세요. 패키지는 그 파일을 담을 수 없습니다. 이 명령에 --game-dir 옵션을 주면 사용법 오류입니다.

시험 실행

oa-tool mutator diff는 패키지 폴더를 게임 폴더에 대고 게임의 뮤테이션 파이프라인에 통과시킨 뒤, 바뀐 것을 나열합니다. 옵션은 uber-comm의 strength=lite처럼 마지막 콜론 뒤에 씁니다. maps 훅은 --map NAME을 줄 때만 실행됩니다. 모드 없는 3.1c에서 보고서의 # 헤더 다음 줄은 다음과 같습니다.

$ oa-tool mutator diff --game-dir DIR --mutator ./uber-comm:strength=lite
field units/armcom.fbi [unitinfo] acceleration: 0.15 -> 0.3375	by uber-comm
field units/armcom.fbi [unitinfo] brakerate: 0.3 -> 0.675	by uber-comm
field units/armcom.fbi [unitinfo] builddistance: 60 -> 120	by uber-comm
field units/armcom.fbi [unitinfo] maxdamage: 3000 -> 4500	by uber-comm
field units/armcom.fbi [unitinfo] maxvelocity: 1.2 -> 1.8	by uber-comm
field units/armcom.fbi [unitinfo] turnrate: 1044 -> 1566	by uber-comm
field units/armcom.fbi [unitinfo] workertime: 300 -> 900	by uber-comm
field units/corcom.fbi [unitinfo] acceleration: 0.16 -> 0.36	by uber-comm
field units/corcom.fbi [unitinfo] brakerate: 0.32 -> 0.72	by uber-comm
field units/corcom.fbi [unitinfo] builddistance: 60 -> 120	by uber-comm
field units/corcom.fbi [unitinfo] maxdamage: 3000 -> 4500	by uber-comm
field units/corcom.fbi [unitinfo] maxvelocity: 1.07 -> 1.605	by uber-comm
field units/corcom.fbi [unitinfo] turnrate: 1030 -> 1545	by uber-comm
field units/corcom.fbi [unitinfo] workertime: 300 -> 900	by uber-comm

라이브러리의 시험 실행은 같은 파이프라인을 경기 없이 자체 저장 공간에서 돌립니다. 맵을 정하지 않으므로 거기서는 maps 훅이 실행되지 않습니다. 라이브러리는 결과를 기억하며, ‘확인’ 줄은 다음 중 하나입니다. check는 뮤테이터를 적용하지 않습니다. 시험 실행과 diff는 적용합니다.

판정라이브러리에 표시되는 내용
compatible그 모드에서 플레이할 수 있으며, 줄에 바뀐 내용의 요약이 붙습니다.
no-effect플레이할 수 있지만, 확인에서 세는 항목은 아무것도 바꾸지 않습니다.
incompatible그 모드에서는 플레이할 수 없습니다. 이유가 뒤에 나옵니다.
failed중단되었습니다. 이유가 뒤에 나옵니다.
아직 실행 중그 모드로 하는 확인이 아직 실행 중입니다.
아직 실행 안 함아직 그 모드로 확인하지 않았습니다.

목록 페이지에 표시되는 내용

페이지에는 아이콘이 표시되며, 매니페스트에 아이콘이 없으면 첫 태그가 여덟 가지 중 하나일 때 그 태그의 아이콘이 표시됩니다. 이어서 이름, 제작자, 버전과 릴리스, 요약(description의 첫 줄), 태그, requires.engine에서 가져온 엔진 표시가 나옵니다. ‘요구 사항’에는 requires.mutators가 나열됩니다. ‘옵션’에는 각 옵션이 나열됩니다. ‘바꾸는 내용’에는 레이어가 나열됩니다. ‘호환 모드’에는 works-with가 나열됩니다. 그 뒤에 릴리스 표와 ‘게임에서 받기’가 이어집니다. 이 사이트는 패키지 파일을 링크하지 않습니다. 다운로드는 게임 안에서 이루어집니다.

아이콘

정사각형 PNG이며, 한 변이 최소 1픽셀, 최대 256픽셀, 파일 크기는 최대 256 KiB입니다. 128픽셀로 그리세요. 매니페스트의 icon이 경로를 지정하며, 그 이름은 .png로 끝납니다. icon이 없으면, 첫 태그가 여덟 가지 중 하나일 때 배지에 그 태그의 아이콘을 씁니다. 그다음 태그는 확인하지 않습니다.

Core Prime에 제출하기

Core Prime 콘텐츠 라이브러리는 관리자의 컴퓨터에서 공개되며, 목록은 그 컴퓨터 밖으로 나가지 않는 키로 서명됩니다. 뮤테이터를 목록에 올리려면:

  1. .oamut 파일(또는 그 링크), 제작자, 라이선스를 담아 Open Annihilation 리포지토리에 이슈를 여세요.
  2. 관리자가 게임 폴더에 대해 검사를 실행하고 라이브러리의 패키지 기록에 추가합니다.
  3. 다음 공개 때 파일이 해시 기준으로 업로드되고, 새 목록에 서명하며 시퀀스 번호를 올립니다.
  4. 몇 분 뒤에는 모든 플레이어의 라이브러리와 이 사이트에 나타납니다.

맵 팩이나 모드도 같은 방법으로 제출합니다. Core Prime에 공개하기 장을 참고하세요.