kone
소미소프트

소미소프트

무기력 천사 추가 렉 개선 패치 (a.k.a 쯔꾸르는 최적화 쓰레기가 분명하다)

10/02/2025, 21:06:38
유틸
6693 views · 65 likes
1


예전에 재밌게 했던 게임이 번역 업뎃돼서 나왔다길래 싱글벙글 받다가

https://kone.gg/s/somisoft/a1G_g_HuKGN5b3dmtPMPKb?p=1&category=dMei1ni7DhSVLZ_7VR3Pyb

문득 아 이거 렉 개선 패치도 있었지 싶어서 뭔가 더 개선해봤습니다

D의 의지는 이어진다


이것도 일종의 엑조디아라 이전 패치 출처를 남기고 싶은데 식당이라 없어졌네요




후기 및 수정 사항

이거 제목에도 적어뒀다시피 패치 추가하면서 쯔꾸르는 최적화가 쓰레기임을 느꼈습니다

온갖 곳이 다 문제라서 어디를 막아야 할 지 모르겠어요


발견한 문제를 대충 적어보자면



얘네 일단 디버깅부터 제대로 안됩니다


쯔꾸르는 테스트플레이 시에 F12 디버거를 지원하는데요

일단 MV 자체가 거의 10년 되어가는 틀딱 툴이라 그런지 이거 키기만 하면 렉이 무지하게 걸립니다

아니 시발 키면 가만히만 있어도 프레임이 5 fps가 찍혀요


그래서 정상적으로 디버깅을 하려면 nw.js 사이트 가서 최신버전 sdk 받아서 물려서 써야 했습니다

그와중에 name이 지정되지 않았다는 오류를 띄우는데 이건 project.json에 있는 name 수정하면 해결되니까

혹시나 따라하실 분은 참고하십쇼



그리고 최신버전으로 받아서 써도 디버거를 키면 어쩔 수 없이 성능이 약간 떨어집니다

문제는 이 상태로 더 성능을 떨구는 프로파일링을 해야 하는데

이러면 문제를 파악하기가 더 힘들어집니다

힘들게 수정했는데 디버거 끄니까 성능 비슷한거 보고 현타 한번 왔었습니다



아무튼간에 주로 수정된 문제는 크게 두가지입니다

하나는 메뉴 관련이고 나머지 하나는 이미지 관련입니다


일단 메뉴 관련해서 가장 큰 문제는 쯔꾸르 측에서 다른 씬을 로드할 때마다

이전 씬을 완전히 새로 로드해야 한다는 거였습니다


이게 뭔 소리냐면,

1


여기서 아이템, 드레스룸, 세이브, 로드, 옵션은

현재 게임이 플레이 중인 맵과는 다른 장면 (씬)입니다


(놀랍게도 신체의 상태나 프로필은 맵 내에서 작동합니다, 그냥 커먼 이벤트로 돌아가는 거에요)


쯔꾸르에서는 장면을 넘어갈 때 이전 장면을 임시로 저장해둔 다음 다른 장면으로 넘어가고,

원래 장면으로 돌아갈 때 저장해둔 해당 장면을 다시 로드하는 식으로 작동합니다


그런데 그 저장이라는 게 말 그대로 어떤 씬인지만 저장을 해두고 넘어가서

다시 불러올 때는 해당 씬을 아예 처음부터 초기화해야 합니다



그러니까 여러분은 아이템이나 드레스룸 메뉴에서 나올 때마다

맵 하나를 통째로 로딩하고 있었다는 겁니다


식당으로 비유하면 자주 주문하는 고객의 전화번호를 저장해놨는데

진짜 전화번호만 저장해놔서 매번 정보를 새로 물어보는 겁니다


이게 초기화된 스프라이트 개수인데

1

지금 스샷 찍으니까 390개정도밖에 초기화 안하는 걸로 떴는데 원래 2273개 정도 떴습니다

기절할 뻔 했습니다

그 와중에 2273개중에 999개는 중요하지 않은 문제여서 현타가 와버렸습니다


아무튼간에 해당 문제를 개선하려고

맵에 한정해서 데이터를 임시저장하게 해뒀습니다

뭔가 되게 불안정할 것 같긴 한데 잘은 모르겠네요



쨌든 또 다른 문제는 이미지였는데

전임자분이 했던 이미지 관련 처리가 잘 작동하지 않은 것 같습니다

뭔가 이미지 관련 로딩이 많은 것 같아서 이미지 로딩 관련 함수를 바꿔치기했더니

1

1초만에 뭐 이딴 결과가 나왔습니다

1초만에 500개 가량의 이미지를 로딩하고 있더라고요


드레스룸 같이 캐릭터 이미지가 나오는 부분은 더 가관입니다

로딩하는 순간에 캐릭터와 관련된 이미지 432개를 싹 다 로딩해버립니다

시발 이러니까 렉이 걸리죠


좀 확인해보니까 문제가 뭐였냐면

커먼 이벤트에서 사용할 이미지를 미리 로딩하는 과정에서 문제가 발생했습니다


커먼 이벤트를 실행하기 전에

해당 커먼 이벤트가 참조하는 모든 이미지를 몽땅 다 미리 로딩해두는 거였습니다

첫 실행이 아니라 실행하는 도중에도 로드하는건지 초마다 아주 몇천개씩 요청이 날아가더라고요

1

아주 정신이 나갔습니다


아무튼간에 그래서 미리 로딩하는 기능을 아예 꺼버렸습니다

성능이 팍 올라가더군요

애초에 성능 올려두려고 넣어둔 것 같은 기능이 성능을 이따구로 잡아먹는다는 게 이해가 안갑니다



그 외에도 몇가지 자잘한 문제들이 있었는데 그나마 렉에서 비중이 큰 문제만 해결했습니다


예를 들면 텍스트 로딩과 관련한 몇가지가 있는데


일단 이 밑에 있는 텍스트

1

글자 하나마다 텍스트를 새로 그린겁니다

한번에 그리는 기능이 존재하는데도 하나씩 그리도록 되어있습니다

정상화했습니다


그리고 글자를 그릴때마다 텍스트의 정렬 위치를 설정하도록 되어있었는데

설정 자체에 꽤나 렉이 걸리는 것 같아서

정렬 위치가 이전과 달라졌을 때에만 설정하도록 수정했습니다



수정 안한 걸로는 이미지 캐싱의 사이즈와 암호화 관련이 있는데


쯔꾸르는 기본적으로 이미지를 캐싱해두긴 하는데

캐싱 한계가 10mb밖에 안되더라고요

근데 정작 올려도 큰 성능 차이는 안나는 듯해서 그냥 내버려뒀습니다

그나마 성능 차이 나는게 고화질 이미지인데

이미지 예약을 해둬야 안 내려가는 번거로움이 있어서 건드리지 않기로 했습니다


이미지의 암호화 여부도 영향을 미치긴 하는데

주요한 문제 해결하고 테스트해보니까 성능 차이도 크게 안나는 것 같고

스크립트에 이미지 일일히 암호화 해제하는 과정 추가해야 해서 그냥 놔뒀습니다




참고로 테스트를 많이 못해봤기 때문에 버그가 있을 수도 있습니다

댓글에 제보해주시면 시간 날 때 수정해보겠습니다


aHR0cHM6Ly9raW8uYWMvYy9jZHIxdVFYdFRKVVkxNFJtbzhQUEti

기간 1달

65
16 comments
10/02/25
고수다 고수 개추
10/02/25 Edited 10/02/25
감사합니다! 경로는 exe 파일과 같은 곳에 두면 될까요?
10/03/25
네 전부 다 Game.exe 파일이랑 같은 곳에 두고 실행하시면 됩니다
10/03/25
exe랑 같은 경로에 두고 실행인듯?
10/03/25
당신은 신이 맞네
10/03/25
ㄹㅇ 개노가다네 글자 하나하나 이미지인건 뭔 상황이었던거냐 ㅋㅋ
10/03/25
고수추
10/03/25
와 진짜 노가다에 쌩고생이었을텐데 고생하셨음
10/03/25
감사합니다!
최적화의 개념조차 없는 회사였구만 그나저나 파일이 fix 가 있고 prefix 가 있는데 둘 다 넣는게 맞나요? 설명이 없어서 prefix 이게 패치 기존 레거시인지 뭔지 모르겠어서 글 올려봅니다
10/03/25
patch.py 파일이 있을텐데 해당 파일과 fix, prefix 파일 전부 Game.exe와 같은 폴더에 놔두고 patch.py 실행하시면 됩니다 (파이썬 필요함) 생각해보니까 파이썬 관련으로 뭐 설정하는 걸 까먹고 안했네요
10/03/25
와 선생님 개추드립니다
10/03/25 Edited 10/03/25
마소스토어에서 파이선설치해서 patch.py 실행했는데 현재 폴더위치를 못찾아서 실행안되서 ./를 현재위치/로 수정해서 적용시킴 시작할때 로딩하고 메뉴 들어가고 나올때 로딩 짧아진게 확 느껴지네
10/05/25
와 더 개선될줄은 몰랐는데 고생하셨어요
10/19/25 Edited 10/19/25
전 파이참으로 실행 쉽게 할 수 있어서 괜찮은데 다른사람들은 그렇지 않다보니 pyinstaller.exe로 실행파일 만들었습니다 aHR0cHM6Ly9raW8uYWMvYy9hOWQ0a2dPZE55UlVQN0k5WUYtakti 위의 기간과 동일합니다
11/04/25 Edited 11/04/25

Deleted comment.

[손번역] 대리 업로드 Desert Stalker v0.20.3.1
번역
두파루파
05/27 4753 39
90일) RJ111049 Prison Fantasia v1.2.7z
복구
ㅇㅇ
05/27 2414 15
[구매보급] [자체번역] RJ01120129 로큰롤라이즈 (스캇/방뇨/료나/하드? ) 스캇은 선택지있음
번역
TSN
05/27 3934 21
[Dokuneko Noil]회사 송년회
동인
ㅇㅇ
05/27 7102 42
[Dokuneko Noil] 소라이 사키에게 나쁜 짓을 하는 이야기 【전편+후편】
동인
ㅇㅇ
05/27 5738 39
N.T.Resort에 오신 것을 환영합니다 게임 시스템 개요 & 스틸 장면 소개
정보
ㅇㅇ
05/27 3051 18
AI) 작가 팬네임 bnlhbmtvc2FraQ== / 캐릭터 이름 모리아 루루카 / 픽시브 140779512
영상
kawineo
05/27 10052 42
[Riboshika] 우리 누나는 세상에서 제일 강하고 멋있어.
동인
ㅇㅇ
05/27 9677 50
[미번] RJ01537503 유혹의 온천 여행 ~이성과 배덕의 1박 2일~ ver.2.0
미번
hdys1020
05/27 4501 26
[그냥복구] RJ146914 魔導士アルル 천재마도사 아루루
복구
meruna00
05/27 5480 32
ai ntr) 키타가와 마린 남친 몰래 코스프레섹스
야짤
ezmood
05/27 5252 38
[Miyahara Ayumu] 동정을 깨우쳐주는 유부녀
동인
1uF
05/27 7334 28
구매 보급 / 버전업 / 자체 번역) 만차율 300% 3 Append 1~3 ver.26.01.24 (공략집 추가)
번역
딸ㄱ기맛
05/27 11785 62
메○가키 스트리머와 오프파코 → 건방진 멘헤라가 내 고기오나홀로 타락할때까지
소리
카치마치
05/27 3556 25
(요청복구) 잠입! 의혹의 세뇌 SEX 컬트 종교 (潜入!疑惑の洗脳SEXカルト宗教) v250122
복구
redive
05/27 7057 29
alpha-라피아 애널자위
동인
k8625
05/27 7462 27
달콤달콤 소악마 3 ~초밀착 0거리 괴롭힘~
소리
카치마치
05/27 2388 23
검은파스타-애널병기
동인
k8625
05/27 6955 19
[구매보급][번역요청] RJ01577390 突然同居した従姉妹はVTuberになるらしい-俺だけが知る秘密の素顔-
미번
duck1028
05/27 4580 32
검은파스타-아나르왕국
동인
k8625
05/27 6497 28
[AI/이미지번역] 내숭쟁이 변태 시스터 아리아와 폭유 H하는 RPG
번역
미식이네
05/27 15446 83
TU1EdHlwZTg3 모음집 업데이트 알림
영상
hannanas
05/27 7168 25
스파이더그웬의 공식 설정 사건
동인
k8625
05/27 7535 16
[구매보급] 전자동 기계 조교 프로그램 Secretary [v1.1 의상 추가]
영상
밤꽃향기 그윽한 어느 여름날..
05/27 8994 59
[후원보급]bmFqYXI 텐카
영상
pangya
05/27 7631 90
[한글자막] 어째선지 같은 반 갸루들한테 열렬한 구애를 계속해서 받고 있는데, 나한텐 이미 좋아하는 애가 있다고!💢 (1편)
영상
실루엣21
05/27 19690 183
너스콜(RJ01557970) 복구 및 만차율3(RJ01347095) 복구
복구
그냥그냥
05/27 7979 38
(스압)Eonsang작가모음
동인
k8625
05/27 15349 109
[구매보급] [자체번역] RJ01117570 에로 검열관(the censor) 26.05.27
번역
gkqisq
05/27 20832 106
[구매보급/최면음성] 안노운 히프노 ~괜찮아, 내 목소리에 맡겨~
소리
rocoa
05/27 3715 31