본문으로 건너뛰기

개발자

오픈 SDK 위에 도구, 모드, 서비스를 만들거나 게임 자체를 확장하는 사람입니다

SDK의 라이선스는 MIT이며, 최종적인 기준은 SDK의 소스 코드입니다

SDK부터 시작하고, 그다음 - 설치

문서

  • 실행 인수는 화면, 레벨, 플레이를 바로 열고, 스위치는 게임 실행 한 번의 동작을 바꿉니다. 인수는 실행 파일 뒤에 씁니다: 바로 가기, 터미널, Steam의 실행 옵션에서

  • SDK - Bullet Hero 레벨 형식을 오픈 C# 라이브러리로 만든 것입니다. 게임은 이 라이브러리로 레벨을 읽고 쓰며, 직접 만든 프로그램도 같은 일을 할 수 있습니다

  • SDK 배포 형태는 nuget.org의 BulletHero.SDK 패키지, 또는 소스에서 빌드한 결과물입니다. Unity에서는 git 서브모듈로 연결하며, ConsoleSmoke 샘플로 레벨이 읽히는지 확인합니다

  • 레벨은 폴더입니다: 내용은 level.json 또는 level.blob, 메타데이터는 metadata.json 또는 metadata.blob, 그리고 커버와 미디어 파일. 백업, 기록, 플레이어 설정은 기기에 남습니다

  • .blob 파일에는 .json 파일과 같은 데이터가 바이너리 형태로 들어 있습니다: 24바이트 헤더 뒤에 데이터가 옵니다. 캐시가 아니라 동등한 레벨 형식입니다

  • 레벨은 폴더, tar.gz, zip 중 하나로 내보내며, 원하면 비밀번호를 걸 수 있습니다: AES-256 zip 또는 OpenPGP. SDK에서는 받은 파일의 형식을 이름이 아니라 첫 바이트로 판별합니다

  • 버전은 세 가지입니다: 게임의 gv, SDK의 sv, 모델 형식 세대의 mg. SDK에서는 mg 값을 기준으로 오래된 파일을 마이그레이션하고, 빌드보다 새로운 세대의 파일은 읽기를 거부합니다

  • 검증은 ValidationFacade 클래스로 직접 호출하며, 저장과 불러오기에 내장되어 있지 않습니다. 문제는 Error, Warning, Advice 세 그룹으로 나뉘고, ValidateAndFix 메서드는 고칠 수 있는 것을 고칩니다

  • 서비스는 어떤 레벨을 받는지 PublishProfile 파일로 기술합니다: 라이선스, 리소스 출처, 필수 필드, 크기 한도. 서비스를 추가하려면 분석기를 고치는 대신 파일을 하나 작성하면 됩니다

  • 생성기는 SDK 기본 클래스(BaseLevelGenerator, BaseContentGenerator, BaseModifier) 중 하나를 상속한 클래스 하나입니다. 폼, 예상치, 실행 취소는 호스트가 계약을 보고 스스로 만듭니다

  • SDK 문제는 bullet-hero/sdk 저장소의 이슈로 보고하고, 코드 변경은 같은 저장소에 풀 리퀘스트로 보냅니다. 기여자 규칙도 같은 저장소의 코드 옆에 있습니다