개발:패치_내역

문서의 이전 판입니다!


Core2026 버전 패치 내역

버전 패치 내역을 요약합니다.

실제 코드의 변경 내역은 https://gitea.hided.net/devsam/core2026/commits/branch/main 에서 확인할 수 있습니다.

커밋

(v0.1.0 edd962922e4a8c28129a8783d76d428ca91f3539)

(v0.1.0 edd962922e4a8c28129a8783d76d428ca91f3539)

주요 변경점

엔진 변경점

밸런스 수정

수정된 버그

기타 변경점

(v0.1.0 edd962922e4a8c28129a8783d76d428ca91f3539)

(2026-08-27) 커밋목록

주요 변경점

  1. 삼국지 모의전투 HiDCHe의 신규 버전을 공개합니다.
    1. 삼국지 모의전투 HiDCHe PHP의 전투·턴·명령·자원·권한·로그 동작과 처리 순서를 유지합니다.
    2. 신규 버전은 TypeScript와 Node.js를 사용하고 Gateway, Game API, Game Engine과 공통 로직 package로 구성합니다.
  2. 게임 진행 처리속도를 높입니다.
    1. 장수가 많은 1분 서버에서 NPC 행동과 전투 처리 지연을 줄이도록 게임 엔진과 저장 방식을 개선합니다.
    2. 880명의 NPC로 시작한 게임을 턴 대기 없이 진행했을 때 전투·점령·멸망을 거쳐 통일까지 8분 안에 완료했습니다.
  3. 게임 화면을 새로 구성합니다.
    1. 기존 화면의 정보 순서, 명령 흐름, 주요 색상·글꼴·지도·메뉴 배치를 유지합니다.
    2. Vue 3 기반 SPA로 구현해 화면 전환과 주소별 접속을 처리합니다.
  4. 500px 모바일 화면 구성을 더 많은 페이지에 적용합니다.
    1. 서버 선택 화면은 서버 정보와 입장 동작을 두 행으로 배치합니다.
    2. 남아 있던 레거시 페이지도 500px 모바일 화면 구성에 맞춰 가로 넘침과 요소 겹침을 줄입니다.
    3. 명령 입력, 지도 이동과 메뉴 조작은 touch 환경에 맞게 동작합니다.
  5. 게임 화면의 최신 정보를 자동으로 갱신합니다.
    1. 메인, 경매, 토너먼트, 설문 등 주요 화면에 게임 상태 변경을 실시간으로 반영합니다.
    2. 필요한 영역만 갱신하며 편집 중인 명령과 선택값을 유지합니다.
    3. 같은 계정으로 연 여러 browser tab의 설문·화면 상태를 현재 시즌 단위로 동기화합니다.
  6. 삼국지 모의전투 HiDCHe PHP의 기존 자료를 신규 버전으로 가져왔습니다.
    1. 기존 회원 계정과 권한을 이어서 사용합니다.
    2. 명예의 전당, 왕조 일람, 연감, 지난 플레이와 기존 장수·국가·전투 기록을 조회할 수 있습니다.

엔진 변경점

  1. 게임 엔진을 TypeScript로 다시 작성합니다.
    1. 전투, 월간 변화, NPC 행동과 국가 정책, 시나리오 규칙은 PHP 버전의 판정 순서와 결과를 기준으로 옮깁니다.
    2. seed 구성과 난수 소비 순서를 PHP 버전과 대조하며 후보가 하나뿐인 분기와 실패 분기도 같은 순서를 따릅니다.
    3. 전투 시뮬레이터도 같은 전투 규칙과 seed 계약을 사용합니다.
  2. 게임 API와 턴 데몬을 분리합니다.
    1. 게임 API는 요청을 검사하고 PostgreSQL input event로 접수합니다.
    2. 턴 데몬은 접수된 요청, 예약 턴과 월간 처리를 실행하고 변경된 게임 상태를 저장합니다.
    3. 턴 데몬은 게임 API와 별도 process로 실행하며 profile별 lease로 실행 주체를 관리합니다.
  3. 게임 진행에 필요한 계산과 저장을 빠르게 처리합니다.
    1. 게임 상태를 메모리에 읽어 명령과 월간 처리를 이어서 실행하고, 바뀐 자료를 모아 데이터베이스에 저장합니다.
    2. 880명의 NPC로 시작한 게임을 턴 대기 없이 진행해 747개월과 장수 턴 699,892회를 처리하고 8분 안에 통일에 도달했습니다.
  4. 게임 요청과 응답을 정해진 형식으로 검사합니다.
    1. Game API는 tRPC와 zod로 구현합니다.
    2. 요청·응답 schema, 인증, 권한, 오류와 게임 서버 범위를 API 경계에서 검사합니다.
    3. 인증 session과 서버 상태에서 장수·국가·소유자와 수행자를 결정합니다.
  5. 게임 상태를 한 번에 저장하고 중복 적용을 막습니다.
    1. PostgreSQL lease와 fencing token으로 각 게임의 턴 engine owner를 한 명으로 제한합니다.
    2. 실행 주체가 바뀌면 이전 engine owner의 뒤늦은 저장을 거부합니다.
    3. 명령, 월간 처리, 상태, 로그, 예약 턴과 처리 결과를 transaction 경계에서 함께 저장합니다.
    4. 같은 요청의 중복 실행을 억제하고 input event에서 처리 상태와 결과를 조회할 수 있습니다.
    5. 처리 중 오류가 발생하면 transaction을 rollback하거나 engine을 pause합니다.
    6. 경매 입찰·환급·마감·낙찰, 토너먼트 경기·정산과 설문 보상도 각 처리 단위에서 함께 저장합니다.
  6. 게임 자료 저장 구조를 바꿉니다.
    1. PHP 버전의 MariaDB 자료 구조를 신규 버전의 PostgreSQL 자료 구조로 옮깁니다.
    2. world, 장수, 국가, 도시, 명령, 외교, 메시지, 로그, 경매, 설문, 토너먼트와 archive를 schema와 migration으로 관리합니다.
    3. PostgreSQL commit을 게임 상태 변경의 완료 기준으로 사용합니다.
  7. 게임 자료 저장과 실시간 알림 전달을 분리합니다.
    1. Redis는 session, worker 전달과 실시간 알림을 담당합니다.
    2. durable change journal과 outbox로 실제로 바뀐 read model만 알립니다.
    3. 브라우저에는 SSE로 변경된 정보의 종류만 전달하고 필요한 영역을 다시 조회합니다.
    4. 여러 browser tab의 설문·화면 상태를 현재 시즌 단위로 동기화합니다.
  8. 게임 안의 시간을 실제 시계와 분리해 관리합니다.
    1. 장수 턴, 월간 변화, 메시지 유효기간, 경매·토너먼트 마감은 내부 게임 tick을 기준으로 처리합니다.
    2. 운영 중 턴 간격을 분 단위로 바꿔도 현재 시각, 턴 순서와 남은 턴 수를 유지합니다.
    3. 실제 시간을 기다릴 필요 없이 장기 게임을 고속으로 진행하거나 고정한 시각으로 단위 테스트를 실행할 수 있습니다.
    4. 가오픈 중에는 게임 시계를 멈추고, 재개 시 긴 backlog를 현재 기준으로 안전하게 보정합니다.
    5. 메인 시계는 Gateway의 실행 상태와 유효한 턴 엔진 lease를 확인하고, 엔진이 정지하면 시각 보정을 멈추고 상태를 표시합니다.
    6. 상태 조회 실패는 중립 상태로 표시합니다.
  9. 계정 로그인과 게임 접속 정보를 단계별로 확인합니다.
    1. Gateway session을 profile별 일회용 교환을 거쳐 game session으로 바꿉니다.
    2. 제재, Kakao 인증, 운영자와 테스트·복구용 특수 접근 자격을 서버에서 다시 판정합니다.
  10. 관리자 권한을 업무와 게임 서버별로 나눕니다.
    1. 회원, 공지, 감사, 서버 설정, 실행 상태, 초기화, 배포와 Gateway release 권한을 구분합니다.
    2. 관리자 작업의 요청자·대상·사유·결과와 오류를 감사 기록에 남깁니다.
  11. 서버 운영과 배포 작업을 자동화합니다.
    1. 서버 초기화, 예약 초기화, 가오픈·오픈, 일시정지·재개, DB 보존 배포와 완료 서버 종료를 상태 기계로 처리합니다.
    2. Gateway 자체 release는 현재 Gateway process 밖의 controller가 별도 queue로 처리합니다.
    3. 각 게임 서버는 선택한 Git commit에서 API·엔진·화면을 빌드하고 실행 중인 build commit을 표시합니다.
    4. build별 worktree와 정적 frontend artifact를 관리하고 사용 중인 release는 정리 대상에서 제외합니다.
  12. 선택형 브라우저 게임 알림은 추후 활성화할 예정입니다.
    1. 병력 전멸, 개인 메시지, 자율 행동·예턴 종료, 서버 가오픈·예약·오픈, 국가 멸망과 지정 연월 알림을 계정·게임 서버별로 선택하도록 설계합니다.
    2. 현재 버전에서는 브라우저 게임 알림을 발송하지 않습니다.

밸런스 수정

  1. 이번 버전에는 삼국지 모의전투 HiDCHe PHP 대비 의도적인 전투·경제·명령 수치 변경이 없습니다.
    1. 전투 결과, 명령 조건, 자원 변화, 경매·토너먼트·유산과 시나리오 수치는 PHP 버전 동작을 기준으로 옮깁니다.
    2. 계산·기술 상한·반올림·정렬·RNG 순서의 구현 차이는 신규 버전을 PHP 버전에 맞추는 호환 수정으로 처리합니다.

수정된 버그

  1. 삼국지 모의전투 HiDCHe PHP 기준
    1. 일반 장수 선택 pool에서 잘못된 난수 인자가 전달되어 장수 생성이 HTTP 500으로 실패하는 문제를 수정합니다.
      1. 신규 버전은 같은 후보·seed 계약으로 원래 의도된 선택과 생성을 수행합니다.
    2. 전쟁 기간이 양방향 외교 row에서 서로 달라져 한쪽에만 전쟁 0개월이 표시되거나 자동 종전이 늦어지는 문제를 수정합니다.
      1. 양쪽의 더 긴 전쟁 기간을 보존하여 같은 기간으로 맞추고, 종료 시 양쪽을 함께 통상으로 전환합니다.
    3. 외교 서신 조회 권한이 없는 메시지가 `삭제된 메시지입니다.`로 표시되는 문제를 수정합니다.
      1. 실제 삭제와 권한에 따른 본문 가림을 구분합니다.

기타 변경점

  1. 서버 선택 화면에서 오픈 건의문을 작성할 수 있습니다.
    1. 현재 서버 빌드에 포함된 시나리오와 옵션을 선택합니다.
  2. 관리자 화면을 업무별로 나눕니다.
    1. 사용자·권한, 서버 목록, profile 설정, DB 보존 배포, 시나리오 초기화, 잘못 연 게임 취소, 전역 공지, 감사 기록과 Gateway release를 별도 화면으로 제공합니다.
  3. 기존 PHP 자료를 안전하게 옮기는 관리 도구를 추가합니다.
    1. 이관 CLI는 dry-run을 기본값으로 사용합니다.
    2. 실제 반영은 명시적인 apply와 advisory lock, checkpoint, source·target 검사를 요구합니다.
    3. 손상되었거나 소유권을 확인할 수 없는 자료는 apply 대상에서 제외합니다.
  4. 메인 화면을 PHP 버전의 정보 순서에 맞춰 다시 구성합니다.
    1. 장수·국가·도시 정보, 지도, 장수 동향, 개인 기록, 중원 정세, 메뉴와 메시지를 한 화면에서 확인할 수 있습니다.
    2. 화면 갱신 중에도 편집 중인 명령과 선택값을 유지합니다.
  5. 지도 우측 하단의 조작부를 설정 버튼으로 바꿉니다.
    1. 도시명 표시와 터치 이동 방식을 지도 설정 메뉴에서 고를 수 있습니다.
  6. 작은 화면의 서버 선택과 게임 화면을 별도로 조정합니다.
    1. Gateway 서버 행은 작은 화면에서 정보와 입장 동작을 두 행으로 배치합니다.
    2. 게임 화면은 500px 모바일 화면 구성을 유지하면서 가로 넘침과 겹침을 줄입니다.
    3. desktop의 기존 표·메뉴 구조는 breakpoint 위에서 유지합니다.
  7. 인사부의 임명 화면을 다시 설계합니다.
    1. 승상·사마와 각 도시의 태수·군사·종사 자리에서 바로 장수를 바꿀 수 있습니다.
    2. 500px 이하 화면에서도 관직 표와 장수 선택 창이 가로로 넘치지 않도록 조정합니다.
  8. 발신자가 삭제한 메시지는 삭제된 자리만 남깁니다.
    1. 메시지 행과 만료 시각을 보존하고 원문은 폐기합니다.
  9. 토너먼트 대진표에서 참가 장수에게 바로 베팅할 수 있습니다.
    1. 설문 게시자는 현재 기수의 장수명으로 표시합니다.
  10. 명예의 전당에 유산 획득량 순위를 추가합니다.
    1. 완료된 기수에서 유산 획득량이 높은 장수를 최대 10명까지 표시합니다.
  11. 전투 시뮬레이터의 전투 계산을 브라우저에서 실행합니다.
    1. 1,000회 전투도 게임 서버에서 계산하지 않아 다른 이용자의 게임 진행을 느려지게 하지 않습니다.
  12. 계정 전용 아이콘과 게임 이미지를 `sam-image.hided.net` 서버에서 제공합니다.
  13. 새 버전이 준비되면 열린 게임 화면에 안내합니다.
    1. 60초 주기와 tab·network 복귀 시 배포 version 문서를 재검증합니다.
    2. 같은 tab에서 새 commit당 한 번만 안내하며 새로고침 시점은 사용자가 선택합니다.
  14. 계정 화면과 게임 화면의 운영 메뉴를 같은 설정으로 관리합니다.
    1. 유효한 공개 URL만 노출하고, 잘못된 설정은 배포 기본 메뉴로 되돌립니다.
  15. 전역 공지와 기존 로그에서 위험한 코드를 제거합니다.
    1. 허용 목록의 색상·강조·link 표현을 유지하고 저장형 script, event handler와 위험한 URL을 제거합니다.
  16. CHE 0기 정식 오픈 전 체계 점검용 `【공백지】 여명` 시나리오를 추가합니다.
    1. 일반 공백지 규칙을 상속하고 가동 전 월에 M장 50명을 생성하는 신규 버전 전용 시나리오입니다.
  • 개발/패치_내역.1787842487.txt.gz
  • 마지막으로 수정됨: 2026/08/27 23:54
  • 저자 hide_d