10월 8일 안정성 수정 패치 1.16.5a
- GTX 10 시리즈 바위 기둥 현상 우회 수정
- AMD 통합 그래픽 메모리 부족 오류 수정
- 글레이드 불러오기·저장 동기화 충돌 보강
- 계단 오류·가구 드래그·모니터 변경 충돌 수정
원문 전체 (한국어 번역) · Patch 1.16.5a - stability fixes
안녕하세요! 이번에도 이런저런 버그 수정 모음입니다.
게임이 이미 잘 돌아가고 있다면, 아주 좋습니다. 멋진 하루 보내세요! 그렇지 않다면 이번 패치가 도움이 될지도 모릅니다. 그리고 덕후스러운 장광설을 좋아하신다면... 잠시 머물러 이야기를 들어 보시게 👴📜
🐛 글레이드에 정체불명의 바위 "기둥"이 생기는 문제 수정
지형이 이상하게 늘어나 가늘고 엄청나게 높은 바위 석순 모양이 되고, 그게 깜빡이며 나타났다 사라졌다 한다는 제보를 몇 건 받았습니다. 한참 탐정 놀이를 해 보니, 원인은 GPU 쪽 메모리 덮어쓰기(memory stomping)였습니다. 이미지에 기록되어야 할 일부 (메타)데이터가 겉보기엔 전혀 상관없는 버퍼에 써지면서 그 내용을 망가뜨리고 있었던 거죠. 저는 이게 NVIDIA 드라이버 버그(혹은 하드웨어 버그)라고 보고 있고, Pascal 아키텍처(GTX 10x0 시리즈)에서만 발생하는 것으로 보입니다. 이 시리즈는 더 이상 기능 개선 드라이버 업데이트를 받지 못하기 때문에, 이제 Tiny Glade 자체에서 우회 처리를 하도록 했습니다.

🐛 AMD UMA OOM 수정
다들 TLA 좋아하시죠? (세 글자 약어 말이에요)
통합 메모리 아키텍처(UMA)를 쓰는 AMD 시스템, 그러니까 기본적으로 AMD 내장 그래픽을 쓰는 노트북과 미니 PC에서 메모리 부족(Out-Of-Memory) 오류가 보고되고 있었습니다.
그런데 이 오류가 정말 황당하고 이상했습니다. 그래픽 드라이버에 텍스처와 버퍼를 만들어 달라고 요청하면 드라이버는 "문제없어!"라고 답합니다... 그런데 막상 그걸로 게임 화면을 그리려고 하면 그제서야 "앗, 메모리 부족!"이라고 하는 거예요... 보통은 이렇게 돌아가지 않습니다. 다른 경우라면 텍스처와 버퍼를 생성하려는 시점에 OOM(메모리 부족) 오류가 났을 겁니다. 더 웃긴 건, 로그를 보면 시스템 메모리는 *넉넉하게* 남아 있었는데 드라이버가 그걸 쓰기를 거부하고 있었다는 점입니다.
간단히 말하자면, BIOS에서 "UMA Frame buffer size"를 "Auto"가 아닌 값으로 설정하면 기본적으로 앱이 쓸 수 있는 최대 VRAM에 *상한*이 걸리고, 드라이버는 그 이상으로 RAM을 그래픽용으로 할당해 주지 않습니다. 해결 방법은 두 가지입니다. 직접 "Auto"로 바꾸거나, 저희가 특수한 Vulkan 그래픽 확장 기능을 써서 드라이버에게 멍청하게 굴지 말라고 귀띔하는 것이죠. 이제 저희가 후자를 하고 있습니다 :P
🐛 글레이드 불러오기 과정의 경쟁 상태(race condition) 보강 및 수정
Tiny Glade는 게임 저장에 별도의 백그라운드 스레드를 사용합니다. 덕분에 끊김 없이, 그리고 수동 저장 없이도 세이브 파일을 계속 최신 상태로 유지할 수 있죠. 뭔가를 편집할 때마다 작은 데이터 패킷을 파이프로 보내고, 이 패킷이 저장 스레드에 도착하면 저장 스레드가 이를 꼼꼼하게 디스크에 기록합니다. 이 흐름을 조율하는 과정이 꽤 복잡해서, 메인 게임 스레드와 저장 스레드가 서로 어긋나 크래시가 발생하는 경우가 몇 가지 있었습니다. 이제 훨씬 안정적으로 동작할 겁니다.
🐛 잘못된 계단 구간 정리
특정 예외 상황에서 잘못된 계단 구간(예: 두 개의 계단 노드가 정확히, 비트 단위까지 똑같은 위치에 겹쳐 놓인 경우)이 생길 수 있었고, 이로 인해 꽤 오래전부터 크래시가 발생하고 있었습니다. 이후 그 구간과 상호작용하면 잘못된 계산이 생겨 게임이 패닉에 빠졌죠. 이제 이런 잘못된 구간은 조심스럽게... 무시됩니다.
🐛 소품을 드래그하면서 자동 소품 위에서 우클릭할 때 발생하는 크래시 수정
보통 어떤 게임 요소와 상호작용하는 중(예: 의자를 드래그하는 중)에는 다른 상호작용 코드가 입력을 무시하고 해석하려 들지 않아야 합니다. 의자를 드래그하면서 동시에 건물 크기를 조절할 수는 없으니까요. 그런데 게임플레이 시스템 중 하나가 지나치게 의욕이 넘쳐서 바로 그걸 하려 들었고, 내부 상태 관리를 엉망으로 만들었습니다. 이제 얌전히 굴겠다고 약속했습니다.
🐛 모니터 연결 해제/변경 시 발생하는 크래시 수정
이 건은 로그가 드문드문해서 정확히 무슨 일이 있었는지는 불분명하지만, *일부* 모니터 연결 해제/변경 시 게임이 가끔 크래시를 일으켰던 것으로 보입니다. 여러분이 저희보다 더 잘 아실지도 모르겠네요 ^^; 저희가 사용하는 서드파티 코드 쪽을 화나게 만들고 있었는데, 이제는 얌전히 동작할 겁니다.
🐛 로딩 화면에 아무 파일이나 드래그 앤 드롭할 때 발생하는 크래시 수정
크래시 리포트 데이터베이스에서 누군가가 게임 로딩 중에 PDF 파일을 끌어다 놓은 사례를 발견했습니다... 불쌍한 게임은 어쩔 줄 몰라 패닉에 빠졌죠. 예외 상황이 있다면 여러분이 반드시 찾아낸다는 걸 다시 한번 보여 주는 사례네요 하하. 잘하셨습니다, 정말 잘하셨어요.
🐛 사다리 아래 짧은 나무 계단 구간에서 기둥이 사라지는 문제 수정
가끔 짧은 구간 몇 개가 셋이서 겹쳐 서서 트렌치코트를 걸치고는 제대로 된 계단 지지대인 척하곤 했습니다. 그러고는 기둥까지 먹어 치워서 계단 아치가 이상하게 공중에 떠 있게 됐죠. 이 녀석들에게 나무 없는 식단을 처방했음을 기쁘게 알려 드립니다.
🐛 일부 파일 시스템의 외장 드라이브에 게임을 설치했을 때 발생하는 로딩 크래시 수정
macOS는 가끔 다른 파일처럼 _보이지만_ 실제로는 아닌 메타데이터 파일을 만드는 좀 별난 구석이 있습니다. 포토 모드용 이미지 필터(LUT)를 불러오는 코드가 모든 ".png" 파일을 불러오려고 했는데, 코드도 모르는 사이에 macOS가 ".somestuff.normalfilename.png" 같은 파일을 만들어 놓는 바람에 게임이 패닉에 빠졌습니다. 이 문제는 게임을 외장 드라이브에 설치했을 때, 그것도 애플만 아는 일부 경우에만 발생했습니다. 이제 코드는 이런 별난 파일을 건너뛰고, LUT 로딩 오류도 무시(단, 로그는 기록)합니다.
🛠️ 실행 시 폴더 권한 자동 수정
Tiny Glade는 데이터(세이브, 설정, 캐시 등)를 저장할 폴더를 만듭니다. 일부 시스템에서는 잘못된 권한 때문에 이 폴더를 만들려는 위치에 접근할 수 없었습니다. 이제 게임이 이를 감지하고 수정을 제안합니다.
저희 TED 강연을 들어 주셔서 감사합니다 🖖
사랑을 담아,
Tom & Ana








