호출 예약
호출 내역
추천 내역
신고
1주일 보지 않기
카카오톡 공유
주소 복사
공지가 닫혀있습니다 l 열기
아야나미ll조회 8642l 8
이 글은 3년 전 (2021/4/14) 게시물이에요

당신이 보는 게임 화면은 진짜가 아니다...gif | 인스티즈

게임 개발은 쉽지 않다.

 

 

실제로 개발자가 의도한 모든 것을 있는 그대로 재현하려면 시간과 예산이 잔뜩 들 뿐더러, 게임이 무거워져 사양을 많이 잡아먹게 된다.

 

당신이 보는 게임 화면은 진짜가 아니다...gif | 인스티즈

그래서 게임 개발자들은 언제나 꼼수를 쓴다.

쇼벨 나이트​는 사실 2D 도트 그래픽으로 진행되는 게임이 아니라, 3D로 진행되는 게임이다. 눈속임을 썼을 뿐.




삽질기사가 정말 있는 그대로의 2D 도트 게임이었다면 엄청난 도트노가다와 물리법칙 적용에 훨씬 긴 개발기간이 필요했을 것이다.

당신이 보는 게임 화면은 진짜가 아니다...gif | 인스티즈

이처럼 2D 게임처럼 보였던 게 알고보니 3D 게임이라는 경우는 꽤 흔하다. ​엔터 더 건전​도 이런 경우다.

3차원이라 해도 시점을 고정한다면 화면상에는 2차원으로 보이니 꽤 그럴듯하다.






그럼 반대의 경우는 어떨까?

 

​3D 게임으로 보였던 게 사실 2D 게임​이었다면?

 

당신이 보는 게임 화면은 진짜가 아니다...gif | 인스티즈
당신이 보는 게임 화면은 진짜가 아니다...gif | 인스티즈

말이 안될 것 같지만 놀랍게도 있다.

초창기 FPS의 대표격 게임들인 ​이드 소프트웨어​의 ​울펜슈타인 3D​(1992)와 ​(1993)은 사실 3D 게임이 아니다.

 

당신이 보는 게임 화면은 진짜가 아니다...gif | 인스티즈

"아니, 명백히 3D 공간을 걸어다니는데 이게 3D 게임이 아니라고? 지랄하고 자빠졌네"

라는 생각이 들 테지만 정말로 3D가 아니다!

전부 교묘한 눈속임이다.





울펜슈타인과 둠이 출시될 당시의 가정용 게임기들은 실시간으로 삼차원 게임환경을 렌더링할 정도로 성능이 좋지 못했다.



그래서 실제 Z축을 게임에 집어넣을 수 없으니 당시의 게임들은 모두 꼼수를 썼다.

 

 

당신이 보는 게임 화면은 진짜가 아니다...gif | 인스티즈

비슷한 시기에 ​슈퍼패미콤​으로 나온 ​젤다의 전설: 신들의 트라이포스(1991)​를 예로 들어 설명해보자.


짤에서 링크는 절벽에서 뛰어내려 우물 속으로 빨려들어간다.

 

하지만 실제 작동하는 게임 메모리 상에서 절벽은 없다.

 

당신이 보는 게임 화면은 진짜가 아니다...gif | 인스티즈

절벽에서 뛰어내리는 모션도 있고, 진짜 절벽처럼 보이게 음영도 져있지만 모두 같은 높이에 있는 타일이다.

절벽 부분이 ​아래로만 내려갈 수 있게 프로그래밍 된 타일​일 뿐.






링크가 절벽 '아래'에서 절벽 타일로 걸어올라가려 하면 게임은 링크를 막고,

 

절벽 '위'에서 아래로 내려가려 하면 뛰어내리는 모션을 재생하면서 아래로 내려보내는 것이다.







따라서 플레이어는 '절벽 위에서 뛰어내렸다'라고 생각하는 상황이

 

사실 게임기 내부에서는 '평면상에서 아래쪽 위치로 이동했다'고 처리된다.






이러한 눈속임으로 플레이어는 실제 높낮이가 있는 공간으로 착각하게 되지만,

 

 

당신이 보는 게임 화면은 진짜가 아니다...gif | 인스티즈

게임 속 공간은 전부 평면일 뿐이다.

슈퍼패미콤 성능의 한계를 고려한 현명한 최적화인 셈이다.

 

당신이 보는 게임 화면은 진짜가 아니다...gif | 인스티즈

똑같이 ​슈퍼패미콤​으로 출시된 ​울펜슈타인 3D​도 마찬가지다.

게임기의 메모리 내에서 게임의 모든 공간은 평면으로 처리된다.




그리고 이 평면 공간에 입체감을 부여하고자 꼼수를 쓰는데,

 

당신이 보는 게임 화면은 진짜가 아니다...gif | 인스티즈

플레이어가 서 있는 위치(초록 화살표)를 기준으로,

 

 

당신이 보는 게임 화면은 진짜가 아니다...gif | 인스티즈

매 순간 순간 게임은 직선으로 플레이어의 시야 내에 보이는 타일들과 플레이어의 거리를 스캔한다.

 

 

 

당신이 보는 게임 화면은 진짜가 아니다...gif | 인스티즈

그리고 그 거리의 길고 짧음에 따라, 플레이어의 화면에 비춰지는 타일들의 크고 작음을 결정한다.

 

 

당신이 보는 게임 화면은 진짜가 아니다...gif | 인스티즈

이 과정이 순식간에 이루어져,

그 결과물로 플레이어의 눈에는 깊이감 있는 화면이 보이게 되는 것이다.




일명 ​레이캐스팅(Raycasting)​이라 불리는 렌더링 기법이다.

 

 

당신이 보는 게임 화면은 진짜가 아니다...gif | 인스티즈

매 순간순간 플레이어를 기준으로 쏜 직선이 닿는 부분만을 화면에 나타냄으로써, 렌더링 하는 데 드는 메모리를 획기적으로 줄일 수 있다.

지금처럼 주변의 모든 공간을 3차원 렌더링 하려고 했다가는 슈퍼패미콤이 버티지 못했을 것이다.

 

 

당신이 보는 게임 화면은 진짜가 아니다...gif | 인스티즈

결국 플레이어가 깊이감이 있는 삼차원 공간을 탐험한다고 생각할 때,

실제 게임기의 메모리상에서는 화면과는 상관 없이 ​평면 상의 공간을 프로세싱​하고 있는 것이다.





3차원 공간처럼 보여도 ​Z축이 없는 2차원 공간​이기에, 모든 벽들의 높이가 같고 게임 상의 높낮이 변화가 전혀 없다.

 

계단도, 2층도 없다.

 

 

당신이 보는 게임 화면은 진짜가 아니다...gif | 인스티즈

그렇다면 ​둠​은?

둠은 울펜슈타인 3D보다 훨씬 진보된 모습을 보여준다.




적들이 높은 곳, 낮은 곳에서 보이고 계단도 있다!

아무리 봐도 3차원 공간으로 보인다.





하지만 이것도 3차원이 아니다.

 

 

당신이 보는 게임 화면은 진짜가 아니다...gif | 인스티즈

플레이어가 분명히 적의 머리 너머를 쏘고 있는데,

아무 문제 없이 총알이 적에게 맞는 것이 보이는가?





이것 역시 실제 높낮이의 구분 없이 눈속임을 이용하기에 벌어지는 현상이다.

 

둠은 울펜슈타인의 레이캐스팅보다 진보된 렌더링 기법으로 ​이진 공간 분할법​(Binary Space Partitioning)을 사용한다.

 

 

당신이 보는 게임 화면은 진짜가 아니다...gif | 인스티즈

개발자가 2차원 맵을 디자인하면

 

 

당신이 보는 게임 화면은 진짜가 아니다...gif | 인스티즈

둠 엔진은 이 공간을 잘게 잘게 쪼개서

 

 

당신이 보는 게임 화면은 진짜가 아니다...gif | 인스티즈

데이터 트리를 형성한다.



간단한 작은 공간을 예로 설명해보자.

 

 

당신이 보는 게임 화면은 진짜가 아니다...gif | 인스티즈

이런 네모난 공간을 디자인했다고 해보자.

 

 

당신이 보는 게임 화면은 진짜가 아니다...gif | 인스티즈

게임 엔진은 이 공간을 둘로 나누고,

 

당신이 보는 게임 화면은 진짜가 아니다...gif | 인스티즈

또 그 둘을 다시 둘로 나누고, 계속 나눠서 게임 엔진이 수용할 수 있는 작은 공간들의 집합으로 만든다.

 

당신이 보는 게임 화면은 진짜가 아니다...gif | 인스티즈

그리고 이 각각의 공간들을 데이터 트리로 만든다.

공간을 둘로 나누고 그 둘을 또 둘로 나눈다고 했던 것에서 볼 수 있듯, 이렇게 하면 서로 제일 가까운 공간들이 자연히 제일 가까운 가지에 배열된다.

당신이 보는 게임 화면은 진짜가 아니다...gif | 인스티즈

플레이어가 이 공간에 들어섰을 때, 프로세서는 그 공간만큼을 렌더링하고 저장한다.

당신이 보는 게임 화면은 진짜가 아니다...gif | 인스티즈

그리고 트리의 가장 가까운 다음 가지로 이동해서, 또 그 공간만큼을 렌더링하고 저장한다.

 

 

당신이 보는 게임 화면은 진짜가 아니다...gif | 인스티즈

이렇게 렌더링하고 저장하기를 반복하다가,

한 가지가 차지하는 공간이 앞에 가로막혀 화면상에 보이지 않으면 그 공간은 렌더링하지 않고 넘어간다.

 

 

당신이 보는 게임 화면은 진짜가 아니다...gif | 인스티즈

이 절차를 플레이어의 시야 안에 들어오는 공간을 완벽하게 렌더링할 때까지 반복한다.


이것도 게임에 들어가는 연산을 최대한 줄여 최적화하기 위한 수단이었다.

 

따로 물체의 위치를 삼차원 정렬하거나 하는 추가적 연산 과정 없이, 데이터 트리를 올바른 순서로 지나는 것 만으로 공간을 정확하게 렌더링할 수 있다.





뭔소린지 모르겠으면 그냥 꼼수 써서 효율적으로 화면을 그렸구나 하고 생각하면 된다.

 

 

당신이 보는 게임 화면은 진짜가 아니다...gif | 인스티즈

레이캐스팅​ 기법을 쓰던 울펜슈타인은 단순한 2차원 게임 시스템을 벗어날 수 없었다.


화면은 말 그대로 단순한 2D 타일들을 이어붙인 것 뿐이었기에

 

모든 벽들의 크기가 똑같아야 했으며, 어색한 네모를 기워붙인 형상에서 벗어날 수 없었고, 벽들의 각도가 일정해야만 했다.




다른 각도로 배치된 벽을 렌더링하려면 훨씬 많은 연산이 필요했을 것이기 때문이다.

 

 

당신이 보는 게임 화면은 진짜가 아니다...gif | 인스티즈

이와 달리, 둠의 ​이진 공간 분할법​, 일명 ​BSP 기법​은 이러한 제약으로부터 게임을 해방시켜주었다.

레이캐스팅처럼 벽의 픽셀들을 일일이 따라 계산하는 대신, 작게 분할된 각각의 공간들을 데이터 트리를 따라 렌더링함으로써

 

프로세서에게 무리를 주지 않고도 벽의 크기와 각도 등을 자유롭게 만들 수 있게 되었고,

 

 

당신이 보는 게임 화면은 진짜가 아니다...gif | 인스티즈

바닥과 천장을 각기 다른 높이에 배치해 더 다양하고 몰입감 있는 경험을 제공할 수 있게 되었다.


혁신적이지만, 아직 3차원에는 도달하지 못했다.

 

 

당신이 보는 게임 화면은 진짜가 아니다...gif | 인스티즈

깊이감 있는 천장과 바닥으로 보이는 것은 사실 플레이어 시점에서 깊이감 있어보이도록

프로세서에게 평소보다 더 멀리 있는 것처럼 렌더링하라고 지정된 타일들일 뿐이고,

 

 

당신이 보는 게임 화면은 진짜가 아니다...gif | 인스티즈

실제 메모리 상에서는 전부 2차원 평면이다.


둠이 정말 게임을 3차원 공간으로 연산하고 있었다면 공간을 공간 위에 올릴 수 있었을 것이다.

 

 

당신이 보는 게임 화면은 진짜가 아니다...gif | 인스티즈

하지만 둠을 처음부터 끝까지 플레이해봐도, ​플레이어가 그 아래 설 수 있는 2층 공간​ 같은 건 없다.

2층 공간같은 게 있었다면 연산이 꼬였을테니까 말이다.

 

 

당신이 보는 게임 화면은 진짜가 아니다...gif | 인스티즈

이것이 둠가이가 높낮이에 상관없이 적을 맞출 수 있는 이유다. 적들이 실제로 높은 곳에 있는 게 아니라, 그렇게 보이도록 만들어졌을 뿐이기 때문이다.


그리고 시점을 위아래로 올리거나 내릴 수 없는 이유이기도 하다. 진짜 3차원 게임이 아니라 3차원으로 보이도록 만들어진 2차원 게임이기 때문이다.

 

 

당신이 보는 게임 화면은 진짜가 아니다...gif | 인스티즈

우리가 알고 있는 지금 형태의 완전한 3D 게임은 ​퀘이크(1996)​가 나올 때 쯤에야 구현되었다.

 

 

당신이 보는 게임 화면은 진짜가 아니다...gif | 인스티즈

둠에서 최초로 적용된 ​BSP 기법​은 둠 이후에도 수많은 게임들에 활용되었으며, 아직까지도 가끔 활용되고 있다.

지금 와서 보면 어설픈 가짜 3D 그래픽이지만, 당시에는 조악한 하드웨어로 3차원의 화면을 구현해낸 혁신 그 자체였다.




아마 둠이 없었다면 지금 중붕이들이 즐기는 3D 게임들이 수 년 뒤에나 나왔을 것이다.

 

 

당신이 보는 게임 화면은 진짜가 아니다...gif | 인스티즈

 

그리고 이 혁신의 뒷편에는 조금이라도 더 재밌는 게임을 만들고자 머리를 싸매 가면서 수없이 고민하던 개발자들의 노고가 있었으리라.


앞으로 게임 할 때에는 중붕이들도 게임 개발자들에게 감사하는 마음을 갖도록 하자.

 

 

당신이 보는 게임 화면은 진짜가 아니다...gif | 인스티즈

요즘 게임 말고

 

 

 

 


제거
추천  8

이런 글은 어떠세요?

 
👍
3년 전
테리어몬  모만타이

3년 전
👏
3년 전
😮
3년 전
마당을 나온 생갈치  연탄냄새 안나요?노릇노릇
👍
3년 전
쩨이호오오오오오오옵-!!!-!!!!  왕쟈다람지🐿💛
👍
3년 전
로그인 후 댓글을 달아보세요
 
카테고리
  1 / 3   키보드
닉네임날짜조회
유머·감동 5월 2일 3일 이틀 연속으로 연차 쓴다는 신입사원 논란112 어라라리라11:1031438 0
이슈·소식 민희진이 기자회견에서 앨범 덜 찍자고 한 이유118 게터기타10:5639269 30
유머·감동 이시언&기안84랑 홍콩 여행 갔다가 울컥할뻔한 한혜진91 버질 반 다이05.02 22:4954560 10
유머·감동 울 냥이들 둘다 데려오길 넘 잘한것같애228 비비의주인0:1430784
유머·감동 섹스는 게임이다.jpg90 Jeddd05.02 22:2587410 6
씨티팝 감성을 좋아한다면 한 번쯤 봐도 좋을 무드샘플러 동구라미다섯 16:21 590 0
엘라스트 "코로나 시국 데뷔해 아쉬움 많아…음방도 2년 만" [인터뷰] 히후+헤헤 15:57 852 0
남친이 비 너무 많이 온다고 여행 취소하자고 해서 빡침.jpg10 잘지내는거맞 15:53 5185 0
현재 난리난 안야 테일러 조이 공식행사 착장.JPG (후방)22 우우아아 15:46 7699 0
신하균·이민정·이준호부터 박찬욱·박은빈까지…60회 백상 시상자 라인업 공개 @+@코코 15:37 1085 0
춤으로는 업계 탑 찍었던 사람들이 극찬한 신인 아이돌 멤버…jpg4 건물 사이 15:36 5564 3
세월 변화에 따라 다소 특이해진 동명이인 표기법...jpg4 a+b=cd 15:33 4994 0
서울 도심 주차비 근황.gif 돌돌망 15:28 1317 0
남편이 넘 순하고 착해요2 뜌비둡 15:20 4330 3
현재 말나오는 서울 주차비.JPG13 우우아아 15:15 6631 1
산다라박이 유일하게 라이벌 의식 느꼈던 가수.jpg15 넘모넘모 15:12 10275 3
이 시각 직장인 현황.cctv11 Smile 15:12 8515 1
"굳이 못 갈 이유가..." 광복절 일본행 비행기 타는 청년들, 왜?2 판콜에이 15:12 1738 1
담배 피울 때 침 뱉는 거 한국만 그런다 vs 외국도 다 똑같다 (투표 결과)2 따온 15:12 1950 1
7만 엔으로 4천만 엔 아낀 일본 지자체12 백구영쌤 15:05 9758 14
공부 정말 열심히 해본 여시들 후기 말해보는 달글2 요원출신 15:03 2202 0
뉴진스 혜인이 일본 가서 사온 민희진 선물ㅋㅋㅋㅋㅋ55 임팩트FBI 15:01 13246 11
우크라 98살, 10㎞ 걸어 러 점령지 탈출…"믿은 건 내 지팡이” qksxks ghtjr 15:00 2159 0
신림동 빨래방 만취 여중생ㄷㄷㄷ.jpg44 VVVVVV 14:51 15029 8
시간이 멈춘 듯한 광화문 사거리5 Laniakea 14:46 8054 1
전체 인기글 l 안내
5/3 16:28 ~ 5/3 16:30 기준
1 ~ 10위
11 ~ 20위
1 ~ 10위
11 ~ 20위
이슈·소식 인기글 l 안내
5/3 16:28 ~ 5/3 16:30 기준
1 ~ 10위
11 ~ 20위
1 ~ 10위
11 ~ 20위