문서의 이전 판입니다!
Core2026 버전 패치 내역
버전 패치 내역을 요약합니다.
실제 코드의 변경 내역은 https://gitea.hided.net/devsam/core2026/commits/branch/main 에서 확인할 수 있습니다.
최신 버전
개발 버전(훼)
커밋
마이너 최신 버전
(v0.1.0 edd962922e4a8c28129a8783d76d428ca91f3539)
퀘섭 최신 버전
(v0.1.0 edd962922e4a8c28129a8783d76d428ca91f3539)
주요 변경점
엔진 변경점
밸런스 수정
수정된 버그
기타 변경점
체섭 최신 버전
(v0.1.0 edd962922e4a8c28129a8783d76d428ca91f3539)
v0.1
v0.1.0
(2024-06-19) 커밋목록
주요 변경점
- 삼국지 모의전투 HiDCHe의 신규 버전을 공개합니다.
- 삼국지 모의전투 HiDCHe PHP의 전투·턴·명령·자원·권한·로그 동작과 처리 순서를 유지합니다.
- 신규 버전은 TypeScript와 Node.js를 사용하고 Gateway, Game API, Game Engine과 공통 로직 package로 구성합니다.
- 게임 진행 처리속도를 높입니다.
- 장수가 많은 1분 서버에서 NPC 행동과 전투 처리 지연을 줄이도록 게임 엔진과 저장 방식을 개선합니다.
- 880명의 NPC로 시작한 게임을 턴 대기 없이 진행했을 때 전투·점령·멸망을 거쳐 통일까지 8분 안에 완료했습니다.
- 게임 화면을 새로 구성합니다.
- 기존 화면의 정보 순서, 명령 흐름, 주요 색상·글꼴·지도·메뉴 배치를 유지합니다.
- Vue 3 기반 SPA로 구현해 화면 전환과 주소별 접속을 처리합니다.
- 500px 모바일 화면 구성을 더 많은 페이지에 적용합니다.
- 서버 선택 화면은 서버 정보와 입장 동작을 두 행으로 배치합니다.
- 남아 있던 레거시 페이지도 500px 모바일 화면 구성에 맞춰 가로 넘침과 요소 겹침을 줄입니다.
- 명령 입력, 지도 이동과 메뉴 조작은 touch 환경에 맞게 동작합니다.
- 게임 화면의 최신 정보를 자동으로 갱신합니다.
- 메인, 경매, 토너먼트, 설문 등 주요 화면에 게임 상태 변경을 실시간으로 반영합니다.
- 필요한 영역만 갱신하며 편집 중인 명령과 선택값을 유지합니다.
- 같은 계정으로 연 여러 browser tab의 설문·화면 상태를 현재 시즌 단위로 동기화합니다.
- 삼국지 모의전투 HiDCHe PHP의 기존 자료를 신규 버전으로 가져왔습니다.
- 기존 회원 계정과 권한을 이어서 사용합니다.
- 명예의 전당, 왕조 일람, 연감, 지난 플레이와 기존 장수·국가·전투 기록을 조회할 수 있습니다.
엔진 변경점
- 게임 엔진을 TypeScript로 다시 작성합니다.
- 전투, 월간 변화, NPC 행동과 국가 정책, 시나리오 규칙은 PHP 버전의 판정 순서와 결과를 기준으로 옮깁니다.
- seed 구성과 난수 소비 순서를 PHP 버전과 대조하며 후보가 하나뿐인 분기와 실패 분기도 같은 순서를 따릅니다.
- 전투 시뮬레이터도 같은 전투 규칙과 seed 계약을 사용합니다.
- 게임 API와 턴 데몬을 분리합니다.
- 게임 API는 요청을 검사하고 PostgreSQL input event로 접수합니다.
- 턴 데몬은 접수된 요청, 예약 턴과 월간 처리를 실행하고 변경된 게임 상태를 저장합니다.
- 턴 데몬은 게임 API와 별도 process로 실행하며 profile별 lease로 실행 주체를 관리합니다.
- 게임 진행에 필요한 계산과 저장을 빠르게 처리합니다.
- 게임 상태를 메모리에 읽어 명령과 월간 처리를 이어서 실행하고, 바뀐 자료를 모아 데이터베이스에 저장합니다.
- 880명의 NPC로 시작한 게임을 턴 대기 없이 진행해 747개월과 장수 턴 699,892회를 처리하고 8분 안에 통일에 도달했습니다.
- 게임 요청과 응답을 정해진 형식으로 검사합니다.
- Game API는 tRPC와 zod로 구현합니다.
- 요청·응답 schema, 인증, 권한, 오류와 게임 서버 범위를 API 경계에서 검사합니다.
- 인증 session과 서버 상태에서 장수·국가·소유자와 수행자를 결정합니다.
- 게임 상태를 한 번에 저장하고 중복 적용을 막습니다.
- PostgreSQL lease와 fencing token으로 각 게임의 턴 engine owner를 한 명으로 제한합니다.
- 실행 주체가 바뀌면 이전 engine owner의 뒤늦은 저장을 거부합니다.
- 명령, 월간 처리, 상태, 로그, 예약 턴과 처리 결과를 transaction 경계에서 함께 저장합니다.
- 같은 요청의 중복 실행을 억제하고 input event에서 처리 상태와 결과를 조회할 수 있습니다.
- 처리 중 오류가 발생하면 transaction을 rollback하거나 engine을 pause합니다.
- 경매 입찰·환급·마감·낙찰, 토너먼트 경기·정산과 설문 보상도 각 처리 단위에서 함께 저장합니다.
- 게임 자료 저장 구조를 바꿉니다.
- PHP 버전의 MariaDB 자료 구조를 신규 버전의 PostgreSQL 자료 구조로 옮깁니다.
- world, 장수, 국가, 도시, 명령, 외교, 메시지, 로그, 경매, 설문, 토너먼트와 archive를 schema와 migration으로 관리합니다.
- PostgreSQL commit을 게임 상태 변경의 완료 기준으로 사용합니다.
- 게임 자료 저장과 실시간 알림 전달을 분리합니다.
- Redis는 session, worker 전달과 실시간 알림을 담당합니다.
- durable change journal과 outbox로 실제로 바뀐 read model만 알립니다.
- 브라우저에는 SSE로 변경된 정보의 종류만 전달하고 필요한 영역을 다시 조회합니다.
- 여러 browser tab의 설문·화면 상태를 현재 시즌 단위로 동기화합니다.
- 게임 안의 시간을 실제 시계와 분리해 관리합니다.
- 장수 턴, 월간 변화, 메시지 유효기간, 경매·토너먼트 마감은 내부 게임 tick을 기준으로 처리합니다.
- 운영 중 턴 간격을 분 단위로 바꿔도 현재 시각, 턴 순서와 남은 턴 수를 유지합니다.
- 실제 시간을 기다릴 필요 없이 장기 게임을 고속으로 진행하거나 고정한 시각으로 단위 테스트를 실행할 수 있습니다.
- 가오픈 중에는 게임 시계를 멈추고, 재개 시 긴 backlog를 현재 기준으로 안전하게 보정합니다.
- 메인 시계는 Gateway의 실행 상태와 유효한 턴 엔진 lease를 확인하고, 엔진이 정지하면 시각 보정을 멈추고 상태를 표시합니다.
- 상태 조회 실패는 중립 상태로 표시합니다.
- 계정 로그인과 게임 접속 정보를 단계별로 확인합니다.
- Gateway session을 profile별 일회용 교환을 거쳐 game session으로 바꿉니다.
- 제재, Kakao 인증, 운영자와 테스트·복구용 특수 접근 자격을 서버에서 다시 판정합니다.
- 관리자 권한을 업무와 게임 서버별로 나눕니다.
- 회원, 공지, 감사, 서버 설정, 실행 상태, 초기화, 배포와 Gateway release 권한을 구분합니다.
- 관리자 작업의 요청자·대상·사유·결과와 오류를 감사 기록에 남깁니다.
- 서버 운영과 배포 작업을 자동화합니다.
- 서버 초기화, 예약 초기화, 가오픈·오픈, 일시정지·재개, DB 보존 배포와 완료 서버 종료를 상태 기계로 처리합니다.
- Gateway 자체 release는 현재 Gateway process 밖의 controller가 별도 queue로 처리합니다.
- 각 게임 서버는 선택한 Git commit에서 API·엔진·화면을 빌드하고 실행 중인 build commit을 표시합니다.
- build별 worktree와 정적 frontend artifact를 관리하고 사용 중인 release는 정리 대상에서 제외합니다.
- 선택형 브라우저 게임 알림은 추후 활성화할 예정입니다.
- 병력 전멸, 개인 메시지, 자율 행동·예턴 종료, 서버 가오픈·예약·오픈, 국가 멸망과 지정 연월 알림을 계정·게임 서버별로 선택하도록 설계합니다.
- 현재 버전에서는 브라우저 게임 알림을 발송하지 않습니다.
밸런스 수정
- 이번 버전에는 삼국지 모의전투 HiDCHe PHP 대비 의도적인 전투·경제·명령 수치 변경이 없습니다.
- 전투 결과, 명령 조건, 자원 변화, 경매·토너먼트·유산과 시나리오 수치는 PHP 버전 동작을 기준으로 옮깁니다.
- 계산·기술 상한·반올림·정렬·RNG 순서의 구현 차이는 신규 버전을 PHP 버전에 맞추는 호환 수정으로 처리합니다.
수정된 버그
- 삼국지 모의전투 HiDCHe PHP 기준
- 일반 장수 선택 pool에서 잘못된 난수 인자가 전달되어 장수 생성이 HTTP 500으로 실패하는 문제를 수정합니다.
- 신규 버전은 같은 후보·seed 계약으로 원래 의도된 선택과 생성을 수행합니다.
- 전쟁 기간이 양방향 외교 row에서 서로 달라져 한쪽에만 전쟁 0개월이 표시되거나 자동 종전이 늦어지는 문제를 수정합니다.
- 양쪽의 더 긴 전쟁 기간을 보존하여 같은 기간으로 맞추고, 종료 시 양쪽을 함께 통상으로 전환합니다.
- 외교 서신 조회 권한이 없는 메시지가 `삭제된 메시지입니다.`로 표시되는 문제를 수정합니다.
- 실제 삭제와 권한에 따른 본문 가림을 구분합니다.
기타 변경점
- 서버 선택 화면에서 오픈 건의문을 작성할 수 있습니다.
- 현재 서버 빌드에 포함된 시나리오와 옵션을 선택합니다.
- 관리자 화면을 업무별로 나눕니다.
- 사용자·권한, 서버 목록, profile 설정, DB 보존 배포, 시나리오 초기화, 잘못 연 게임 취소, 전역 공지, 감사 기록과 Gateway release를 별도 화면으로 제공합니다.
- 기존 PHP 자료를 안전하게 옮기는 관리 도구를 추가합니다.
- 이관 CLI는 dry-run을 기본값으로 사용합니다.
- 실제 반영은 명시적인 apply와 advisory lock, checkpoint, source·target 검사를 요구합니다.
- 손상되었거나 소유권을 확인할 수 없는 자료는 apply 대상에서 제외합니다.
- 메인 화면을 PHP 버전의 정보 순서에 맞춰 다시 구성합니다.
- 장수·국가·도시 정보, 지도, 장수 동향, 개인 기록, 중원 정세, 메뉴와 메시지를 한 화면에서 확인할 수 있습니다.
- 화면 갱신 중에도 편집 중인 명령과 선택값을 유지합니다.
- 지도 우측 하단의 조작부를 설정 버튼으로 바꿉니다.
- 도시명 표시와 터치 이동 방식을 지도 설정 메뉴에서 고를 수 있습니다.
- 작은 화면의 서버 선택과 게임 화면을 별도로 조정합니다.
- Gateway 서버 행은 작은 화면에서 정보와 입장 동작을 두 행으로 배치합니다.
- 게임 화면은 500px 모바일 화면 구성을 유지하면서 가로 넘침과 겹침을 줄입니다.
- desktop의 기존 표·메뉴 구조는 breakpoint 위에서 유지합니다.
- 인사부의 임명 화면을 다시 설계합니다.
- 승상·사마와 각 도시의 태수·군사·종사 자리에서 바로 장수를 바꿀 수 있습니다.
- 500px 이하 화면에서도 관직 표와 장수 선택 창이 가로로 넘치지 않도록 조정합니다.
- 발신자가 삭제한 메시지는 삭제된 자리만 남깁니다.
- 메시지 행과 만료 시각을 보존하고 원문은 폐기합니다.
- 토너먼트 대진표에서 참가 장수에게 바로 베팅할 수 있습니다.
- 설문 게시자는 현재 기수의 장수명으로 표시합니다.
- 명예의 전당에 유산 획득량 순위를 추가합니다.
- 완료된 기수에서 유산 획득량이 높은 장수를 최대 10명까지 표시합니다.
- 전투 시뮬레이터의 전투 계산을 브라우저에서 실행합니다.
- 1,000회 전투도 게임 서버에서 계산하지 않아 다른 이용자의 게임 진행을 느려지게 하지 않습니다.
- 계정 전용 아이콘과 게임 이미지를 `sam-image.hided.net` 서버에서 제공합니다.
- 새 버전이 준비되면 열린 게임 화면에 안내합니다.
- 60초 주기와 tab·network 복귀 시 배포 version 문서를 재검증합니다.
- 같은 tab에서 새 commit당 한 번만 안내하며 새로고침 시점은 사용자가 선택합니다.
- 계정 화면과 게임 화면의 운영 메뉴를 같은 설정으로 관리합니다.
- 유효한 공개 URL만 노출하고, 잘못된 설정은 배포 기본 메뉴로 되돌립니다.
- 전역 공지와 기존 로그에서 위험한 코드를 제거합니다.
- 허용 목록의 색상·강조·link 표현을 유지하고 저장형 script, event handler와 위험한 URL을 제거합니다.
- CHE 0기 정식 오픈 전 체계 점검용 `【공백지】 여명` 시나리오를 추가합니다.
- 일반 공백지 규칙을 상속하고 가동 전 월에 M장 50명을 생성하는 신규 버전 전용 시나리오입니다.