[게임 최적화] 100명 이동, 보이지 않는 렉 유발 요인 제거로 갓겜 등극!
게시일:
작성자: 자청의 유튜브 추출기
유닛 200마리 전투, 왜 느렸을까? 🤔
전에 유닛 200마리가 막 싸우는데 게임이 엄청 느려졌던 적이 있었어. 근데 이게 코드가 느려서 그런 게 아니었대!
문제는 가만히 서 있는 유닛들이었어.
- 아무것도 안 하는데도 계속 밀어내기 물리 계산을 하고 있었던 거야. (마치 아무것도 안 하는데 계속 누가 밀고 있는 것처럼!)
- 싸우지도 않는데 공격 판정도 계속 켜져 있었대. (실제로 공격하는 건 아닌데, 공격할 수 있는 것처럼 준비만 하고 있었던 거지.)
이게 왜 문제냐면, 유닛 하나당 초당 60번씩 이런 계산을 하는데, 유닛이 200마리니까 초당 12,000번이나 계산이 돌아갔던 거야! 🤯
그래서 이걸 "잘랐다"고 표현하는데, 무슨 말이냐면...
- 안 움직이면 밀어내기 계산을 멈추고!
- 안 싸우면 공격 판정도 끄고!
- 꼭 필요한 계산도 매 프레임마다 하는 게 아니라, 0.2초에 한 번, 또는 2초에 한 번씩만 하도록 바꾼 거야.
이렇게 바꾸니까, 눈으로는 똑같이 보이지만 실제 계산은 훨씬 적게 하게 된 거지.
결과?
지금은 유닛 200마리가 붙어도 게임이 60프레임이 안 무너질 정도로 훨씬 부드러워졌대! 👍