마당에서 하치코 키우는 중인데 지난주 잠시 물그릇 물채우러 간 사이 하치코가 벤치위에 있던 내 서마터폰 떨구고 지가 가지고 놀고있더라


하필 시발 공구리바닥에 화면 방향으로 떨어진데다가 우리집 개새끼가 드리블까지 했으니 잔기스가 존나 많이 생김. 앞으로 반년정도는 더쓸생각이었는데 ㅅㅂ. 다행인건지 모르겠지만 화면자체는 잘나오는 편임 샘성폰 내구성 ㅆㅅㅌㅊ


하치코(가명), 시고르자브종, 암컷(자궁없음)

하 글쓰다보니 또 빡쳐서 우리집 개새끼 사진 첨부한다.



각설하고, 내 스마트폰 커버글래스 말고 또 금이 있는게 있는데 바로

라오 인게임 배경 되시겠다.

(해변 배경이 티가 많이나서 예시로 찍은거지 일일이 확인은 못했지만, 3웨이브 이상있는 다른 스테이지들도 다 있는거 같음. 이거 말고도 ev1-4 3번째 웨이브 좌하단 자세히보면 있음)



여기서 부터는 왜 저런 일이 발생하는지 해결방안은 있긴한지 뇌피셜로 추측해보겠음

중간중간에 계속 강조하겠지만 이건 어디까지나 학부생 수준의 코딩 지식으로 씨부리는 거고 심지어 지금은 프로그래밍이랑 저언혀관계없는 일을 하고있으니까 적당히 걸러들으셈. 아마 반박댓글이 달리면 그말이 맞을거임.


일단 라오에서 배경이 어떤 식으로 움직이는지부터 알아보자(근거 없음, 걍 뇌피셜임) 

완전히 똑같은 배경 A, B를 준비한다. (게임상으로는 딱 붙어 있겠지만, 서로 구분하기 위해 일부러 띄워 놓았음)

그리고 다 아는 사실이지만, 전투가 벌어지고 끝나면 캐릭터들이 앞으로 전진한다. 


하지만 실질적인 메커니즘은 카메라와 섹돌들은 제자리걸음만 하고 배경과 적들만 움직일 것이다.

(배경에 딱히 큰 기믹이 있는것도 아니고 이렇게 만드는게 제일 쉬울 거라고 생각함)


일정 웨이브 이상 전진하다보면 배경의 끝까지 갈 것이다. 이렇게 끝자락에 다다르면


섹돌들 등뒤로 간 배경을 앞으로 배치시켜서 무한하게 맵을 이을 수 있다.


일단 코딩상으론 좌표 등 수치가 완벽하게 맞아지기 때문에 이런 방식을 써도 이론적으론 틈이 발생할 일이 없을것이다. 그렇다면 왜 이런 일이 발생하는 걸까?


개인적인 추측으로는 세가지 중 하나가 원인이라고 생각함.

 

1. 개발 도중 실수로 좌표 값이 미세하게 움직였는데 모르고 있거나, 아는데 큰 버그가 아니니까 걍 방치하고 있거나.

2. 미세한 서순차이? 두 배경이 동시에 움직여야 되는데 한 배경이 앞으로 배치되는 동안 다른 배경이 1픽셀만큼 더 움직여서 틈이 발생해버림.

3. 부동소수점 표기의 한계? 2진법 컴퓨터로 최대한 용량을 적게 먹으면서 소수를 구현하기 위해서 사람이 입력하는 숫자와 컴퓨터가 받아들이는 숫자는 아주아주 작은 오차가 있음. 예를 들자면 사람이 2.1이라고 하면 콤퓨타는 2.10001752 이렇게 받아들임. 배경이 다시 앞으로 배치될 때 이 오차 때문에 틈이 발생.


내가 설명을 잘못해서 이해하기 힘들테니까 쉽게 말하자면 1번이 아니면 고치는 건 거의 불가능에 가까움.

그럼 다른 게임들은 잘만 매끄럽게 배경을 스크롤시키던데? 뭐임? 이라고 생각할거임.

당연히 방법이 있다.


동영상을 보면 아래에 있는 건 현재 내 뇌피셜 속 라오가 하고 있는 방식이고 위에건 내가 만든 개선판임.

배경 1개만 써도 충분히 작동하고 더 부드럽기까지 함. 최적화 쪽으로도 더 낫다고 생각함.(그래봐야 초당 1프레임 차이 날까 말까 정도)


어떻게 했냐면 바로 텍스쳐의 x축 offset을 조절하면 된다. 

예를 들어 "0123456789" 라는 텍스쳐를 가진 배경이 있다고 가정하고 

x offset을 0.1(10%)로 조정하면 화면상으론

"1234567890"으로나옴(1부터 시작) 

"2345678901"(0.2일 때) 

"3456789012"(0.3일 때).... 이렇게 무한 반복시키면 배경이 뒤로 가는 것처럼 만들 수 있음.

이해가 안되면 걍 무빙워크나 런닝머신같은 걸 생각하면됨.



그렇다면 왜 이렇게 만들지 않은 걸까? 뇌피셜이지만, 이렇게 만들 줄 몰라서가 아니라 빨리빨리 대충만드는데는 지금처럼 만드는게 더 쉬우니까 라고 생각함. 

솔직히 개발당시기준 라오 실패하면 스마트 조이 회사 자체가 존립이 힘들정도로 급박한 상황에서 개발기간을 하루라도 단축해야하는데 크게 티나지 않는 부분은 대충대충 만들어서 넘어가야하는게 맞다고 봄. 아마 내가 10년차(당시)였어도 이렇게 만들었을 거 같음.

근데 2.0 패치하면서 이것도 좀 개선해주길 바랬는데 안해줘서 킹받더라.

이후 배경은 좀 개선좀 해줬으면 좋겠음


세줄요약)

1.라오 인게임 배경에는 미세한 금이있다.

2.아마 이게 개선될 확률은 극히 낮다

3.그러니까 불편하게 살자