02 드래곤플라이트 게임 테스트

결과 게임

종합 순위(3라운드 평균) — 🥇 1위 q38 894.7 · 🥈 2위 ff 850.7 · 🥉 3위 fn 836.7. 전체 순위표는 아래 README 10절.

점수는 1000점 만점입니다. 라운드마다 최신(v3)부터 보여 주고, 각 라운드 안에서는 그 라운드 순위순입니다.

v3 · 스테이지·크레딧·컨티뉴 심사 완료

1위q38
900 / 1000
2위fn
818 / 1000
3위ff
800 / 1000
4위orn
774 / 1000
5위aw
756 / 1000
6위q36
707 / 1000
7위mcv
647 / 1000
8위cn
589 / 1000
9위mg
384 / 1000
공동 10위bolt
337 / 1000
공동 10위lfm
337 / 1000
12위mel
316 / 1000
공동 13위c1
0 / 1000
파일 없음
공동 13위c7
0 / 1000
파일 없음
공동 13위c7r
0 / 1000
파일 없음

v2 · 터치 조작 심사 완료

공동 1위ff
881 / 1000
공동 1위q38
881 / 1000
3위orn
868 / 1000
4위fn
864 / 1000
5위mcv
785 / 1000
6위cn
774.5 / 1000
7위aw
756 / 1000
8위q36
709 / 1000
9위mg
544 / 1000
10위bolt
467 / 1000
11위lfm
415 / 1000
12위mel
405 / 1000
공동 13위c1
0 / 1000
파일 없음
공동 13위c7
0 / 1000
파일 없음
공동 13위c7r
0 / 1000
파일 없음

v1 · 기본 게임 심사 완료

1위q38
903 / 1000
2위ff
871 / 1000
3위orn
838 / 1000
4위fn
828 / 1000
5위q36
787 / 1000
6위cn
665 / 1000
7위mcv
653 / 1000
8위bolt
604 / 1000
9위mg
560 / 1000
10위lfm
444 / 1000
11위mel
434 / 1000
공동 12위aw
0 / 1000
파일 없음
공동 12위c1
0 / 1000
파일 없음
공동 12위c7
0 / 1000
파일 없음
공동 12위c7r
0 / 1000
파일 없음

02. 브라우저 드래곤플라이트 대회

1. 한 줄 요약

같은 지시문으로 로컬 LLM 15종이 각자 브라우저용 세로 스크롤 슈팅 게임 「dragonflight」를 만들고, 자동 실행 시험과 블라인드 코드 리뷰로 1000점 만점 채점하는 대회입니다. 01 테트리스 대회와 같은 틀이고, 같은 15종이 같은 조건으로 참가합니다.

2. 무엇을 만드나, 그리고 라운드 개념 (v1 / v2 / v3)

참고 대상은 넥스트플로어(NEXT FLOOR)가 개발해 2012년 카카오톡 「게임하기」로 서비스한 모바일 종스크롤 슈팅 「드래곤플라이트」입니다. 플레이어(용)가 화면 아래에서 좌우로만 움직이고, 공격은 자동으로 계속 나갑니다. 위에서 가로 한 줄씩 내려오는 적(용)을 격파하거나 피하고, 코인과 아이템을 모으고, 경고가 뜬 줄에 떨어지는 운석을 피하며, 일정 거리마다 나오는 보스를 쓰러뜨리는 종스크롤 슈팅입니다.

이 시험은 원작을 베끼는 시험이 아니라 원작의 「게임성」을 직접 구현하는 시험입니다. 지시문은 원작의 그림·소리·이름 같은 에셋을 복사하지 말고 직접 그린 그래픽(도형, Canvas, CSS, WebAudio 합성 등)으로 만들라고 요구합니다. 원작 에셋을 가져다 쓴 구체적인 증거가 있으면 채점에서 감점합니다(7절).

대회는 테트리스와 마찬가지로 「라운드」로 이어집니다. 같은 모델이 같은 게임을 라운드마다 한 단계씩 발전시킵니다.

라운드과제시작 상태
v1세로 스크롤 슈팅을 처음부터 새로 만들기 — 좌우 이동·자동 발사, 웨이브와 적 체력, 코인과 아이템, 운석 경고, 보스, 점수와 난이도 상승, 시작 화면과 다시 시작, 키보드·마우스 조작, index.html 하나로 실행, README.md 포함빈 폴더
v2만들어 둔 게임에 모바일 터치 조작 추가 — 손가락을 끌어 좌우로 이동, 휴대폰 화면에 맞춤자기 v1 결과물을 복사한 폴더
v3아케이드 게임처럼 스테이지와 크레딧·컨티뉴 도입 — 보스를 쓰러뜨리면 다음 스테이지, 코인을 넣어 크레딧을 쌓아야 시작, 게임 오버 뒤 카운트다운 컨티뉴자기 v2 결과물을 복사한 폴더

v2·v3 의 규칙은 다음과 같습니다.

폴더 이름 규칙은 simple_llm_test_{모델약어}_dragonflight_{버전} 입니다.

simple_llm_test_q36_dragonflight_v1    # q36 모델의 v1 결과물
simple_llm_test_q36_dragonflight_v2    # 위 폴더를 복사해서 터치 조작을 추가한 v2 결과물
simple_llm_test_q36_dragonflight_v3    # v2 폴더를 복사해서 스테이지·크레딧·컨티뉴를 추가한 v3 결과물

3. 지시문 원문

모델마다 지시문은 폴더 이름({alias} 자리에 모델 약어)만 다르고 나머지는 글자 하나까지 같습니다. 아래는 실제로 보낸 문장 그대로입니다.

테트리스와의 차이: 세 라운드 모두 마지막 요구사항에 「필요하면 서브에이전트(subagent)를 만들어 역할을 나눠 진행해도 좋습니다.」가 들어 있습니다. 테트리스 지시문에는 이 문장이 없었습니다. 쓰라는 지시가 아니라 써도 된다는 허용이어서, 쓸지 말지와 어떻게 나눌지는 모델이 정합니다.

v1

현재 작업 폴더 이름은 simple_llm_test_{alias}_dragonflight_v1 입니다. 이 폴더 안에 웹 브라우저에서 바로 실행되는 HTML 기반 세로 스크롤 슈팅 게임 dragonflight 를 만들어 주세요. 모바일 게임 「드래곤플라이트」의 게임성을 참고하되, 원작의 그림·소리·이름 같은 에셋은 복사하지 말고 직접 그린 그래픽으로 만들어 주세요.

게임 규칙:
- 플레이어(용)는 화면 아래에서 좌우로만 움직이고, 공격은 자동으로 계속 발사됩니다.
- 적(용)은 가로 한 줄 단위의 웨이브로 위에서 내려옵니다. 적마다 체력이 있어 맞으면 줄어들고 0 이 되면 쓰러집니다. 적에 닿으면 게임 오버입니다.
- 쓰러진 적은 코인을 떨어뜨리고, 가끔 아이템(공격 강화·자석·방어막 등)이 나옵니다.
- 운석이 떨어지기 전에는 해당 줄에 경고 표시가 먼저 나옵니다.
- 일정 거리마다 보스가 나옵니다.
- 날아간 거리와 처치 수로 점수를 매기고, 진행할수록 속도와 적 체력이 올라갑니다.
- 점수·거리·코인을 화면에 표시하고, 시작 화면과 게임 오버·다시 시작을 갖춰 주세요.

요구사항:
- 키보드(←/→)와 마우스로 조작할 수 있게 해 주세요.
- 별도 설치·빌드·서버 없이 index.html 파일을 브라우저로 열면 바로 실행되어야 합니다.
- 필요한 파일은 모두 이 폴더 안에 만들어 주세요.
- 게임 소개, 실행 방법, 조작법, 파일 구성을 정리한 README.md 도 이 폴더에 만들어 주세요.
- 필요하면 서브에이전트(subagent)를 만들어 역할을 나눠 진행해도 좋습니다.

완성되면 만든 파일 목록과 조작 방법을 짧게 정리해 주세요.

v2

현재 작업 폴더 이름은 simple_llm_test_{alias}_dragonflight_v2 입니다. 이 폴더에는 앞서 만든 HTML 게임 dragonflight 가 있습니다. 모바일 기기에서도 플레이할 수 있도록 터치 조작 기능을 추가해 주세요(손가락을 끌어 좌우로 이동).
요구사항:
- 기존 기능은 그대로 유지해 주세요.
- 휴대폰 화면에서도 보기 좋게 맞춰 주세요.
- 별도 설치·빌드·서버 없이 index.html 파일을 브라우저로 열면 바로 실행되어야 합니다.
- README.md 에 터치 조작 방법을 추가해 주세요.
- 필요하면 서브에이전트(subagent)를 만들어 역할을 나눠 진행해도 좋습니다.
완성되면 바꾼 파일 목록과 터치 조작 방법을 짧게 정리해 주세요.

v3

현재 작업 폴더 이름은 simple_llm_test_{alias}_dragonflight_v3 입니다. 이 폴더에는 앞서 만든 HTML 게임 dragonflight(터치 조작 포함)가 있습니다. 아케이드 게임처럼 스테이지(레벨)와 크레딧/컨티뉴 개념을 도입해 주세요.

요구사항:
- 스테이지: 보스를 쓰러뜨리면 다음 스테이지로 넘어가고, 스테이지가 오를수록 어려워지며, 화면에 현재 스테이지가 표시되어야 합니다.
- 크레딧: 코인을 넣어 크레딧을 쌓고(키보드와 터치 모두 가능), 크레딧이 있어야 게임을 시작할 수 있게 해 주세요. 남은 크레딧을 화면에 표시해 주세요. 이 「크레딧 코인」은 게임 안에서 줍는 코인과 다른 것이니 이름·표시·조작에서 구분해 주세요.
- 컨티뉴: 게임 오버가 되면 카운트다운과 함께 컨티뉴 화면을 보여 주고, 그 사이 크레딧을 써서 이어서 할 수 있게 해 주세요(점수·스테이지 유지). 시간 안에 이어 하지 않으면 타이틀 화면으로 돌아갑니다.
- 게임 흐름: 타이틀(대기) 화면 → 시작 → 플레이 → 게임 오버 → 컨티뉴 → 타이틀 로 끊김 없이 이어지게 해 주세요.
- 기존 기능(키보드·마우스·터치 조작)은 그대로 유지하고, 별도 설치·빌드·서버 없이 index.html 을 브라우저로 열면 바로 실행되어야 합니다.
- README.md 에 스테이지 규칙, 크레딧·컨티뉴 방법, 조작법을 추가해 주세요.
- 필요하면 서브에이전트(subagent)를 만들어 역할을 나눠 진행해도 좋습니다.

완성되면 바꾼 파일 목록과 크레딧·컨티뉴 조작 방법을 짧게 정리해 주세요.

4. 실행 환경

테트리스 대회와 같은 서버, 같은 엔진, 같은 에이전트, 같은 권한입니다. 자세한 값은 01 테트리스 대회의 실행 환경을 보세요.

서버

예외: mel (Mellum 2.1)

mel 만 llama.cpp b11539 로 돌립니다. b11701 은 Mellum 의 ffn_moe_down 연산을 F32 로 강제하는데 Vulkan 이 이 연산을 GPU 에서 지원하지 않아 CPU 로 넘어가고, 생성 속도가 4.7배 느려지기 때문입니다. 이 서버의 GPU 에서는 b11539 에서도 NaN 이 없었고 퍼플렉서티도 같아서, mel 차례에만 엔진을 바꾸고 끝나면 b11701 로 되돌립니다. 이유와 수치는 01 테트리스 대회의 같은 항목에 있고, 02 에서도 똑같이 적용합니다.

에이전트

5. 공정성 장치

장치내용
샌드박스(bubblewrap)디스크 전체를 읽기 전용으로 두고, 홈과 데이터 디스크는 빈 영역으로 가려서 다른 모델의 폴더·결과물이 보이지 않습니다. 쓸 수 있는 곳은 자기 프로젝트 폴더와 일회용 임시 홈뿐입니다. 부모 프로세스가 끝나면 함께 종료됩니다.
웹 가져오기 도구 거부웹 가져오기(webfetch) 도구는 거부했습니다. 셸 네트워크는 막지 않았습니다 — 아래 「네트워크 사용 감사」 참고.
시간 제한모델당 라운드당 최대 60분. 넘으면 강제 종료하고 그 시점의 결과물로 채점합니다. 서브에이전트를 쓴 시간도 이 60분 안에 들어갑니다.
냉각 시간모델 사이에 1분 쉽니다. 과열을 막고 직전 모델의 부하가 다음 모델에 영향을 주지 않게 하기 위해서입니다.
같은 지시문폴더 이름 외에는 동일한 지시문. 서브에이전트 허용 문장도 15종 모두에게 똑같이 들어갑니다.
이전 피드백 없음v2·v3 에서도 직전 라운드 채점의 결함·피드백을 모델에게 알려 주지 않습니다.
같은 순서모든 라운드에서 아래 순서를 그대로 유지합니다.
폴더 사전 생성모델이 일을 시작하기 전에 빈 폴더(v1) 또는 직전 라운드 복사본(v2, v3)을 미리 만들어 둡니다. 폴더가 이미 있으면 덮어쓰지 않고 중단합니다.
한 번에 한 라운드라운드가 모두 끝나야 다음 라운드를 시작합니다. 서버에는 한 번에 한 모델만 올라가 있습니다.

네트워크 사용 감사 (2026-10-17 최종 집계): 셸 네트워크를 막지 않았으므로 실행 기록을 조사했습니다. 드래곤플라이트 v1~v3 실행 로그 45개(모델 15종 × 3라운드)에서 curl·wget, 외부 URL 요청, 패키지 설치, 외부 fetch, webfetch 시도를 찾았습니다. 근거는 로그에 남은 bash 호출 464회(v1 387회, v2 21회, v3 56회)와, 서브에이전트까지 포함한 도구 호출 전체 기록 957회(세 라운드 모두 15종, v1 451회, v2 204회, v3 302회)입니다. 결과는 셸 접속, webfetch, 패키지 설치, 외부 URL 요청이 모두 0건 / 결과물 반영 0건입니다. 정규식에 걸린 1건(v1 q38 의 npm ls -g)은 로컬 목록만 조회한 것이라 접속이 아님을 확인했습니다. 게임 파일 안의 외부 URL(실행 중 불러오는 주소)과 내려받은 라이브러리 흔적도 0건입니다(테트리스를 포함한 게임 폴더 90개 검사). 서브에이전트 사용이 로그에서 관찰된 실행은 v2 cn·q36 과 v3 mg 입니다(서브에이전트 내부 호출은 로그에 나오지 않고 도구 호출 기록에서만 보입니다). 실행기 자신이 임시 홈에 패키지를 내려받는 접속은 모델의 접속이 아니라 세지 않았습니다. 로그에 남지 않는 호출은 확인할 수 없는 범위입니다.

진행 순서: q36, cn, orn, mg, bolt, lfm, mcv, q38, aw, fn, ff, c7, c7r, c1, mel (mel 은 엔진을 바꿔야 해서 맨 마지막). 테트리스와 같은 순서입니다.

6. 진행 순서 (파이프라인)

모델 한 개당 다음 단계를 거치고, 15종 모두 같은 절차를 반복합니다.

 [폴더 준비]  v1: 빈 폴더 생성 / v2: 자기 v1 폴더를 복사 / v3: 자기 v2 폴더를 복사
      |
      v
 [샌드박스 에이전트 실행]  opencode + 지시문 (최대 60분, 서브에이전트 허용)
      |
      v
 [서버 로그 집계]  소요 시간, 요청 수, 입력/생성 토큰, 생성 속도,
      |            최대 컨텍스트 길이, 컨텍스트 잘림 여부
      v
 [자동 시험]  데스크톱 (v1, v2, v3 공통)
      |        모바일 터치 (v2, v3)
      |        아케이드 흐름 (v3)
      v
 [냉각 1분]  --> 다음 모델
      :
      v
 [블라인드 심사]  결과물에 익명 이름 A~O --> 점수 --> 이름 공개 --> 순위

서버 로그 집계: 에이전트가 끝나면 그 시간 동안의 서버 로그에서 해당 모델 몫만 뽑아 요청 수, 읽은 토큰(프롬프트), 생성한 토큰, 생성 속도(t/s), 최대 컨텍스트 길이, 컨텍스트 초과로 잘린 횟수를 계산하고 결과 폴더의 파일 목록과 크기도 기록합니다.

데스크톱 자동 시험 (헤드리스 Chrome, file:// 로 index.html 을 직접 열기, 제한 시간 약 4분)

  1. 페이지 로드, 콘솔 오류·예외 수집.
  2. 시작 시도: 화면 클릭, Enter, Space 입력. 크레딧 코인이 필요한 게임이면 먼저 코인을 넣어 봅니다.
  3. 가만히 두고 화면이 저절로 움직이는지(자동 발사, 적 하강, 배경 스크롤) 확인.
  4. ←/→ 키를 눌러 플레이어가 실제로 움직이는지, 방향이 맞는지 확인.
  5. 약 10초 동안 점수·거리·코인 숫자가 오르는지 확인.
  6. 마우스로 끌어서 움직이는지 확인.
  7. 일시정지 키가 있으면 멈췄다 풀리는지 확인.
  8. 게임 오버까지 가서 다시 시작이 되는지 확인.
  9. 각 단계마다 스크린샷을 저장합니다.

모바일 자동 시험 (v2, v3 · 화면 390x844, 터치 에뮬레이션, 제한 시간 약 3분)

  1. 휴대폰 크기로 로드하고 화면 맞춤(가로 스크롤 없음, 캔버스가 화면에 들어오는지) 확인.
  2. 화면을 탭해서 시작.
  3. 손가락 끌기(touchstart 에서 touchmove, 좌우)로 플레이어가 움직이는지 확인.
  4. 움직이는 동안 점수·거리·코인 숫자가 오르는지 확인.
  5. 게임 오버 뒤 탭으로 다시 시작이 되는지 확인.

아케이드 흐름 자동 시험 (v3 만, 제한 시간 약 7분)

  1. 크레딧 코인 투입(키보드, 터치 버튼)과 남은 크레딧 표시 확인. 게임 안에서 줍는 코인 숫자를 크레딧으로 착각하지 않도록 구분해서 읽습니다.
  2. 크레딧이 없을 때는 시작이 안 되고, 있을 때 시작되는지 확인.
  3. 현재 스테이지가 화면에 표시되는지 확인.
  4. 게임 오버를 일으켜 컨티뉴 카운트다운 화면이 나오는지, 크레딧을 써서 이어 하면 점수와 스테이지가 유지되는지, 시간이 지나면 타이틀로 돌아가는지 확인.

테트리스 시험과 다른 점: 슈팅 게임은 화면이 항상 움직이기 때문에 「화면이 바뀌었나」만으로는 입력에 반응했는지 가릴 수 없습니다. 그래서 플레이어의 위치를 왼쪽 입력 상태와 오른쪽 입력 상태에서 각각 캡처한 화면의 차이로 재서 반응과 방향을 판단하고, 점수·거리·코인은 화면에서 읽은 숫자가 실제로 오르는지로 판단합니다.

7. 채점

1000점 루브릭

각 라운드는 따로 1000점 만점입니다. 영역 2~6(코드 품질 600점)은 그 라운드 시점의 전체 코드에 같은 기준을 적용하고, 영역 1(기능 구현 400점)만 라운드의 과제에 맞춰 바뀝니다.

영역배점세부
1. 기능 구현400라운드별로 다름(아래 표)
2. 코드 간결성·가독성200중복 없음 60, 이름·상수 40, 죽은 코드 없음 30, 상태 관리 40, 주석 30
3. 컴포넌트·모듈 분리150관심사 분리(규칙·렌더링·입력·루프·사운드) 70, 응집·결합(적·아이템·보스가 데이터로 정의됨 등) 50, 확장 용이성 30
4. 패키지·의존성100외부 라이브러리·CDN 없이 오프라인 50, 불필요한 의존 없음 25, 표준 API 25
5. 파일·경로 배분100폴더 구조 40, 파일 이름 20, 상대 경로 25, 폴더 밖에 파일 없음 15
6. 문서 README50소개·실행·조작·파일 구성이 코드와 일치
합계1000

영역 1 — 라운드별 기능 구현 (400점)

라운드세부
v1 처음 만들기1-1 실행·안정성 100: file:// 로 바로 뜸 30, 콘솔 오류 0 20, 시작 입력 반응과 저절로 움직이는 화면 20, ←/→ 키 이동 15, 마우스 이동 10, 60초 연속 플레이와 일시정지 5. 1-2 핵심 규칙 150: 좌우 전용 이동과 자동 발사 20, 웨이브와 적 체력 25, 접촉 게임 오버·충돌·시작/다시 시작 15, 코인과 아이템 효과 25, 운석 경고 15, 보스 20, 점수 15, 난이도 상승 15. 1-3 드래곤플라이트다운 게임성 150: 화면 구성 35, 속도감 30, 타격감 30, 아이템 효과의 시각화 30, 연출 25
v2 터치 추가터치 조작 150(손가락 끌기 이동, 페이지 스크롤·확대 방지, 탭으로 시작과 다시 시작), 모바일 화면 맞춤 100(viewport, 가로 넘침 없음, 비율 유지, 글자 가독성), 기존 기능 유지 100(v1 대비 회귀 없음), 변경의 깔끔함 50(키보드·마우스·터치가 같은 이동 로직을 공유, README 정확)
v3 스테이지·크레딧·컨티뉴스테이지 100(보스 격파로 다음 스테이지, 갈수록 어려워짐, 화면 표시), 크레딧 100(키보드·터치 코인 투입, 크레딧이 있어야 시작, 남은 크레딧 표시, 게임 속 코인과 구분), 컨티뉴 100(카운트다운, 크레딧으로 이어 하기에서 점수·스테이지 유지, 시간 초과 시 타이틀), 게임 흐름 50(타이틀에서 컨티뉴까지 끊김 없음, 상태 전이가 한 곳), 기존 기능 유지 50

원작 에셋 복제 금지: 원작의 이미지·소리 파일, 캐릭터 이름·로고를 가져다 쓴 구체적인 증거(파일 이름, 코드 문자열, README)가 있으면 1-3 에서 10~30점 감점합니다. 직접 그린 도형, Canvas, CSS, WebAudio 합성은 정상이고, 지시문에서 온 dragonflight 라는 이름과 폴더 이름은 감점하지 않습니다. 심사자가 원작에 대해 확신하지 못하는 사실은 감점 근거로 쓰지 않습니다.

채점 방법

실용 순위

1000점 순위와 별도로, 600점 이상인 결과물만 모아 만드는 데 걸린 시간 순으로 나열한 「실용 순위」를 함께 냅니다.

속도는 1000점에 넣지 않았습니다. 같은 서버라도 모델 크기·엔진 설정에 따라 속도가 크게 갈려서, 속도를 점수에 섞으면 품질 비교가 흐려지기 때문입니다. 대신 쓸 만한 품질(600점 이상)을 갖춘 모델 사이에서 얼마나 빨리 끝냈는지를 별도 순위로 보여 줍니다.

8. 진행 기록과 한계

9. 결과 — v1

채점 방식: v1(처음부터 만들기)은 1000점 루브릭을 세 갈래로 나눠 채점했습니다. 1-1 실행·안정성과 1-2 게임 핵심 규칙(250점)은 QA 리뷰어가 헤드리스 Chrome 에서 직접 실측했습니다. 1-3 드래곤플라이트다운 게임성(150점)은 진행자(PM)가 QA 가 남긴 장면 스크린샷과 메모를 보고 채점했고, 2~6(코드 품질 600점)은 코드 리뷰어가 코드를 읽고 채점했습니다. 결과물은 A~O 로 익명 처리(블라인드)해 채점했고, 채점이 끝난 뒤 모델 이름을 공개했습니다. 게임이 돌지 않는 결과물은 루브릭대로 1-1 을 0점으로 했습니다.

품질 순위 (1000점)

열 머리의 1-1/100 은 「항목/만점」입니다. 2 코드 간결성·가독성, 3 컴포넌트·모듈 분리, 4 패키지·의존성, 5 파일·경로, 6 README 입니다. 「플레이 가능?」은 QA 실측으로 「적이 나오고, 맞히고, 죽고, 다시 시작」이 되는지를 본 판정입니다. 공동 12위는 제출 파일이 없는 4종입니다.

순위모델총점1-1/1001-2/1501-3/1502/2003/1504/1005/1006/50플레이 가능?플레이 링크
1q389031001441371621211009247가능 — 전 항목 정상(접촉 즉사가 아니라 HP 3 방식)열기
2ff87110014312615110210010049가능 — 전 항목 정상(보스는 확률적으로만 출현, Enter 가 아니라 Space·클릭으로 시작)열기
3orn8381001371181391039810043가능 — 정상(한 번에 한 기씩 등장, HP 5, 가로 창에서 캔버스가 비균등하게 늘어남)열기
4fn828100141118137921009644가능 — 규칙 대부분 정상(방어막이 접촉을 막지 못함, 시작은 클릭만)열기
5q367879413712111687989044가능 — 키로 시작하면 정상, 클릭으로 시작하면 ←/→ 키가 영구히 죽음열기
6cn66597756411881969044불가 — 시간 계산 오류로 적이 영구히 나오지 않고 점수가 음수로 시작열기
7mcv65385745411388989645불가 — 충돌식이 NaN 이라 탄이 아무것도 맞히지 못하고 시작부터 보스가 반복, 키보드 이동 불가열기
8bolt60475682812482989237불가 — 플레이어가 좌측 벽에 고정되고 검은 오버레이가 화면을 덮으며 적이 나오지 않음열기
9mg56008940116781009245불가 — 첫 프레임 예외로 루프가 죽어 검은 화면(실행 불가)열기
10lfm4440427106661009033불가 — 첫 프레임 예외로 루프가 죽음(실행 불가)열기
11mel4340381310558989032불가 — 시작해도 게임 루프가 돌지 않음(실행 불가)열기
12 (공동)c7r000000000파일 없음제작 실패
12 (공동)c7000000000파일 없음제작 실패
12 (공동)c1000000000파일 없음제작 실패
12 (공동)aw000000000파일 없음제작 실패

실용 순위 (600점 이상, 소요 시간순)

1000점 순위와 별도로, 총점이 600점 이상인 8종만 소요 시간이 짧은 순서로 나열했습니다.

순위모델총점제작 시간요청 수생성 토큰실제로 플레이 가능?
1mcv6532:4868,271불가(탄이 맞지 않음)
2bolt6043:07126,028불가(플레이어가 벽에 고정)
3orn8384:24717,014가능
4cn6654:26510,172불가(적 미출현)
5q367876:111225,393가능(클릭 시작 시 키 죽음)
6ff87111:511513,210가능
7q3890313:571317,439가능
8fn82833:2137834,907가능

실용 순위는 테트리스와 같은 규칙(총점 600점 이상을 생성 시간순)을 유지했습니다. 다만 이 시험은 코드 품질 비중(600점)이 커서, 핵심 루프가 고장 난 cn(적 미출현)·mcv(탄이 맞지 않음)·bolt(플레이어가 벽에 고정)도 600점을 넘었습니다. 실제로 플레이할 수 있는 것은 q38·ff·orn·fn·q36 5종입니다.

눈에 띈 점

심사 기록 (PM 판단)

해석 주의

시험의 한계

9-2. 결과 — v2

채점 방식: v2(모바일 터치 조작 추가)는 1000점 루브릭이 v1 과 다릅니다. 영역 1(400점)이 v2 과제로 바뀌어 1-1 터치 조작 150, 1-2 모바일 화면 맞춤 100, 1-3 기존 기능 유지 100, 1-4 변경의 깔끔함 50 이고, 영역 2~6(코드 품질 600점)은 v2 시점의 전체 코드에 v1 과 같은 기준을 적용합니다. 1-1·1-2·1-3(350점)은 QA 리뷰어가 모바일 에뮬레이션(390×844 등, 터치 입력) 과 데스크톱 v1 ↔ v2 비교로 직접 실측했고, 1-4 와 2~6(650점)은 코드 리뷰어가 v1 → v2 변경분과 전체 코드를 읽고 채점했습니다. 이번 라운드에는 진행자(PM)가 채점하는 점수 항목은 없고, 아래 「심사 기록」의 규칙 R3 만 적용했습니다. 결과물은 A~O 로 익명 처리(블라인드)해 채점했고, 채점이 끝난 뒤 모델 이름을 공개했습니다.

품질 순위 (1000점)

열 머리의 1-1/150 은 「항목/만점」입니다. 1-1 터치 조작, 1-2 모바일 화면 맞춤, 1-3 기존 기능 유지, 1-4 변경의 깔끔함, 2 코드 간결성, 3 컴포넌트·모듈 분리, 4 패키지·의존성, 5 파일·경로, 6 README 입니다. 1-1 의 소수점(145.5)은 70% 상한 적용 때문입니다. 공동 순위는 총점이 같은 경우입니다. 「v1 → v2」 열은 루브릭이 달라 단순 뺄셈으로 읽으면 안 됩니다.

순위모델총점1-1/1501-2/1001-3/1001-4/502/2003/1504/1005/1006/50터치로 플레이 가능?플레이 링크
1 (공동)ff8811509510044148991009847가능 — 터치 만점(끌기 이동·스크롤 방지·탭 시작/다시 시작), 회귀 없음, 오버레이·캔버스 탭 시작이 새로 가능해짐열기
1 (공동)q3888115099100361521131008942가능 — 터치 만점(1:1 상대 이동, 탭 즉시 다시 시작), 회귀 없음열기
3orn86815087100381481091009838가능 — 손가락을 정확히 따라감, 회귀 없음(캔버스가 CSS 로 좌우 압축됨)열기
4fn8641509810046142921009640가능 — 터치 만점, 회귀 없음, 터치로 시작이 새로 가능해짐열기
5mcv7851509110030107811009432가능 — 터치 이동·시작은 만점, 게임 자체는 v1 부터 ←/→ 키 무반응·탄 미명중열기
6cn774.5145.51001003396771009033가능 — 터치·화면 맞춤은 만점급, 게임 자체는 v1 부터 적이 한 번도 나오지 않음열기
7aw7561501004720140601009544가능 — 터치 만점, 단 사격·코인·보스가 없는 장애물 회피 게임열기
8q36709110851001596791009232부분 — 끄는 동안만 반쯤 따라오고 손을 떼면 시작 위치로 되돌아감, HUD 글자 작음열기
9mg544090042105771009238불가 — 제출 상태로 실행 불가(v1 부터), 터치 논리는 고친 사본에서만 확인열기
10bolt46706703106691009032불가 — v2 에서 변수를 중복 선언해 스크립트 전체가 실행되지 않음(v1 에서 되던 기능까지 회귀)열기
11lfm41506201073581009022불가 — 제출 상태로 실행 불가(v1 부터), viewport 메타가 없어 40% 축소 렌더열기
12mel4050450885551009022불가 — 제출 상태로 실행 불가(v1 부터), 터치로 시작할 수 없고 터치 방향이 항상 왼쪽열기
13 (공동)c7r0000000000파일 없음제작 실패
13 (공동)c70000000000파일 없음제작 실패
13 (공동)c10000000000파일 없음제작 실패

실용 순위 (600점 이상, 소요 시간순)

1000점 순위와 별도로, 총점이 600점 이상인 8종만 소요 시간이 짧은 순서로 나열했습니다.

순위모델총점제작 시간요청 수생성 토큰
1mcv7851:1591,722
2orn8681:3292,342
3aw7562:3488,412
4fn8643:48142,436
5q367094:04249,989
6cn774.54:21306,899
7q388815:55154,327
8ff8819:28378,127

실용 순위 규칙(총점 600점 이상을 생성 시간순)은 그대로입니다. 다만 cn(적이 나오지 않음, v1 부터)·mcv(←/→ 무반응과 탄 미명중, v1 부터)·aw(v1 이 비어 v2 에서 새로 만든 회피 게임, 사격·코인·보스 없음)는 터치·화면 과제를 잘해 600점을 넘었지만 게임 자체는 불완전합니다.

눈에 띈 점

v1 → v2 변화

v1 순위·총점은 위 9절, v2 는 위 표입니다. 두 라운드의 루브릭이 달라 점수 차이는 「이 과제에서 얼마나 잘 했나」의 변화이지 같은 잣대의 증감이 아닙니다.

모델v1 순위 / 총점v2 순위 / 총점변화한 줄 이유
ff2위 / 871공동 1위 / 881+10터치 만점(Pointer Events 로 마우스·터치·펜을 통합), 회귀 없음, 오버레이·캔버스 탭 시작이 추가됨
q381위 / 903공동 1위 / 881−22터치 만점·회귀 없음, 이동이 기존 update 를 우회해 1-4 는 36, v2 루브릭에는 게임성 항목이 없음
orn3위 / 8383위 / 868+30손가락을 정확히 따라가고 회귀 없음, 캔버스 좌우 압축은 v1 코드 그대로
fn4위 / 8284위 / 864+36기존 코드를 거의 건드리지 않고 터치를 얹어 1-4 최고, 터치 시작이 새로 가능해짐
mcv7위 / 6535위 / 785+132터치·화면 맞춤 양호, ←/→ 무반응과 탄 미명중은 v1 부터 그대로
cn6위 / 6656위 / 774.5+109.5터치·화면 맞춤은 만점급, 적이 나오지 않는 v1 결함은 그대로
aw공동 12위 / 07위 / 756+756v1 에서 파일 0개였다가 v2 에서 처음 게임을 만듦(사격·코인·보스 없는 회피 게임)
q365위 / 7878위 / 709−78터치 끌기가 손을 떼면 시작 위치로 되돌아가고 HUD 글자가 작아짐
mg9위 / 5609위 / 544−16v1 부터 실행 불가, 규칙 R3 로 실측 0
bolt8위 / 60410위 / 467−137변수 중복 선언 문법 오류로 스크립트 전체가 죽음 — 유일한 회귀
lfm10위 / 44411위 / 415−29v1 부터 실행 불가, 규칙 R3 로 실측 0
mel11위 / 43412위 / 405−29v1 부터 실행 불가, 규칙 R3 로 실측 0
c7r공동 12위 / 0공동 13위 / 00v2 에서도 파일 없음(생성 토큰 57개)
c7공동 12위 / 0공동 13위 / 00v2 에서도 파일 없음(생성 토큰 907개)
c1공동 12위 / 0공동 13위 / 00v2 에서도 파일 없음(생성 토큰 336개)

심사 기록 (PM 판단)

모델실행 불가 사유QA 원점수 1-1QA 원점수 1-3총점 변화
mgv1 부터 로드 직후 TypeError 로 루프 사망114100−214
boltv2 에서 touchActive 중복 선언 SyntaxError, 스크립트 전체 미실행4542−87
lfmv1 부터 const dt 재대입 TypeError 로 루프 사망84100−184
melEnter·Space 로만 시작하고 시작 뒤 requestAnimationFrame 재등록이 없어 루프 정지56.1100−156.1

해석 주의

시험의 한계

9-3. 결과 — v3

채점 방식: v3(스테이지·크레딧·컨티뉴 도입)는 영역 1(400점)이 v3 과제로 바뀌어 1-1 스테이지 100, 1-2 크레딧 100, 1-3 컨티뉴 100, 1-4 게임 흐름 50, 1-5 기존 기능 유지 50 이고, 영역 2~6(코드 품질 600점)은 v3 시점의 전체 코드에 같은 기준을 적용합니다. 영역 1(400점)은 QA 리뷰어가 데스크톱과 모바일 터치(390×844 에뮬레이션)에서 직접 실측했고, 줄 삭제처럼 도달이 오래 걸리는 상태(보스 체력, 게임 오버 등)는 상태를 주입해 확인하며 방법을 근거에 적었습니다. 영역 2~6(600점)은 코드 리뷰어가 채점했습니다. 이번 라운드에는 진행자(PM)가 채점하는 점수 항목은 없고, 아래 「심사 기록」의 조정 2건만 있습니다. 결과물은 A~O 로 익명 처리(블라인드)해 채점했고, 채점이 끝난 뒤 모델 이름을 공개했습니다.

품질 순위 (1000점)

열 머리의 1-1/100 은 「항목/만점」입니다. 1-1 스테이지, 1-2 크레딧, 1-3 컨티뉴, 1-4 게임 흐름, 1-5 기존 기능 유지, 2 코드 간결성, 3 컴포넌트·모듈 분리, 4 패키지·의존성, 5 파일·경로, 6 README 입니다. 「완주?」는 크레딧 → 시작 → 컨티뉴 → 타이틀의 흐름이 QA 실측에서 끝까지 이어졌는지를 본 판정입니다. 공동 순위는 총점이 같은 경우입니다. 「v2 → v3」 열은 루브릭이 달라 단순 뺄셈으로 읽으면 안 됩니다.

순위모델총점1-1/1001-2/1001-3/1001-4/501-5/502/2003/1504/1005/1006/50크레딧 → 시작 → 컨티뉴 → 타이틀 완주?v2 → v3 총점플레이 링크
1q389001008810050501631171008844완주 — 두 바퀴 통과(데스크톱·모바일), 컨티뉴 때 체력 회복·무적·필드 정리. 흠: 플레이 HUD·컨티뉴 화면에 남은 크레딧이 없음881 → 900열기
2fn81810076875050136941009530완주 — 두 바퀴 통과. 단 클릭·탭이 코인 투입과 시작·이어하기를 겸해 크레딧이 줄지 않는 무료 반복(게이트 우회), 모바일 탭 1회에 +2864 → 818열기
3ff800100847515501411021009736부분 — 시작·컨티뉴(점수·스테이지 유지)까지 정상이나 카운트다운이 0 이 돼도 타이틀로 돌아가지 않아 한 바퀴를 못 닫음. START 가 코인을 먼저 넣고, 코인 버튼 1탭에 +2881 → 800열기
4orn77498468545501261031009724부분 — 흐름은 돌지만 시작에 크레딧 게이트가 없고 이어 하기 뒤 체력 0·필드 미정리로 1.5~4.5초 안에 재사망868 → 774열기
5aw756729563405013478968840부분 — 컨티뉴가 장애물을 비우지 않아 즉시 재사망, 스테이지 HUD 숫자가 안 바뀌고 보스에게 줄 공격 수단이 없음756 → 756열기
6q3670798548040449779958832부분 — Space·Enter 한 번이 코인 투입과 시작을 겸해 게이트 없음, 게임 오버 화면은 무기한 대기, 별 배경 초기화 삭제로 매 시작마다 예외(v2 대비 회귀)709 → 707열기
7mcv64753855035478980959320불가 — 탄 판정이 NaN(v1 부터)이라 보스 처치·스테이지 상승·코인 불가, 컨티뉴에 재개 코드 없음785 → 647열기
8cn5898805325429982968618불가 — 시간 계산 오류(v1 부터)로 적이 영구히 나오지 않아 정상 플레이로 게임 오버에 닿지 못함774.5 → 589열기
9mg384000009469938840불가 — 첫 프레임 예외로 루프 사망(v1 부터), 실행 불가544 → 384열기
10 (공동)lfm337000008160938815불가 — const 재대입 예외(v1 부터), 로드 때부터 오버레이가 캔버스를 덮고 코인 투입 수단 없음415 → 337열기
10 (공동)bolt337000008064938812불가 — touchActive 중복 선언 문법 오류(v2 부터)로 스크립트 전체 미실행, 크레딧 투입 경로 자체가 없음467 → 337열기
12mel316000007058908612불가 — 시작해도 루프가 돌지 않음(v1 부터), 스테이지·보스 코드 없음405 → 316열기
13 (공동)c7r00000000000파일 없음0 → 0제작 실패
13 (공동)c700000000000파일 없음0 → 0제작 실패
13 (공동)c100000000000파일 없음0 → 0제작 실패

실용 순위 (600점 이상, 소요 시간순)

1000점 순위와 별도로, 총점이 600점 이상인 7종만 소요 시간이 짧은 순서로 나열했습니다.

순위모델총점제작 시간요청 수생성 토큰
1mcv6474:41911,030
2q367075:341317,864
3orn7745:555114,318
4aw7567:04621,519
5fn81815:534616,575
6ff80016:573418,358
7q3890020:535519,024

실용 순위 규칙(총점 600점 이상을 생성 시간순)은 그대로입니다. 다만 mcv 는 탄 판정이 NaN 이라 보스 처치·스테이지 상승·코인이 불가능한 채로(mcv 의 이 결함은 v1 부터 이어짐) 크레딧·컨티뉴 과제 점수만으로 600점을 넘었습니다. 크레딧 → 시작 → 컨티뉴 → 타이틀 흐름을 두 바퀴 끝까지 완주한 것은 q38·fn 이고(orn 은 흐름은 돌지만 크레딧 게이트가 없습니다), 나머지는 어딘가에서 끊깁니다.

눈에 띈 점

v2 → v3 변화

v2 순위·총점은 9-2절, v3 는 위 표입니다. 두 라운드의 루브릭이 달라 점수 차이는 「이 과제에서 얼마나 잘 했나」의 변화이지 같은 잣대의 증감이 아닙니다.

모델v2 순위 / 총점v3 순위 / 총점변화한 줄 이유
q38공동 1위 / 8811위 / 900+19요구한 흐름을 두 바퀴 완주, 상태 전이를 한 곳에 모으고 컨티뉴 때 필드를 정리해 무적을 줌
fn4위 / 8642위 / 818−46두 바퀴 완주하나 클릭이 코인 투입과 시작을 겸해 게이트를 우회, 모바일 탭 +2
ff공동 1위 / 8813위 / 800−81컨티뉴까지 정상이나 카운트다운이 0 이 돼도 타이틀로 안 가 한 바퀴를 못 닫음, START 가 코인을 먼저 넣음
orn3위 / 8684위 / 774−94크레딧 게이트가 없고 이어 하기 뒤 체력 0 으로 재개해 곧 재사망
aw7위 / 7565위 / 7560컨티뉴가 장애물을 비우지 않아 즉시 재사망, 스테이지·보스 구현이 얕음(총점은 우연히 같음)
q368위 / 7096위 / 707−2Space·Enter 가 코인+시작 일체(게이트 우회), 별 배경 초기화 삭제 회귀
mcv5위 / 7857위 / 647−138탄 판정 NaN(v1 부터)이라 보스 처치·스테이지 상승 불가
cn6위 / 774.58위 / 589−185.5적이 나오지 않는 v1 결함 그대로, 컨티뉴는 주입으로만 확인
mg9위 / 5449위 / 384−160v1 부터 실행 불가, 이번에는 새 기능 400점이 통째로 0
lfm11위 / 415공동 10위 / 337−78v1 부터 실행 불가, 코인 투입 수단도 없음
bolt10위 / 467공동 10위 / 337−130v2 의 문법 오류를 그대로 둠, 크레딧 투입 경로도 없음
mel12위 / 40512위 / 316−89v1 부터 실행 불가, 스테이지·보스 코드도 없음
c7r공동 13위 / 0공동 13위 / 00v3 에서도 파일 없음(생성 토큰 1,130개)
c7공동 13위 / 0공동 13위 / 00v3 에서도 파일 없음(생성 토큰 1,074개)
c1공동 13위 / 0공동 13위 / 00v3 에서도 파일 없음(생성 토큰 126개)

심사 기록 (PM 판단)

해석 주의

시험의 한계

10. 드래곤플라이트 종합 — v1 → v2 → v3 (완결)

세 라운드의 총점 평균으로 종합 순위를 냅니다. 테트리스와 같은 기준(종합 순위 = 3라운드 평균, 진행자(PM)가 정한 기준)입니다. 라운드마다 루브릭이 다르므로(v1 은 코드 품질 600점, v2 는 터치 실측 350점, v3 는 새 기능 실측 400점) 평균은 「세 과제를 두루 잘 했나」를 보는 값이지 한 잣대의 누적이 아닙니다.

종합 순위모델v1v2v33라운드 평균추세
1q38903881900894.7고르게 유지
2ff871881800850.7상승 후 하락
3fn828864818836.7상승 후 하락
4orn838868774826.7상승 후 하락
5q36787709707734.3계속 하락
6mcv653785647695상승 후 하락
7cn665774.5589676.2상승 후 하락
8aw0756756504v2 부터 유지
9mg560544384496계속 하락
10bolt604467337469.3계속 하락
11lfm444415337398.7계속 하락
12mel434405316385계속 하락
13 (공동)c7r0000계속 0 (파일 없음)
13 (공동)c70000계속 0 (파일 없음)
13 (공동)c10000계속 0 (파일 없음)

테트리스 종합과 나란히 보기

같은 15종의 테트리스 종합(3라운드 평균)과 드래곤플라이트 종합(3라운드 평균)을 나란히 놓았습니다. 두 시험은 루브릭이 달라 점수 자체의 비교보다 순위 변화를 보는 표입니다.

모델테트리스 평균테트리스 종합 순위드래곤플라이트 평균드래곤플라이트 종합 순위순위 변화
q38745.22위894.71위+1
ff886.51위850.72위−1
fn358.79위836.73위+6
orn539.88위826.74위+4
q36637.37위734.35위+2
mcv648.85위6956위−1
cn674.54위676.27위−3
aw737.53위5048위−5
mg645.86위4969위−3
bolt30710위469.310위같음
lfm282.711위398.711위같음
mel237.712위38512위같음
c7r013위 (공동)013위 (공동)같음
c7013위 (공동)013위 (공동)같음
c1013위 (공동)013위 (공동)같음

순위 변화는 「테트리스 종합 순위 − 드래곤플라이트 종합 순위」이며 +는 드래곤플라이트에서 더 높은 순위입니다. 두 시험의 상위 4위에 모두 든 것은 ff·q38 뿐이고, fn 은 +6(9위 → 3위), orn 은 +4(8위 → 4위)로 가장 많이 올랐으며 aw 는 −5(3위 → 8위)로 가장 많이 내려갔고 cn·mg 는 −3(4위 → 7위, 6위 → 9위)입니다.

다음 시험: 03 디펜스