728x90
반응형

오늘은 LSB 서버 경제 추적 시스템 작업을 진행하였다.

기존에는 audit 계열 테이블들이 존재한다는 것만 알고 있었지만 실제로 어떤 기능들이 활성화되어 있는지, 그리고 서버 전체 길(Gil) 흐름까지 추적 가능한지는 확인하지 못한 상태였다.

우선 새롭게 server_gil_stats 테이블을 추가하여 서버 전체 길 흐름을 추적할 수 있도록 작업하였다.

현재 추적되는 항목은 다음과 같다.

  • server_gil_created
    • 몬스터 드랍 Gil
    • NPC 판매를 통한 Gil 생성
    • Lua addGil 계열
    • 서버 내부에서 새롭게 생성된 Gil
  • server_gil_destroyed
    • NPC 상점 구매
    • AH 등록 수수료
    • 바자 세금
    • 각종 Gil 소각 요소
  • server_gil_transfer
    • 직접 거래
    • 바자 거래
    • 경매장 거래
    • 유저 간 이동한 Gil 총량

특히 이번 작업에서 가장 중요했던 부분은 “서버 전체 Gil 생성/소멸량”을 한눈에 볼 수 있게 되었다는 점이다.

기존 audit 로그들은 대부분 개별 거래 추적용이었지만, 이번 통계 시스템은 서버 경제 자체의 흐름을 보는 데 목적이 있다.

예를 들어:

  • Gil 생성량이 비정상적으로 증가하는 경우
  • 소각량이 지나치게 낮은 경우
  • 특정 시점 이후 인플레이션이 급격히 진행되는 경우

같은 상황을 훨씬 빠르게 파악할 수 있게 되었다.

또한 작업 과정에서 LSB 내부에 기본적으로 구현되어 있던 감사(audit) 시스템도 다시 확인하였다.

현재 확인된 기본 로그 시스템:

  • audit_trade
    • 플레이어 직접 거래 로그
  • audit_bazaar
    • 바자 거래 로그
  • audit_vendor
    • NPC 상점 거래 로그
  • audit_dbox
    • Delivery Box / AH 배송 로그
  • auction_house
    • 경매장 원본 거래 기록

기본적으로 비활성화되어 있었던:

  • AUDIT_PLAYER_TRADES
  • AUDIT_PLAYER_BAZAAR

설정을 활성화하여 거래 로그가 정상 기록되는 것도 확인하였다.

특히 직접 거래 Gil 로그의 경우 itemid = 65535 형태로 기록되는 것을 확인하였으며, 이를 통해 고액 Gil 이동 추적도 가능해졌다.

추가로 Jeuno 지역 바자 세금도 다시 테스트하였다.

현재 retail 후반 기준으로는 세금이 제거된 상태였지만, 개인 서버 특성상 경제 안정화를 위해 1~5% 수준의 세금을 적용하는 것도 나쁘지 않다고 판단하였다.

예전 retail 시절 Jeuno 세금을 피하기 위해:

  • Rolanberry Fields
  • Batallia Downs

경계 지역에 수많은 바자 캐릭터들이 늘어서 있던 추억도 다시 떠올릴 수 있었다.

이번 작업을 통해 단순 기능 추가를 넘어 서버 운영에 필요한 경제 추적 기반이 상당 부분 갖춰진 느낌이다.

반응형
Posted by siguma
,
728x90
반응형

테일즈 오브 어라이즈 Beyond the Dawn Edition (Nintendo Switch 2) 리뷰

드디어 스위치2로 발매된 테일즈 오브 어라이즈

필자는 PS5용으로 플래티넘까지 획득 할 정도로 워낙 재미있게 플레이했던 작품이라
이번 Nintendo Switch 2용 테일즈 오브 어라이즈도 바로 구매하게 되었다.

결론부터 이야기하자면,
이식 자체는 생각보다 괜찮은 편이다.
다만 역시 가장 아쉬운 부분은 로딩 속도였다.

 

🎮 생각보다 괜찮은 스위치2 이식

기본적인 그래픽 퀄리티나 프레임 유지 자체는 무난한 편이다.
텍스처 품질도 휴대기 기준으로는 상당히 잘 유지되었고,
전투 연출이나 스킬 이펙트도 큰 다운그레이드 느낌은 적었다.

특히 우려했던 텍스처 스트리밍 문제는
FF7 리버스 스위치2 버전과 비교하면 훨씬 안정적인 편이다.

 

더보기

❌ 하지만 역시 가장 큰 문제는 로딩

사실 이 부분은 원작 발매 당시부터 이야기가 많았다.

테일즈 오브 어라이즈는
PS4 / PS5 양기종으로 동시에 발매되었는데,
당시에도 플랫폼에 따라 로딩 체감 차이가 상당히 컸던 작품이다.

특히 이 게임은 반복 전투 비중이 높은 RPG라
맵 이동과 전투 진입이 계속 반복된다.

PS5에서는 NVMe SSD 성능을 적극 활용해서
거의 로딩이 느껴지지 않을 정도였지만,
스위치2에서는 아무래도 체감 차이가 꽤 크게 느껴진다.

 

💾 Micro Express 메모리 채택에도 한계는 있었다

닌텐도도 스위치2에서
속도 개선을 위해 Micro Express 메모리를 채택했지만,
아직은 PS5급 SSD 체급과 비교하기엔 많이 부족해 보인다.

그래도 다행인 점은
텍스처 로딩 자체가 심각하게 깨지거나
오브젝트가 늦게 나타나는 수준은 아니라는 점이다.

반응형

🛠 PS5 버그까지 그대로 이식된 부분은 아쉬움

흥미로운 점은
PS5판에서도 있었던 버그가 그대로 남아 있다는 것이다.

대표적으로 장비 화면에서
무기 텍스처가 늦게 출력되는 현상인데,
스위치2 버전에서도 동일하게 확인된다.

단순 성능 문제가 아니라
엔진 구조 자체 문제에 가까운 느낌이다.

 


 

📌 개인적으로 가장 아쉬웠던 부분

의외로 프레임보다 로딩이 더 아쉬웠다.

  • 본 게임 30FPS
  • 이벤트 60FPS

이 구성 자체는 크게 불만이 없었다.
하지만 반복 플레이 구조상
로딩 체감은 계속 신경 쓰일 수밖에 없다.

조금이라도 로딩을 줄이고 싶다면
가능하면 본체 메모리에 설치해서 플레이하는 것을 추천한다.

 


❌ DLC 구성도 아쉬움

가장 실망했던 부분 중 하나는
늦게 발매된 이식판임에도
모든 DLC가 포함되지 않았다는 점이다.

게다가 기존 플레이 유저들을 위한
초반 그레이드샵 개방 같은 요소도 제공되지 않았다.

뒤늦게 발매된 완전판 성격의 이식이라면,
기존 유저와 신규 유저 모두에게
조금 더 편의성과 혜택을 제공했어야 하지 않았나 하는 아쉬움이 남는다.

 


🏆 PS5판 플래티넘 트로피까지 달성했던 작품

개인적으로 이 작품은 단순 클리어 정도가 아니라
PS5판에서 플래티넘 트로피까지 획득했을 정도로 인상 깊게 플레이했던 RPG다.

당시에도 전투 시스템과 연출, 캐릭터 구성은 상당히 만족스러웠고
특히 후반부까지 몰입감 있게 즐겼던 기억이 남아있다.

그래서 이번 스위치2 이식판도 기대를 가지고 구매했는데,
휴대용으로 다시 플레이할 수 있다는 점 자체는 충분히 만족스럽다.

다만 이미 PS5판을 경험했던 입장에서는
아무래도 SSD 기반 로딩 차이가 크게 체감될 수밖에 없었다.


⭐ 점수 (주관적)

  • 그래픽 이식 완성도: ⭐⭐⭐⭐⭐⭐⭐☆☆☆ (7 / 10)
  • 휴대성·접근성: ⭐⭐⭐⭐⭐⭐⭐⭐☆☆ (8 / 10)
  • 로딩 최적화: ⭐⭐⭐⭐☆☆☆☆☆☆ (4 / 10)
  • 추가 구성·DLC 구성: ⭐⭐⭐☆☆☆☆☆☆☆ (3 / 10)

총점: ⭐⭐⭐⭐⭐⭐☆☆☆☆ (6 / 10)

 


🧾 총평

스위치2로 어디서든
테일즈 오브 어라이즈를 즐길 수 있다는 점은 상당히 매력적이다.

다만 이 작품은 원래부터
고속 SSD 환경에서 강점을 보였던 게임인 만큼,
로딩 체감 차이는 생각보다 크게 느껴진다.

그래도 휴대성과 안정적인 이식 자체는 나쁘지 않은 편이며,
테일즈 팬이라면 충분히 소장 가치는 있는 버전이라고 생각한다.

반응형
Posted by siguma
,
728x90
반응형

이번에는 Yagudo Avatar와 Kirin의 Astral Flow 구조를 다시 정리하는 작업을 진행했다.

처음에는 Yagudos_Avatar 쪽이 제대로 동작하지 않는다고 판단해서 DB와 Lua를 이것저것 크게 건드렸는데, 결론적으로는 공용 구조를 잘못 이해한 상태에서 괜히 삽질한 부분이 많았다.

특히 가장 크게 헷갈렸던 부분은 이 구조였다.

  • Yagudo_Avatar = 본체 NM
  • Yagudos_Avatar = Astral Flow 전용 임시 소환수
  • Tzee_Xicu_the_Manifest = 소환사 타입 HNM 본체
  • Kirins_Avatar = Kirin의 AF 전용 아바타

처음에는 각 소환수마다 개별 skill_list를 만들어야 하는 줄 알고, Yagudos_Avatar에 별도의 30004 skill_list를 만들어서 아바타 필살기를 직접 등록하는 방향으로 테스트를 진행했다.

하지만 실제 LSB 구조를 다시 추적해보니 핵심은 DB가 아니라 공용 Lua mixin 구조였다.

실제 동작 흐름은 다음과 같았다.

mob:useMobAbility(734) -- Astral Flow

scripts/actions/mobskills/astral_flow.lua

mob:getID() + ASTRAL_PET_OFFSET

scripts/mixins/families/avatar.lua

즉, 아바타 모델 선택과 필살기 사용은 이미 공용 avatar mixin 안에서 처리되고 있었다.

결국 내가 만들었던 30004 skill_list는 필요 없는 테스트 데이터였고, 실제 적용도 되지 않는 상태였다.

확인 결과 원래 정상 DB 구조는 다음과 같았다.

Yagudo_Avatar      skill_list_id = 270
Yagudos_Avatar     skill_list_id = 34
Tzee_Xicu          skill_list_id = 360
Kirins_Avatar      skill_list_id = 34

특히 이번 작업에서 가장 허탈했던 부분은 Kirin이었다.

기린은 IDs.lua에 별도 pet ID 상수를 추가하지 않았는데도 Astral Flow가 정상 동작하고 있었는데, 이유는 단순했다.

mob:setMobMod(xi.mobMod.ASTRAL_PET_OFFSET, 5)

이 한 줄로:

Kirin 본체 + 5 = Kirins_Avatar

를 직접 계산하고 있었기 때문이다.

즉, 애초에 IDs.lua에 추가할 필요도 없는 구조였다.

결국 이번 작업의 결론은 이렇다.

  • 괜히 DB를 크게 건드릴 필요가 없었다.
  • 공용 families/avatar.lua 구조를 제대로 이해하는 게 우선이었다.
  • LSB는 이미 공용 구조를 만들어놨는데, 문제는 그 구조를 이해하기 어렵다는 점이다.
  • 특히 Astral Flow 관련은 DB보다 Lua 흐름 추적이 훨씬 중요했다.

솔직히 이번 작업은 결과보다도 “왜 이렇게 만들어놨는지 이해하는 시간”이 훨씬 오래 걸렸다.

공용 파일로 처리할 거였으면 최소한 구조라도 좀 더 명확했으면 좋았을 텐데, 결국 하루 종일 로그 찍고 DB 확인하고 테스트만 반복했다.

 

확인된 것:
- DB 30004 방식은 불필요했다.
- Yagudo_Avatar / Yagudos_Avatar / Tzee DB는 정상화했다.
- Kirin처럼 공용 avatar mixin 구조로 AF 자체는 동작한다.
- 문제는 “Yagudos_Avatar만 트러스트까지 데미지가 안 들어가는 원인”은 끝내 확정 못했다.

보류:
- avatar mixin / mobskill AoE / trust 대상 판정 차이
반응형
Posted by siguma
,