Skip to content

Repository files navigation

Counterform

플레이 습관을 읽고 형태를 바꾸는 보스와 60초씩 겨루는 Android 세로형 슈팅 로그라이트입니다.

Counterform 전투 화면

게임 소개

소형 전투 드론을 움직여 10개 스테이지를 돌파합니다. 기본 사격은 자동이고, 플레이어는 이동, DASH, PULSE와 안전 구간 판독에 집중합니다. 보스를 쓰러뜨리면 가로로 놓인 카드 세 장 중 한 장을 골라 속성과 한 스테이지 전용 전술을 조합합니다.

지난 전투의 이동 방향, DASH 타이밍, 거리, PULSE와 코어 공격 성향은 16개 숫자로 요약됩니다. 로컬 ONNX 모델은 이 요약으로 다음 보스 형태의 점수를 제안하고, 피해량과 전조, 반복 제한은 Unity 규칙이 따로 지킵니다.

post-v1 전투 보완

  • Shear의 좌우 공격은 회전 톱날 실루엣과 회전 궤적으로 전조와 실제 위험 구간을 함께 보여 줍니다.
  • Warden은 방패로 정면 투사체를 막고, 양팔 도끼의 베기·내려찍기와 한 곳만 통과할 수 있는 절단 레이저 벽을 사용합니다.
  • Oracle의 패널 랜스는 두 슬롯을 미리 준비해 재사용하며, 외부 정리로 슬롯이 사라져도 다음 공격 전에 복구합니다.
  • Stage 4-10의 위험 구간은 마젠타·주황·백색으로, 실제 안전 공간은 앰버로 분리했습니다. Stage 6-10에는 현재 보스 형태에 맞는 진화 인트로가 이어집니다.
  • 다섯 속성은 일반 탄환·명중·PULSE·빌드 획득 순간에 같은 계열의 A08 VFX를 사용합니다.

플레이하기

APK를 받은 뒤 Android가 묻는 경우 파일을 받은 앱의 알 수 없는 앱 설치를 허용합니다. 세로 방향으로 실행하고 프롤로그 뒤 START를 누르면 됩니다.

현재 v1.1.0 APK는 132,706,990바이트이며 SHA-256은 C8152BAF3AD98789840779BB052DD2A62293CF01CF22E262812B4941F57B03DE입니다. Unity Development, Android Debug 서명, debuggable=true이고 내부 버전은 0.1.0 (1)입니다. 패키지는 com.counterform.prototype, min SDK 26, target SDK 36, ABI는 arm64-v8a입니다. SM-T225N에 설치한 뒤 추출한 base.apk와 호스트 APK의 SHA-256이 일치합니다.

post-v1 시연본은 production GameView에서 Stage 1-10의 보스 인트로와 실제 HUD 전투를 차례로 담은 59.5초, 1,785프레임 영상입니다. H.264 High 800x1340, yuv420p limited-range BT.709, CFR 30 fps, AAC-LC 48 kHz stereo이며 SHA-256은 1CB4C2F08A4DB643159D6FDF8CDE59314B46B9100E77FCAB6367543638FFAB1D입니다. 영상 바이너리는 소스 저장소에 넣지 않습니다.

이전 v1.0.0 기록은 APK 5DB44B8F6A103D18E3FA056C5C806B7F7BCF47EE6E2D53DFD5D230190CF720A3, Stage 1 전용 시연본 C89697F86E86AC3019F6E8D7E5D73FD6413366BF72F2965CA604FB75FBCD2DA6입니다.

입력 동작
왼쪽 십자 패드 상하좌우 이동
A / PULSE 충전 완료 시 범위 파동
B / DASH 짧은 무적 회피
자동 사격 가장 가까운 보스 조준
Pause 전투, 타이머, 입력 정지

다섯 보스

  • Probe: 드릴 돌진
  • Shear: 회전 톱날의 십자/X자 전개
  • Siege: 직선 로켓과 원형 미사일
  • Warden: 투사체 방패, 양팔 도끼, 절단 레이저 벽
  • Oracle: 부유 패널과 재사용형 패널 랜스

보스 인트로

프로젝트 열기

필요한 Unity 버전은 6000.5.5f1입니다.

  1. git lfs install을 실행합니다.
  2. git clone https://github.com/Festinz/counterform.git으로 저장소를 받습니다.
  3. LFS 파일이 자동으로 내려받아지지 않았다면 저장소 안에서 git lfs pull을 실행합니다.
  4. Unity Hub에서 UnityProject 폴더를 엽니다.
  5. Assets/Counterform/ArenaMVP/Scenes/ArenaMVP.unity를 엽니다.
  6. Android Build Support, SDK, NDK, OpenJDK가 설치되어 있는지 확인합니다.
  7. 세로 화면 Android로 빌드합니다.

작업 씬을 다시 만들 때는 Unity 메뉴의 Counterform > Arena MVP > Build Prototype Scenes를 사용할 수 있습니다.

테스트

Unity Test Runner에서 EditMode와 PlayMode를 실행합니다. 현재 post-v1 source 기준 결과는 EditMode 1005/1005, PlayMode 21/21입니다. APK 설치와 실행 뒤 SM-T225N의 설치본을 다시 추출해 호스트 APK와 바이트 동일성도 확인했습니다.

폴더

  • UnityProject/: Android 게임 source와 runtime assets
  • ArtSource/: 런타임 이미지의 원본과 생성 프롬프트 기록
  • ML/: 로컬 ONNX 후보와 재현 스크립트
  • Tools/: Blender, 빌드, 문서, QA 자동화
  • ThirdParty/: 함께 배포하는 폰트 원본과 라이선스
  • Docs/: 게임 설명, AI 활용, 팀 역할, 공개용 화면

  • 임종환: 공동 기획, BGM
  • 신창준: 개발
  • 조해연: 공동 기획, 아트

제작 과정에서는 Codex, Unity AI/AI Assistant, Blender MCP, ImageGen, Nano Banana Pro, Higgsfield, Meshy, Suno를 실제 역할에 맞춰 사용했습니다. 자세한 프롬프트와 산출물, 사람의 후처리 범위는 Docs/submission/Counterform_AI_Technical_Report_NAN2026.pdf에 정리합니다.

라이선스와 출처

Press Start 2P와 Noto Sans CJK KR은 SIL Open Font License 1.1에 따라 사용합니다. 원본과 라이선스 파일은 ThirdParty/Fonts에 있습니다. Unity package와 생성 도구, BGM의 사용 내역은 AI 활용 기술 문서와 Docs/THIRD_PARTY_NOTICES.md에 정리합니다.

이 저장소 전체에 하나의 오픈소스 라이선스를 일괄 적용하지 않습니다. 팀이 만든 코드와 자산, 외부 라이선스가 적용되는 파일의 범위는 각각의 notice를 따릅니다.

About

Counterform — NAN 2026 Android adaptive boss-rush shooter

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages