11:16 07/24 금요일
날씨 정보 불러오는 중...

버그&개선요청

Total 12
Today 1
오픈월드 (기술테스트연구실) 개발 히스토리

오픈월드 (기술테스트연구실) 개발 히스토리

소스코드 주석 전수 추출본 — git 커밋 기록(2026-07-18 ~ 07-23) 및 6개 핵심 파일 주석 666여 건 정리

A. scene_3d.jsB. scene_client.jsC. ws_client.jsD. 서버 사이드

A. js/domain/scene/scene_3d.js클라이언트 3D 렌더링 / Three.js · 270건

A-1. 파일 헤더 & 기본 상수 (v1.x ~ v4.5)

[v1.2]Quaternius Stylized Nature MegaKit GLTF 로드 도입, 고정시드 PRNG로 모든 클라이언트 동일 레이아웃 구성
[v1.3]채팅방 배경이미지 바닥 기능 제거 후 실제 자연경관 바닥으로 대체
[v2.0]월드 10배 확장(반경 50→160), 4계절 바이옴(봄/여름/가을/겨울) 동서남북 배치, 야자수는 fern.glb 방사형 배치로 대체, 계절 틴트 적용(나무껍질/바위 원색 유지, 잎만 색 곱하기)
[v3.8]물/눈 텍스처, 하늘/구름(역구체+빌보드), 흙길 리본, 배경음악 계절 전환 및 탐험곡, 3D 캐릭터(치비 애니메이션) 도입
[v4.4]캐릭터 스케일 0.27로 축소 및 눈높이 재조정, 메가킷 68종 전체 반영(기존 20종에서 확장)
[v4.5]"0.98은 머리에 붙어보임" 피드백 반영으로 닉네임 간격 재조정

A-2. 그래픽 & 카메라 & 월드 크기 (v4.16 ~ v4.35)

[v4.16]"각지고 딱딱하다" 피드백에 따라 SMAA 포스트프로세싱 도입 (OutputPass 필수)
[v4.17]캐릭터 좌클릭시 하이라이트 및 멘션 콜백 연결
[v4.19]이동 클릭 시 물방울 파장 이펙트 생성, 선택 하이라이트 지속 표시
[v4.22]월드 20% 추가 확장, 안개 시야를 HUB_RADIUS 근처로 좁혀 탐험감 강화, 최대 줌아웃 120으로 조정
[v4.27]하늘 및 구름을 카메라 레이어 1 전용으로 분리 (미니맵 레이더에 잡히지 않도록 수정)
[v4.29]미니맵 방향모드 지원을 위한 up벡터 계산 및 공유
[v4.30]존 이름표에 접속인원/최대인원 표기 추가, 최대 줌인 30% 확대 (minDistance 4.2)
[v4.31]마우스오버 손모양 커서, 클릭판정 전용 투명 히트스피어(visible=true, opacity=0) 적용
[v4.33]"R 토글로 걷기/뛰기" — WALK_SPEED 중간값 기준 애니메이션 판별
[v4.34]캐릭터와 몬스터 타겟 하이라이트 색상 분리(황금색/붉은색), 몬스터 클릭 판정용 히트스피어 배치
[v4.35]타겟팅은 캐릭터·몬스터 중 하나만 유지, 사거리 벗어나면 자동 해제(바닥클릭으로는 안 풀림), 근접거리 자동 접근용 MELEE_RANGE export

A-3. 몬스터 시스템 도입 (v4.36 ~ v4.49)

[v4.36]MMORPG 전투 MVP 구현 — 몬스터 공격 시 서버에 데미지 판정 요청, HP바 도입, monsterIndex는 시드(seed)값으로 서버와 교환
[v4.40]그룹(트리오/escort) 어그로 연동, 스폰 지점 이탈시 리쉬 복귀 모션 추가, idle/walk 전환 위상차 적용으로 "몹 수백 마리 동시 동작" 버그 수정
[v4.45]공격 사거리 진입/이탈 상태를 서버에 통지(엣지 변화시에만), 사거리 안이면 idle 대신 공격모션 반복
[v4.46]몬스터 등급별 어그로 추격속도 차등 적용 (소형 -20% / 중형 -25% / 대형 -30%)
[v4.48]"몹은 매우 근접 공격만" 조건 반영 — 몬스터 사거리를 캐릭터보다 좁게 설정
[v4.49]groupSeed 위상차 보정으로 몬스터 동기화 동작 버그 완치

A-4. 나무 & 자연 에셋 대개편 (v4.53 ~ v4.76)

[v4.53]KayKit Forest Nature Pack 전면 교체("젤다/마리오3D월드 수준 캐주얼 경관"), 원본 스케일 보정(KAYKIT_SCALE_CORRECTION), 캐릭터도 KayKit Adventurers Pack 2.0으로 교체(메시/애니메이션 분리구조, 본이름 리타게팅), 공용 Rig_Medium 애니메이션 라이브러리, 무기/방패/장신구 프롭 부착
[v4.56]주먹/킥/구르기/휴식 모션 KayKit Combat/Movement/Simulation 팩에서 추가, "의자 없는데 앉는 포즈" 문제를 진짜 바닥앉기 클립으로 해결
[v4.57]야자수 잎 트로피컬 그린 틴트 적용, 가을숲 랜드마크를 제재소 건물로 교체
[v4.58]몹 공격 모션(Punch/Bite_Front) 추가, 점프 높이 3배 확대(프로시저럴 아치 추가), 구르기 모션 적용(클립+프로시저럴 회전), 여름/가을 밀도·색상 조정, 테마 건물 3배 확대
[v4.61]"kaykit 도배로 답답함" 피드백에 따라 legacy Quaternius를 다시 주력으로, 가중치 배치 전환
[v4.63]구르기를 Python 오프라인 리타게팅 클립(roll_retargeted.json)으로 교체, KayKit 자체 클립을 비동기로 진짜 텀블링으로 교체
[v4.64]점프 착지 이벤트 도입 (조작권 즉시 반환)
[v4.65]구르기 시 "땅속 뚫림" 버그 보정을 위해 root position 보정 트랙 추가
[v4.66]"모든 변형 다 써라" — 폴더 전체 변형 포함, 나무 3단계 크기(어린/보통/장성) 확률 배치, 앉기 중간단계 스킵
[v4.68]"화초/풀은 매우 많이, 그룹으로" — 클러스터(무더기) 단위 배치로 전환
[v4.69]"데모처럼 화사하고 입체감" — MeshToonMaterial + 계단 그라디언트맵(카툰 셰이딩) 도입
[v4.70]반투명 카드(잎/풀)는 Lambert 유지, 불투명 입체 오브젝트만 카툰 셰이딩 적용
[v4.72]지형 하이트필드(경사) 도입 — 허브는 평평하게 유지하고 바이옴 영역에만 경사 적용
[v4.73]지형 노이즈 파장 확대 (완만한 굴곡 표현)
[v4.74]지형 높이 격자 사전계산 처리 (바닥/캐릭터/몹/오브젝트 공통 참조)
[v4.75]겨울산 중심부 진폭 확대, 물 지역 지형 평탄화, 바이옴 색상 셰이더 직접 굽기
[v4.76]"단색 위주라 밋밋함" — 바이옴당 4색 팔레트 노이즈 블렌드, 겨울 바이옴은 서리 강도로 디테일 표현

A-5. 몬스터 클릭판정 & 전투 이펙트 & 사운드 정비 (v4.77 ~ v6.53)

[v4.77]선공형 중형 몹(어그로 범위 진입 시 선공) 도입, 중형 몹 총량 확대 (25→40마리)
[v4.78]안전지대 판정에 중앙광장 누락 버그 수정, 추격모드 중 안전지대 진입시 즉시 리쉬, 리스폰시 attackMode 강제 리셋(고스트 몹 방지), 구르기 무적, 리스폰시 group.visible 확정 복구, 지면 상대좌표 전환으로 "산에 눈 떠있는 버그" 수정
[v4.79]지면 색상 팔레트 명시적 색 이름 반영, 오솔길 옆 몹 추가배치, 미니맵 몹 점 등급별 차등, 보상아이템(포인트) 금색 동전 메시, 물약수량 옆 포인트 HUD 표시
[v4.80]"캐릭터/닉네임/아바타/펫 50% 확대" — CHARACTER_SCALE_MULTIPLIER 통합 상수 도입
[v4.83]"매번 줌인 불편" 피드백 반영 — 초기 카메라 거리 대폭 축소 (28.4→12)
[v4.89~v4.110]고스트 몹 진단 시리즈: GLB 로드 실패 진단로그, 클론 메시 0개 재시도(자가치유), frustumCulled 오탐 컬링 규명, 245마리 실측 스케일 재계산, 45종 눈검증 테스트 라인업(spawnMonsterTestLineup) 등 몬스터 미노출 버그 연속 추적 디버깅
[v4.98]펫이 플레이어의 위치 히스토리(자취)를 따라오도록 이동 로직 개선
[v4.0~v6.53]BGM & 사운드 개편: 트랙별 라우드니스(GainNode) 보정(최대 17.7dB 편차 완화), 여름 파도+갈매기 앰비언스 루프, 계절 파티클(눈/벚꽃잎), 전투 BGM(30% 증폭) / 허브 BGM(200% 증폭), 기본 필드곡 "평화로운마을(Caketown)", 전투용 곡 "Space Dimensions(8bit)" 교체 및 진입 시 페이드 없이 하드컷 전환 적용

A-6. [2026-07-23] 오늘 세션 — 5단계 등급, 사망모션, 전투 이펙트, 강공격, 림라이트

[2026-07-23]5단계 등급 확장: 에픽/보스는 비선공+광역배회로 신설, 사거리는 대형과 동일하게 유지해 카이팅 밸런스 확보, 배회반경 등급별 확장
[2026-07-23]사망 모션 정비: 몹 사망시 Death 클립 재생 후 서서히 투명화(재질 clone으로 종 전체 투명화 방지), 캐릭터 사망시 즉시 소환 대신 4~5초 눕는 모션(triggerCharacterDeathMotion, 자체 타이머 lockDuration)
[2026-07-23]전투 분산 & 이펙트: 여러 몹이 같은 타겟 추격 시 attackGroups 원형 분산, 몹끼리 겹침 방지용 경량 시각적 밀어내기(SEPARATION) 구현
[2026-07-23]경직 & 피드백: 반격 경직 넉백(프로시저럴 3배 확대 + 스쿼시&스트레치), 경직 지속시간 동안 별 3개 궤도 표시
[2026-07-23]시각적 예보: 분노(rage) 오오라(꽉찬 블롭) vs 예비동작(telegraph, 속빈 고리) 실루엣 차별화 재설계, 강펀치/강킥 적중 임팩트 버스트 및 dmg-heavy 강조 스타일 적용
[2026-07-23]몹 강공격 & PvP: 분노 상태 일격시 텔레그래프 링 크기/굵기 증대, PvP windup 중 행동 확실히 잠금(recoveryMs 추가 잠금)
버그 수정[CSS2D 위치 충돌]강펀치/강킥 시 체력바 자리에 링이 생기거나 데미지 숫자가 안 보이던 문제 — telegraph/dmg텍스트 CSS2DObject에 transform 애니메이션을 직접 걸어 렌더러의 위치 계산과 충돌하던 원인 수정(wrap/inner 엘리먼트 구조 분리)
버그 수정[고아 객체 누수]연속 telegraph 발생 시 이전 CSS2DObject가 메모리에 남아 하드리프레시 전까지 계속 깜빡이던 누수 현상 수정
[2026-07-23]림라이트(Fresnel) 셰이더 신규: EffectComposer/OutlinePass가 모바일에서 유실되는 문제를 해결하기 위해 재질에 onBeforeCompile로 직접 주입 (분노=빨강/주황, 예비동작=노랑→빨강)

B. js/domain/scene/scene_client.js클라이언트 이벤트 / HUD 로직 · 168건

B-1. 이동 & 속도 & 스태미나 (v2.3 ~ v6.59)

[v2.3]실수 클릭 방지를 위해 좌클릭 즉시 DM 방식을 우클릭(터치는 롱프레스) 유저카드 경유 방식으로 변경
[v2.4]거리비례 이동시간 착시 문제를 단순 고정속도 이동으로 정돈
[v2.5]"현재위치 캐시" 버그로 더블클릭시 순간이동급으로 튀던 현상을 실제 보간위치 직접 조회 방식으로 수정
[v6.54]스태미나 시스템 도입 (달리기=소모 자원, 걷기/정지/휴식=회복), 탈진 속도를 몹 추격 속도보다 느리게 설정하여 위기감 조성
[v6.59]스태미나 최대치를 50으로 축소 조정

B-2. 전투 입력 & HP/HUD & 모바일 UI (v4.5 ~ v25.39)

[v4.5]몹 반격으로 플레이어 HP 실제 차감 시작 (서버 authoritative)
[v6.36]타겟팅 상태에서 공격키 입력 시 근접거리까지 자동 접근 후 격투 개시
[v6.39]MMORPG 전투 MVP — 액션 발동시 타겟이 몬스터면 서버에 판정 요청(클라 데미지계산 금지), 좌상단 HP/MP/스태미나 게이지(아이온 스타일) 도입
[v6.43]'Q'(휴식) 키 입력 시 초당 5체력 자동회복(서버 authoritative), 로컬은 토글 및 시각표현만 담당
[v6.47]물약 즉시회복 구조에서 보유수량(재고) 모델로 전환하여 상시 표시
[v6.88]구르기 시 무적 판정 부여 및 스태미나 소모 (+1)
[v6.37~v7.06]모바일 UI 전면 개편: 액션 HUD(A/S/D/F/Space) 및 R/Q 버튼 도입, 가상 조이스틱(카메라 기준 이동), 회피 아이콘 변경(🤸), 채팅로그창 조이스틱-액션HUD 사이 배치 및 높이 저장 기능 추가
[v4.27~v25.39]미니맵 기능 고도화: 실사 렌더링 전환, 갱신주기 단축(250ms), ⚙아이콘 팝업 UI, 등급별 몹/유저 점 크기 및 회전모드(정면/고정) 제공

B-3. [2026-07-23] 오늘 세션 — 강공격, 사망 연출, 데미지 브로드캐스트

[2026-07-23]강공격 커맨드: 강펀치/강킥 더블탭 감지(HEAVY_DOUBLE_TAP_MS), isHeavy 플래그를 몹 및 PvP 공격 payload에 포함
[2026-07-23]피격 연출 강화: 몹 분노 상태 일격 피격 시에도 isHeavy 강조, 강공격 피격 시 캐릭터 경직(PvP 대칭 적용), 강펀치/강킥 적중 시 dmg-heavy 및 임팩트 버스트 연출(PvE/PvP)
[2026-07-23]지연 사망 모션: 사망 시 화면 이동만 지연시키는 "4~5초간 눕는 사망 연출" 적용
버그 수정[데미지 표시 범위 확대]기존 "나만 때렸을 때만 표시" 제한을 제거하여 MMORPG 컨벤션에 맞게 방 안의 모든 플레이어가 데미지 숫자를 공유하도록 수정
[2026-07-23]브로드캐스트 처리: 예비동작(telegraph) 색전환 타이밍 정확화(resolveAt 기준), windup 중 이동/행동 잠금, 분노 상태 일격 아이콘(‼️) 구분 표기

C. js/core/ws_client.jsWebSocket 메시지 라우팅 · 136건

C-1. 오픈월드 핵심 라우팅 & 펫 알림 (v4.82 ~ 2026-07-23)

[v4.82]오픈월드(tech-lab) 특성상 채팅로그가 숨겨져 있어 pet_reaction / pet_action_broadcast 이벤트를 @멘션과 동일한 팝업 알림 방식으로 대체
[v25.32]오픈월드에 위치할 때만 펫 말풍선 알림 수신 (귓속말은 내용 비공개 처리, "메시지를 보내왔습니다"로 표시)
[2026-07-23]scene_client.js import 연결 — 강펀치/강킥(더블탭) 구현을 위한 player_heavy_attack_telegraph 케이스 추가
[2026-07-23]림라이트 셰이더 관련 주석 및 scene_3d import 경로 정비
[기타 132건]채팅방/DM/SFU(화상회의)/게임엔진(퀴즈배틀·SGE·블루마블)/친구시스템 등 공통 채팅 인프라 케이스 핸들러 이력

D. 서버 사이드 (scene_handler.js / duel_handler.js / monster_spawn.js)서버 동기화 & 전투 핸들러 · 92건

D-1. 기반 구조 & 전투 리듬 (v4.0 ~ v4.49)

[v4.0]3D 좌표계 전환 (targetY→targetZ, CSS%→월드유닛)
[v4.2]월드 20% 확장 (WORLD_HALF_SIZE 상수를 클라이언트와 동기화)
[v4.4]MMORPG 액션 MVP 1단계 — 공격 → 실제 체력감소 → 사망 → 리스폰 루프 메커니즘 구축
[v4.6]몹 반격을 "피격시 1:1 턴제 반격"에서 "독립 페이스 자율 실시간 반격" 구조로 전환
[v4.8]몬스터 등급별 체력 및 반격 데미지 수치를 서버 authoritative로 일괄 관리
[v4.10]'Q' 휴식 상태 중 피격 시 자동 취소 처리 ("맞으면서 회복하는 버그" 수정)
[v4.40]그룹 몹 동시 어그로 연동 및 첫 반격 0.5초 스태거(시차) 부여
[v4.41]전투 이탈 판정을 "무공격 타임아웃"에서 "리쉬 반경 이탈시"로 개편
[v4.49]공격 속도 제한 부재 버그(애니메이션 무시 스팸 DPS) 수정

D-2. 리소스 & 고스트 몹 방지 (v4.40 ~ v4.79)

[v4.40]자동회복(30% 이하 시 재고 소비) 및 휴식 회복량을 최대체력 비율(5%/초)로 전환
[v4.79]등급별 보상 아이템(포인트) 드랍 확률 적용, 재접속시 물약/포인트 동기화 누락 버그 수정
[v4.78]고스트 몹 방지: 클라이언트 신고에 의존하지 않는 MONSTER_COMBAT_MAX_MS 하드 타임아웃 도입, 구르기 무적창 구현, 선공 감지 경로에 자가치유 리스폰 로직 추가

D-3. [2026-07-23] 오늘 세션 — 5단계 확장, 강공격 메커니즘, 서버 버그 수정

[2026-07-23]몬스터 5단계 확장: 에픽/보스 등급 신설(HP 대폭 증가, 공격력 완만 상승), 리스폰 타임 조정 (15→20초)
[2026-07-23]플레이어 강공격 서버 판정: 강펀치/강킥 더블탭 신규 적용 (2배 데미지, windup 700→1000ms, 후딜 recoveryMs 추가 잠금으로 스팸 방지)
[2026-07-23]몹 강공격 메커니즘: 몹 분노(enraged) 일격을 강공격으로 대칭 설정 (MONSTER_HEAVY_ATTACK_WINDUP_MS/RECOVERY_MS 신설, 예비동작 0.8→1.1초 재조정)
[2026-07-23]경직 & PvP 대칭: 경직시간 0.5→1→1.5초 재조정, 분노 지속시간 2초 조정. PvP(duel_handler.js)에도 동일 상수를 대칭 적용하여 명중 시 방어자 경직 부여
버그 수정 1[에픽/보스 공격 불가 버그]`monsterIndex > 200` 하드코딩 상한선으로 인해 확장 후 인덱스(254~257) 몹의 공격/반격/어그로가 무시되던 문제 수정 (`MAX_MONSTER_INDEX=300` 교체)
버그 수정 2[리스폰 즉시 재공격 버그]sibling-pull 로직이 매 타격마다 재실행되던 원인 수정 (`isFreshEngage` 플래그로 최초 진입시에만 실행되도록 제한)
[2026-07-23]monster_spawn.js 개편: 에픽/보스는 종당 정확히 1마리만 스폰 ("세계에 하나뿐인 월드보스"), 안전지대에서 배회반경만큼 더 떨어진 전용 스폰 함수 작성

댓글목록

등록된 댓글이 없습니다.

Total 12 1 페이지
번호
제목
글쓴이
날짜
조회