출처는 유니티 블로그.
원제는 'Cuphead developer’s tips to optimize for Nintendo Switch'입니다만
팁이라기보단 후기에 가깝습니다.
요약
- 유니티 내장 프로파일러, 닌텐도 CPU 프로파일러로 병목 구간 빡세게 최적화함
- 스프라이트를 팩킹(전에는 45,000개 이상의 스프라이트를 쌩으로... 쓰고 있었음) 하고 ASTC 포맷으로 압축해서 메모리 사용을 최적화
- 어셋 번들 잘 활용함
- 쉐이더 로딩이 무거웠는데 쉐이더 바리언트 콜렉션 써서 사전에 로딩(preload shader)하게 함.
- 포즈, 로드, 리스타트 시에 GC 돌림. 근데 컵헤드가 너무 어려운 게임(자꾸 죽어서 리스타트 하니까)이라 GC를 체감할 일은 거의 없음.
사족1: GC는 메모리 상에 쌓인 쓰레기를 치우는 행위이고 유니티에선 이때 필연적으로 프레임 드랍이 발생함(보헴GC)
GC는 엔진단에서 자동으로 돌려주는데 전적으로 엔진단에 맡기면 게임 플레이 중에 프레임 드랍이 일어날 수도 있으니
포즈, 로드, 리스타트 같은 타이밍에 임의로 GC를 돌렸다는 건데 다만 게임이 어려워서 애초에 GC를 잘 체감하기 어려웠을 것이란 얘기.
사족2: 블로그에는 나와있지만 않지만 스위치판 이후로 11기가 -> 3기가로 용량이 확 깍인 게 팩킹 안 하고 생으로 스프라이트를 쓴 게 이유였으리라 짐작됨.
사족3: 팩킹 => 이미지를 한데 모아서 쓰는 것(아래 참조)
아,그렇구나... 암튼 한글화 땡큐!!
근데 저정도 최적화는 다른 게임에서는 일반적인 수준인데.. 처음엔 딱히 퍼포먼스 최적화는 염두에 두지 않고 개발했던듯
이제 최적화를 했습니다 로 읽히는건 기분탓인가
엑박원이랑 피씨판은 그냥 성능빨로 밀어도 되니까 굳이 최적화도 빡세게 안 했었나 보네요ㅋㅋ
이런 글 보면 역시 게임은 아무나 만드는게 아니네요. 아무리 멋진 그래픽이라도 최적화가 못 따라주면 똥이 되어버리니
아,그렇구나... 암튼 한글화 땡큐!!
지금 내모습ㅋㅋㅋㅋㅋ
유니티 엔진단에서 팩킹안해주나 ㄷ ㄷ ㄷ
기능은 있는데 초기엔 안 썼다는 듯
이런 글 보면 역시 게임은 아무나 만드는게 아니네요. 아무리 멋진 그래픽이라도 최적화가 못 따라주면 똥이 되어버리니
엑박원이랑 피씨판은 그냥 성능빨로 밀어도 되니까 굳이 최적화도 빡세게 안 했었나 보네요ㅋㅋ
음... 완벽히 이해했어
팩킹은 로딩문제아닌가요? 용량줄었다면 근본적으로 리소스들 다이어트 시킨듯하고.
팩킹하면 똑같은 저장공간에 더 많은 이미지를 저장 할 수 있어서 용량감소에 큰 도움이 됩니다
로딩도 빨라지고 CPU 부하도 줄고 용량도 줄어듭니다.
팩킹은 보통 최적화 때문에 합니다...CPU부하가 엄청나게 줄어들거든요... 최적화 아니면 이득보는거에 비해 해야될게 너무 많아서 굳이 할 이유가 없음...
저렇게 최적화 하려면 개발 기간이 또 늘어나버리니...이해는 감..
즉 안죽고 계속 플레이하면 렉이 걸린다는건가?
일시정지, 로드, 리스타트 를 안하면서 계속 플레이하면 GC할때 드랍이 일어날 수 있다는 소린데 저 3작업을 안하고 컵헤드를 한다는건 걍 진행 안하고 가만히 서있는다는 소리..
근데 저정도 최적화는 다른 게임에서는 일반적인 수준인데.. 처음엔 딱히 퍼포먼스 최적화는 염두에 두지 않고 개발했던듯
최초의 개발진은 3명이었고...... 나중에 개발상황이 입소문을 타면서 늘어난게 20명이니 사실 소규모 개발팀 특성상 이해될만한 부분이죵
출발이 소수라.. 엔지니어가 그걸 생각안할리는 없으니... 염두에 두지않았다기 보다는 뒤로 돌린거겠죠
최적화 작업이라는게 잘돌아가면 굳이 할필요가 없긴 합니다...
본문 내용은 음...그러니까...최적화를 잘했다?
이챠돈
스테디아 사양 보시면 리소스 무한 아닙니다
이챠돈
나중에 가면 왠만한 게임회사는 스트리밍사업 시작할거 같은데 독점 게임 때문에라도 콘솔은 안망할듯
이챠돈
스테디아 연산량도 한계가 있는데요...
여튼 개발자의 스위치 최적화 노고에 감동먹고 게임분위기에 어울리는 한글 글씨체를 표현해 주신점에 압도적 감동을 먹음
확실히 최적화는 개발자들의 많은 노력이 들어가네요. 신적화인 게임들은 진짜 개발자들을 갈아넣은거나 마찬가지인듯..
저 물량의 텍스쳐를 아틀라스 안쓰고 쌩으로 교체....? ....?!?
이제 최적화를 했습니다 로 읽히는건 기분탓인가
정답...!
성능으로 밀어버려서 그런지 PC 인디겜에 유독 발적화가 많음.. 그래픽은 구데기인데 성능 요구 하는 거 보면 기가 참
1.최적화개념이 없는경우 2.테스트용 저사양PC가 따로없어서 그냥 자기PC기준으로 사양잡고 출시하는경우 3.최적화작업까지 하다간 출시 못할거같아서 나중에 패치하겠단 생각으로 일단 그냥 출시하는경우
삭제된 댓글입니다.
뮌헨챔스우승
이 글은 딱히 스위치판의 단점 같은 걸 써둔 내용은 아닌데요...
컵헤드 엄청 단순한 게임인데 가베지 콜렉션이 자주 생기나? 총알 생성, 삭제 때문에 그런가
아틀라스 작업도 안해둔걸 보면 다른 부분도 알만하지 않을까요
자주안생겨도 슈팅게임은 중간에 프레임드랍 생기면 빡치니까 리스타트 같은거 할때 치우도록 임의로 잡아놓음...근데 게임자체가 난이도때문에 리스타트를 워낙 많이해서 그나마도 프레임드랍 일어날만큼 쓰래기가 쌓인경우가 거의 없을거다 라는뜻...
전에는 아틀라스를 안썼다는 건가? 저거 요즘은 자동으로 할수 있는데..
와...PC나 콘솔에선 4,5000개 스프라이트를 쌩으로 써도 돌아가는구나...뭐 잘 돌아가면 굳이 팩킹할 필요없긴 하지...
- 포즈, 로드, 리스타트 시에 GC 돌림. 근데 컵헤드가 너무 어려운 게임(자꾸 죽어서 리스타트 하니까)이라 GC를 체감할 일은 거의 없음. ㅋㅋㅋㅋㅋㅋㅋㅋ