Game

You are currently browsing articles tagged Game.

이번 포스트는 에픽 게임즈 (Epic Games) 의 창업자이자 언리얼 엔진의 메인 프로그래머인 Tim Sweeney 의 2006 년 Principles of Programming Languages (POPL) 에서의 invited talk 프리젠테이션에 관한 것이다. POPL 은 프로그래밍 언어 분야에서는 가장 권위있는 심포지움 중 하나이니 굳이 다른 설명은 필요없을 것 같다.

팀 스위니는 오래 전부터 GDC 에서도 OOP 를 이용한 엔진 개발의 중요성을 강조해왔으며 최근에 이르러서는 둠, 퀘이크를 만든 존 카멕의 엔진보다 팀 스위니의 언리얼 엔진이 대세로 떠오르고 있다. 언리얼 엔진은 모듈화가 매우 잘 되어 있어서 범용으로 사용 가능한 유일한 게임 엔진이라는 말을 들을 정도이다. (렌더링 미들웨어스러운 게임브리오는 예외로 하자.) 그리고 자체 스크립트 언어인 UnrealScript 로도 유명하다.

프리젠테이션 제목은 “The Next Mainstream Programming Language: A Game Developer’s Perspective” 이다. 사실 보통 3D 게임 엔진 개발자라면 imperative programming 의 달인이고 주로 SIGGRAPH 논문만 볼거 같은데 의외로 프로그래밍 언어에 대해 깊은 관심을 가지고 있어서 놀랐다. pure functional language 인 Haskell 에도 관심을 가지고 있어서 하스켈의 유용한 기능들을 많이 도입하려고 하고 있었다.

그 외에도

“우리는 절대 어셈블리어를 사용하지 않는다! (We never use assembly language)”

라든지 언리얼의 정수 변수 중 90%가 배열 인덱스로 사용되기 위해 존재했다는 것과 사용된 for 루프 중 40%가 functional comprehensions 그리고 50%가 functional folds 였다는 것도 매우 흥미롭다.

PT 를 보면 기어즈 오브 워(Gears of War)의 예를 들어 몇명의 프로그래머와 몇명의 아티스트가 얼마의 예산을 가지고 몇개월 동안 작업했는가 하는 구체적인 데이터로부터 시작하여 게임에 사용한 라이브러리들도 자세히 설명하고 있다.

그리고 게임 코드를 약 3가지-Game Simulation, Numeric Computation, Shading-로 분류해서 각각에서 중요한 요소들과 우선시되는 요소들(OOP, 속도, 병렬성 등) 을 설명하고 그에 맞는 언어를 소개하고 있다. 게임을 이루는 각 부분마다 특성에 맞는 서로 다른 언어들을 사용하는 것이 매우 흥미롭다. 혹시라도 난 게임 개발만 할거니까 functional language 는 알 필요없어! 라고 하는 분이 있다면 꼭 일독하길 바란다. 이 PT 를 보면 학부 수준에서 배우는 과목은 모두 다 중요하다는 진리를 다시 한번 일깨워준다.

특히나 경험을 바탕으로 한 게임 개발의 구체적인 수치들과 정상급 개발자의 식견은 돈 주고도 배우기 힘든 귀중한 내용들이니 꼭 읽어두도록 하자.

(View on slideshare 로 가면 풀스크린 모드로 볼 수 있다.)

외부 링크

Tags: , ,

스나이퍼?

스나이퍼란 간단히 설명하자면 라이플을 사용하여 원거리에서 대상을 저격하는 병과이다. 보통 우리가 흔히 보는 스나이퍼는 영화나 일반적인 FPS 게임들에서 보는, 스코프 달린 라이플을 들고 다니며 단순히 크로스헤어 가운데에 대상이 오도록 한 후 호흡 조절을 하면서 방아쇠만 당기면 끝나는 매우 편해보이는(?) 병과이다. 원거리이기 때문에 위치만 발각되지 않으면 적들과 총격전, 백병전을 벌이지 않고도 임무를 완수할 수 있고 특히 한명만 있어도 적의 부대를 제자리에 꽁꽁 묶어둘 수 있는 이점이 있다.

하지만 현실의 스나이퍼에게는 매우 복잡한 탄도 계산과 신중한 위치 선정 그리고 기회를 잡을 때까지 무한한 인내심을 가지고 기다리는 것이 필요하다. 일반적인 FPS 게임에서처럼 뛰어다니면서 쏘거나 심지어 점프해서 쏘는 것[..]은 절대 불가능하다. 기본적으로 스나이퍼는 잠복하는 지역의 환경에 따라 길리 슈트 등을 입어서 위장을 하고 엄폐물 뒤에서 관측병과 2인 1조 또는 혼자서 대상이 저격 가능할 때까지 기다린다.

1

즉, 위와 같은 모습으로 원거리에서 적을 노리는 것이다. 이런 복장을 하고 엎드린 채로 수시간에서 수십시간까지 찰나의 기회를 잡기 위하여 집중하면서 기다려야 한다. 물론 움직일 수 없으므로 소변도 그냥 자세를 유지하면서 해결하기도 한다. 그러면 여기서 Loren 님이 Armed Assault 라는 시뮬레이션에 가까운 FPS 게임에서 촬영하신 저격 동영상을 보면서 실제 스나이퍼들은 어떤 식으로 탄도 계산을 하고 위치 선정을 하는지 등에 대해서 알아보자. 다행히 자막으로 친절하게 설명해주므로 관련 지식이 없는 나같은 사람들도 편하게 볼 수 있다.

Loren 님의 ArmA 스나이핑 동영상

  1. ArmA 2167m 저격 동영상
  2. ArmA 정밀 탄도학 계산 동영상

Read the rest of this entry »

  1. http://en.wikipedia.org/wiki/Image:Marine_sniper_ghillie_suit.JPG []

Tags: , ,