Cgames 서비스 단상

오후에 잠시 Cgames 사업 설명회에 다녀왔다.

이 이하는 내 의견; 그러니까 내 현재 고용주와는 상관 없는 얘기.

서비스 구성은 대략 다음과 같다:

  • LG U+가 서비스 사업자
  • 대만의 ubitus에서 만든 클라우드에서 게임을 실행하고, 이걸 스트리밍하는 솔루션을 사용함
  • 클라우드를 구성하기 위한 하드웨어는 nvidia의 GeForce GRID 기반

관심 있는 부분에 대해서 정리하자면 대략 아래와 같음.

서비스가 현실성 있는 이유 (nvidia GM):

  • 클라우드에서 실제 게임 클라이언트에 표시될 때 까지 걸리는 지연 시간이 대략 서버 단에서 60ms, 네트워크에서 < 30ms, 실제 클라이언트에서 30~60ms. 현존하는 콘솔 (PS3, XBox360) 의 경우 이 지연시간이 대략 160ms 이기에 콘솔 대비 그렇게 느리지 않음. (반면에 high-end desktop의 경우 60ms 수준이라고…)
  • GeForce GRID로 구성한 서버 1개당 GPU 4개, GPU 당 게임 세션 1개를 가상화해서 돌릴 수 있기 때문에 (일단은) 서비스 가능한 수준의 서비스 밀도 / 파워 사용량이 나온다고.
  • 더불어 캡쳐+인코딩을 한 SoC 위에서 하기 때문에 지연 시간도 짧다고(…).

근데 키노트에서 뭔가 이해가 안 간 부분은 렌더링해서 실제 보여줄 때 까지 딜레이는 말이 되는 것 같은데, 유저가 이걸 보고 다시 반응하고, 이에 대해 게임 로직 전진 시키고 렌더링 하는 딜레이랑은 다를 텐데; (피드백 루프에서 적어도 네트워크 딜레이 만큼 추가 됨; 그래서 콘솔보다 나쁜 경험을 주게 됨)

서비스 생성 방식 (ubitus CPO):

ubitus에서 제공하는 GDK가 하는 역할은 크게 두 가지.

  • 게임 설치를 로컬에서 시도해서 레지스트리 변화와 설치되는 파일 목록을 얻고, 이를 클라우드 환경에서 설치해서 제대로 돌아가는지 검사해주는 것
  • 실제 개별 클라이언트 (얘네 말을 쓰자면 N-screen) 실행할 때 각 화면 해상도와 실제 입력 장치에 맞게 바인딩해주는 기능

GDK 말고 나머지는 실제 서비스인 클라우드 환경에서 게임 세션 실행 + 실제 게임 화면의 캡쳐+스트리밍.

시연 예로는 CAPCOM 스트리트 파이터가 나왔음… 시연 대에서 플레이 해 본 분 말로는 (기대보다는) 나쁘지 않았다고.

근데 시연 대상이 전부 PC 용 게임으로 보이던데 실제 얘네가 타깃으로 삼을 만한 패키지 게임이 메인인 곳이 아닌 것 같은데. 이거에 대해서 궁금하긴 하다. 8/15일엔가 뭔가 공개 되면 알 수 있으려나.

그리고 GDK 시연이 중간에 버벅대서 망. 아이패드에서 스파 플레이 하는 걸 실시간 중계했는데, wifi가 튀는 탓인지 중간중간 끊기는 게 보여서 (…).

실제 서비스 관련 내용 (LG U+ 해당 부문 차장):

서비스 제공자가 하는 부분은 인프라 동작 / 빌링 / 기기 별 호환성 QA. 나머지는 마케팅(?)적인 부분들. 현재 게임 포털 운영하는 회사들이 해주는 기능에서 투자 정도를 뺀 나머지를 해주게 되는 듯. 근데 이런 방식이면 게임 클라이언트에서 앱 내 결제가 불가능하기 때문에, 부분 유료화 모델의 게임들은 좀 문제가 될 듯. 실제로 그에 대한 언급을 하기도 했고.

그리고 메인 고객 층을 LG U+에서 제공하는 IPTV 서비스 셋톱박스 사용자로 생각하는 것 같은데 이쪽에서 충분히 고민을 했는지 의문임.

다른 세션에서 nvidia GM도 얘기한 거지만 현존하는 디스플레이 중에 가장 지연 시간이 거지 같은 게 TV임. 게다가 중간에 셋톱박스도 있고, 화질 개선한다고 내부 처리하면서 더 느려터지게 만드는 게 요즘 TV인걸 생각하면 좀 암담하다.

그리고 요즘 셧다운제에 대한 학부모 층(…)의 반응을 생각하면 이게 환영 받을지도 궁금함.

여긴 셧다운제 적용이 어떻게 되지? ubitus의 목록에 보이는 게임 중엔 사용자 정보를 얻을 수 없어서 셧다운제 적용 대상이 아닌 게임도 몇 보였는데 (예전에 나온 패키지 게임들) 이런 가입자 모델에선 해당 정보를 얻어서 차단해야 할 텐데 이걸 생각은 하고 있을까?

게다가 각 게임의 심의는 따로 받아서 들어와야 한다니 그렇다 치고(…), 이걸 각 기기 별로 잘 도나 테스트하는 역할도 해준다는데, 이러게 확장 가능할까?

게다가 한국 내에서 GDK 프로모션(?)을 담당하는 단체는 KDGA인 듯 하다. 자세한 코멘트는 생략.

현재는 IE8 위의 Active X로 PC 버전을 구현한 것 같은데 (이거 아시는 분 댓글 좀), 차후에 구글 크롬은 지원한단다. 근데 왜 클라이언트가 Java요. NaCl은 안 들어본 모양.

여하튼 이 부분의 총평은 콘솔 게임을 정말 지원해준다면, 이거에 대한 규제만 늘리게 되는 게 아닐지 하는 것. 의외로 대기업이 밀어 붙이는 일이니까 친기업™ 이명박 정권이 알아서 규제를 줄여줄까?

그러고보니 시연 때도 버벅대던데 LTE 망에서 하다 짜증내는 사람들 생기면 n-screen이고 뭐고…

 

여하튼 오늘 자리에 대한 총평(혹은 감상?)을 내자면:

  • 패키지 게임이 메인일 듯 한데 한국에 패키지 게임이 없는 게 문제
  • 콘솔 게임은 어떻게 가상화 할지 궁금
  • 실제 서비스 중에 인당 사용액이 얼마나 될지 궁금. 과연 세션 당 GPU 1개의 비용을 어찌할꼬

리뷰: Bastion

bastion-title

어제 Steam에서 구매한 (발매 일은 8/16)[1] 게임. 가벼운(?) 게임 플레이를 제공하는 아기자기한 2D 게임을 원하던 터라 주저 없이 구매. 19.99 (이하 USD)를 할인해서 14.99던가에 판매하더라.. 다만 OST 합본 팩을 안 산걸 조금 후회… OST를 따로 사니 추가로 $5쯤 추가로 들었다 Orz.

전형적인 2D, 쿼터 뷰, 핵&슬래시 장르라고나 할까…
게임 배경이 배경이니 좀 음울하긴 하지만 색조는 화사(?)한 편에 가깝다. 2D에서 좀 더 보여주기 쉬운 색감이랄까.

bastion-graphic

화면 중앙 왼쪽의 다리 난간이 좀 이상하게 보일 거다. 던전(?)에 들어가면 일부 지역만 보이고/이동가능하고, 특정 경로로 이동하면 화면에 타일들이 `떠오른다’. 저 다리 난간도 떠올라서 생기는 중(…). 적도 그렇게 생긴 화면에 턱 하고 나타나는 경우가 있어서 나름대로 긴장감 유지에 좋음.

정말 좋았던 부분은 음악 + 해설(?). 주요 등장 인물 중 한 명이 주인공의 행동을 서술하는 형식인데. 이게 음성으로 낮게 깔려 나옴. 일부 동작 – 예를 들어 새로 얻은 무기로 열심히 물건들을 부순다거나, 추락한다거나, … – 에 반응해서 그에 대한 설명을 하기도 한다. 시작하자마자 떨어지고 나서 나오는 해설에 잠시 멍해지더라(…).

 

bastion-mortar

무기가 다양하게 나오는데 – 망치, 바셰티, 창(할버드?), 활, 저격소총, 샷건, 박격포, …이건 뭐라 설명할 수 없는 로켓포(?), 화염방사기 등… – 이에 대한 업그레이드 재료 + 돈으로 이 무기에 추가 옵션을 달아서 게임 플레이가 꽤 변한다. 로켓포 최종 업그레이드 같은 경우 자동 추적(…)옵션이 달리기도. (무려 범위 무기에 궁극 무기라 한 방에 거의 다 잡는데…)

스크린 샷에서는 터렛에 맞아가며 박격포를 조준하는 장면. 무기마다 컨트롤이 확연히 다른 것도 재미요소. 활은 오래 겨냥하면 더 세게 나가고, 저격 소총은 오래 겨냥하면 더 정확히 나가고… 박격포는 더 오래 겨냥해야 멀리 나가고(…). 일부 근접 무기는 오래 누르면 던진다거나 하기도; 그리고 무기 마스터 던전도 존재한다. 각 무기에 맞는 특정 미션을 수행하면 수행 수준에 따라 보상을 달리 주는 곳(…).

사원이란 시스템으로 난이도를 조절하는 것도 괜찮았음. 사원에 특정 신상을 활성화하면 특정 조건의 몹이 특정 형태로 더 강해지거나 하는 게 생김 – 물론 돈과 경험치도 더 줍니다… 그래서 별도의 난이도 시스템이 외부에 preset으로 주어지는 게 아니라 유저가 알아서 잘(?) 하면 되는 구조… 요즘처럼 게임이 대중화 된 상태에선 난이도에 대해 호 불호가 극명하기 때문에 이건 꽤 괜찮은 선택으로 보인다.

 

bastion-portal

보너스: Steam 판매용 버전에만 있다는 깨알 같은 포탈 패러디. 특수 스킬을 고를 수 있는데 Gel Canister란 녀석이 있다(…). 이거에 대한 NPC들의 반응도 깨알 같다(…). 일단 `Who Knows Where’ 클리어 할 때 매우 편하다.

한 번 클리어한 던전에 또 진입할 수가 없는데, 대신 `Who Knows Where’라는 모드가 있다. 게임이 전체적으로 3종류의 던전 배경이 있는데 그 각각에 대해 몬스터의 웨이브가 k번 반복되는 그런 반복 던전. 돈은 여기서 모으면 됩니다. 어차피 스토리를 이해하기 위해선 꼭 한 번 씩은 가야 하니…

 

bastion-ville

마을은 왼쪽에 보이는 노란 아이콘 (검은 배경) 같은 상점(?)류가 총 6곳 있다. 처음엔 0곳이지만 스토리를 진행하다 보면 늘어나고, 각각이 지원하는 기능이 다름. 하지만 마을은 큰 의미가 없는 게임이라(…).

전체적으로 올해 나온 게임 중엔 가장 맘에 듬. 짧다는 것만 빼고(…). 시작해서 엔딩 볼 때 까지 실 플레이 시간은 5시간 미만?. 물론 두 번 엔딩 봐야 하고(…), 업적도 채워야 하니 그보다 더 걸리긴 함. 일단 가격도 그다지 비싸지 않으니 추천. 이 게임 분류가 인디긴 하지만 무려 HD 해상도도 지원하고 / 그래픽 / 사운드(!!) 모두 나무랄 곳이 없다.

 

PS. 여기서 잠시 스포일러 성 멘트 하나. 게임 엔딩 선택지가 commit or rollback이다. 이런 공돌이들 같으니(?).

  1. XBox Live Arcade를 통해서는 지난 달에 발매되긴 했다. []

Project Dark Star 그 후는?

작년 2월에 Sun Microsystems (이제는 Oracle) 에서 개발하던 Java 기반 게임 서버 프레임워크인 Project Dark Star가 접히고, 오픈 소스 프로젝트로 fork 했다는 얘길 했다.

현재 상황은 대략 망해가는 프로젝트인 것 같다.

마지막 stable version이 작년 12월에 릴리즈. 다운로드 수는 누적으로 70회;

마지막에 등록된 티켓(trac issue)이 올해 2월.

위키 최종 편집 시간이 6월[1] 포럼에만 활동이 약간 있는 정도. 이 정도면 거의 활동없는 프로젝트라고 봐야하나?

(실질적으로) 사용하는 곳이 없고 / 개발 팀도 응집되지 않은 듯 하고 (커밋한 사람 수를 보면…) / 앞으로 비전이 있는 프로젝트는 못 될듯 하다.

  1. 그 이전에 올해 들어와서 수정된 페이지가 6개 , 그리고 각각 1번씩만 수정 []

리뷰: Lara Croft and the Guardian of Light

8월 말에 Xbox 라이브 아케이드로 출시되었지만, 일단 PC에서 하려고 기다리다(…) 나온 걸 놓치고, 어제 발견하고선 Steam에서 데모 플레이 후 바로 구매; 그리고는 오늘 엔딩 크레딧을 봤다(…). Metacritic score 85점. 플레이 소감으로도 꽤 괜찮게 만든 게임이다.

인증 샷(…)

lc_gol

다만 Tomb Raider 시리즈와는 약간 궤를 달리한다는 점이 기존 시리즈의 팬들은 호오가 좀 갈릴 듯.

Tomb Raider 시리즈에서 흔히 볼 수 있는 퍼즐 점프 – 특정 빈 틈을 타고 올라가거나, 굴뚝 점프(좁은 공간을 좌우로 디디면서 점프해 올라가는 것), 경사면을 타고 가다 점프 등등 – 는 전부 제거. 그냥 일반적인 점프만 있다. 그래도 자석(?)을 이용한 로프 액션은 남아있음…

다만 기본 무기(?)인 창의 역할이 이전 작의 막대기 류 기능을 좀 확대해서 퍼즐의 가짓수는 줄이고, 사용 방법은 늘린 느낌. 대충 밑에 나온 그림처럼 사용한다.

lc_gol_spear_jump

작아서 잘 안보이면 클릭해서 좀 더 큰 사진을 볼 것.

들고 다니는 창을 던지면 벽 등에 박힌다. 그리고 이 위에 올라가서 다시 점프를 하거나 로프 액션을 하거나 하는 게 가능. 혹은 점프 한 번에 갈 수 없는 거리에 있는 벽에 던진 다음, 그 창을 목표로 뛰거나, 벽에 다가 창을 여러 개 꽂고, 그 위를 연이어 점프하는 것도 됨. 다만 창이 박힌 채로 남아 있는 총 수에는 제한이 있다.

예전과 폭탄 사용 방식이 바뀌었다. 단순한 무기에 가깝던 것에서, 설치->폭파를 모두 Y키로 제어할 수 있게 변경 됨. 이걸로 쇠공을 점프 시키거나, 스위치를 원격으로 조작하거나 하는 일이 가능. 즉 스위치를 일단 켜고, 폭탄 설치 후, 원거리로 이동한 후(벽 뒤라거나?) 다시 스위치를 누르는게 가능; 이걸로 만들어진 퍼즐들이 많다…

 

근데 기존의 “길을 찾아가는 재미”는 상대적으로 덜하긴 하다. 생각할 방법의 수가 사실 상 창/자석 두 가지 뿐이라…

이 길 찾기의 재미를 줄이는 원인 중 다른 하나로 시점이 고정으로 바뀌었다. 위 캡처 화면에 나온 것처럼 일명 쿼터 뷰(?) 화면으로 게임이 계속 진행된다. 물론 지형에 따라서 DMC처럼 적당히 카메라가 바뀌긴 한다. 그래도 예전처럼 카메라 돌려가면서 확인할 수 없으니, 상대적으로 퍼즐 난이도가 떨어질 수 밖에 없고, 현장감도 많이 준다.

예전과는 달리(?) Relic이나 Artifact는 일정 조건을 달성하면 주는 형식이 되었다. 예전에 숨겨진 걸 찾는 형식이었지만, 대신 “특정 모양의 입구”를 갖는 미니 던전이 스테이지마다 1~2개 있고, 이 안에 들어가서 퍼즐을 풀면 특정 relic 혹은 artifact를 얻는 식으로 바뀜. 이건 찾는 재미는 줄었지만, 풀기만 하면 되니 편해서 좋긴 하더라(…). 그리고 스테이지에 흩어진 해골(10개)을 모두 모으면 주는 artifacts들도 있음…

그리고 많은 무기가 클리어 시간, 점수(…) 등으로 지급된다. 이건 스코어로 지급되는 무기 중에 사기 무기(마지막 스테이지의 Spear of Light 같은 것)이 있어서 좀 밸런스가 안 맞는 기분… 스코어가 제일 쉬운 조건 같은데 말이지(…)

싼 가격에서 추측 가능한 만큼 볼륨이 좀 작다 – 플레이시간 6.2시간 만에 엔딩 크레딧이 떴음. 다만 퍼즐이 상대적으로 쉽고 – 특히 리메이크 판이었던 Tomb Raider: Anniversary에 비하면 정말 – 전투의 잔 재미는 늘렸단 점에서 가볍게 즐기기는 좋았던 듯.

Civilization V: 문답무용

civ5_domination

지난 주 금요일에 도착한 – 실제로 받은 건 추석 쇠고 서울로 올라온 후인 월요일이지만 – Civilization V의 엔딩을 봤다. 기본 난이도(Chieftain)라서 전 문명 전멸(domination) 승리라도 큰 감흥이 없긴하지만; 일단 엔딩 본 걸 기념하는 의미에서 자축 포스팅.

문명의 새 씨리즈도 역시 기대를 저버리지 않고 잘 만들어졌다. 전작에서 여러가지 의미로 논란이었던 – 특히 확장팩인 BTS에서 외교 승리 등등… – 종교 부분은 아예 삭제 되었다. 대신 외교 관련되서 재밌는 요소로 도시 국가(citi state)가 등장한다. 충분히 우호적이 되면 이 도시들은 문화 값을 올려주거나, 군사 유닛을 제공해준다. 그리고 외교 승리의 요건인 UN 투표에서 동맹국에게 표를 주는 효과도 있다 – 인구당 표가 있었던 전작과 달리 국가별로 1표씩 행사함.

유닛을 쌓아서(…) 보내기만 하면 되는 – 물론 초반은 안그렇지만 – 전작들과는 달리, 유닛이 한 자리에 쌓이지 않고 + 헥스 타일이라 거리도 잘 봐야하고 + 원거리 유닛이 좀 더 좋아진 상황이라, 전투가 좀 더 재밌게 진행된다. 그리고 도시가 자체 방어력을 갖기 때문에, 초반에 야만인들한테 점령당하는 엄한 사태도 안 일어나서 좋더라(…).
대신 이것 때문에 전작보다 폭격기/해상 포격 가능한 전함류/시즈 유닛들이 훨씬 중요해졌다. 예전엔 초반 약간 동안만 투석기 써서 collateral damage로 도시 점령했는데(…), 이젠 후반까지 전함/폭격기 의존이 꽤 되더라;;

기술 개발 관련해서는 IV에서처럼 기술을 사고파는(…)게 안되고 공동 개발만 되서, 상대적으로 테크 트리 올라가는 속도는 느려졌다. 그래서 초반에 자기가 가려는 승리조건/상대방 조합을 잘 보고 테크 트리를 타야할 듯 함.

자원이 두 타입으로 구분되는걸 명시 해주는 것도 맘에 들더라. 전략 자원과 사치품을 구분한다. 이 중 전략 자원을 소모하는 유닛들 – 주로 로마 군단병;Legion(전작의 근위병;Praetorian에 해당)폭격기나 전함처럼 성능 좋은 애들 – 이 있고 (총 수량 중 고정된 몇 개를 쓴다), 특정 도시가 특정 사치품 자원(…)을 요구하는 일이 있기 때문에, 진행하는데 적당한 랜덤성이 부여되서 좋더라.

도시 별 행복도가 있던게, 문명 전체 행복도로 바뀌었다. 상대적으로 신경을 덜 쓰게 바꿔준 것 같다 — 이거 말고도 도시 관리 메뉴나 생산, 인구 배치 등등이 훨씬 편하게 진행된다. 예전에는 생산 팝업이나 연구 팝업 뜨면 딴거 할 수 있는게 없었는데, 이젠 modeless 로 왔다갔다 하면서 처리할 수 있어서 좋다. UI 개선은 정말 만족스러움…

덤으로 원더들의 성능이 대폭 하락했기 때문에(…), 원더만 믿고 가다간 망한다.(이제 나의 원더만 믿고 가는 Augustus 전략은 ㅠㅠ)

이제 난이도 올려서 좀 더 큰 맵(과연)을 해봐야할 듯. 하지만 CPU 업그레이드 전엔 좀 힘들까? intel core2duo (E6750) 쓰고 있는데, CPU가 100%를 치는 일이 너무 잦다; 4 문명(+8 도시 국가) 설정으로 해도 후반부 가면 Civ IV 14 문명 설정 수준으로 느리다;;

성능 문제랑 아직 밸런스가 안 맞는 부분이 좀 있어 보이는거 빼곤 매우 만족스럽다. 오늘은 리밋이 풀렸지만(…) 매일 제한 시간을 잘 지키면서 해야겠다(…).

게임물 등급 심의 제도에 관한 생각

오늘 가장 재밌게 본 게시판(…)인 게임물 등급 위원회(이하 게등위) 질문/답변 게시판을 보다가 든 생각이 있다.

“내 휴대폰에 있는 게임은 등급물 심의를 받았는가?”

그리고 이걸 가지고 몇 가지를 생각하다보면, 게임물을 사전 심의하는 행위가 위헌인지는 제쳐놓고도 – 적어도 나는 위헌이고 빨리 철폐 되어야 한다고 생각함 – 별로 잘 지켜지고 있지도 않은 제대론 사실을 깨닫게 되더라..

일단 내가 법학을 전공하거나 그에 관련된 일을 하고있지는 않기에 부정확한 내용이 있을 수 있는 점을 염두에 두고 읽어줍시다.

이야기를 풀어놓자면,일단 내 휴대폰은 2008년에 나온 삼성전자 SCH-W450 이다. 소위 Anycall이라고 부르는 피쳐폰… 여기에 게임이 딱 하나 들어있는데, T-Net 이란 홍콩 국적으로 보이는(적어도 DNS 등록지 주소는…) 회사에서 만든 게임이었다. 심지어 gamespot 리뷰 페이지가 있다.

근데 일단 “게임 산업 진흥에 관한 법률” 33조 1항에 따르면, 등급물 정보를 표시할 의무가 있다. 일단 제작사는 이거 위반한게 된다. 그리고 32조 1항의 6번째 부분,

제33조제1항 또는 제2항의 규정을 위반하여 등급 및 게임물내용정보 등의 표시사항을 표시하지 아니한 게임물 또는 게임물의 운영에 관한 정보를 표시하는 장치를 부착하지 아니한 게임물을 유통시키거나 이용에 제공하는 행위

에 따라 이걸 유통시키고 이용에 제공한 삼성전자와 SKT역시 불법 행위를 저지른 듯? 이거 같은 법 45조에 따라 2년 이하의 징역 혹은 2천만원 이하의 벌금에 해당한다…

그리고 게등위의 규정에 따르면, 휴대폰 같은 모바일 장치용 게임은 게임 초기 화면에 3초 이상 내용 정보를 표시해야 한다는데 그런거 없다(…).

일단 게등위 게시판으로 신고(..)해 놨는데 이게 어떻게 처리될지는 꽤나 궁굼…

아니 이게 중요한…건 아니고. 사실 이런 사례가 아마 비일비재 할 것이다. 개인이 만드는 플래시 게임이나, 학교/학원에서 만드는 컴퓨터 게임 – 게다가 많은 수가 공유/배포 될테니 이미 법률 위반… – 들이 잔뜩 있다. 이걸 게등위가 다 검열심의 한다는 건 물리적으로 불가능해 보인다.

이렇게 게임 자체의 이름을 걸고 유통되는 것만 있는가? 오늘 게등위 게시판에 올라온 질문 중 제일 걸작이었던 것은 “곰 플레이어에 이스터 에그로 게임이 들어있는데 심의 안된 불법아닌가?”하는 것이었다. 그리고 답변은 불법인 것 같으니 공문을 발송할 거라고…

내가 언급한 휴대폰 게임처럼, 한국에 유통되고 있는 수 많은 전자기기 – TV, DMB 플레이어 등 많은 수의 휴대용 미디어 플레이어, 전자 사전, … – 에 미니 게임 형식으로 많은 수의 게임이 포함되어 있다. 이걸 다 심의 하겠다고?

아마 물리적으로 불가능할 것이다. 게등위가 생기기 이전에 작성된 게임도 심의 받아야하는 게등위의 구조적 특성 상[1] 아마 절대로 힘들 걸?

결국 합리적인 대책은 – 지금 국회에서 계류 중인 수준의 법이 아니라 – 전면적인 게임물 등급 심의 철폐 및 개별 게임 제작자(사) 혹은 이들의 연합체에서 스스로 등급을 부여하고, 이게 잘못된 등급이라면 사법처리하는 쪽이라고 생각한다. 실제로 북미(미국+캐나다)의 ESRB도 이런 식으로 동작한다. 게다가 국민 전반의 수준을 낮게 보지 않는다면, 이런 사전 심의 제도가 정말 의미 있는지 궁굼하다.

노골적으로 성적인 내용을 다루거나, 폭력성이 강한데 등급이 낮다면 처벌하면 될 일이다. 이걸 지켜보는 눈도 많을테고(YMCA라거나 YWCA라거나…이런 쪽 지켜(?)보는 종교 단체나 NGO들 많다…) 실제로 등급 판정에 불만(?)을 갖는건 업계 쪽이나 개인, 이런 단체들 사이에 자주 있는 일이기도 하고.

  1. 위키 백과 내용을 토대로 썼음. 이건 사실 관계를 확인 해야함… []

이번 가을 Civilization V가 온다!

내가 가장 사랑해 마지 않는 게임, Civilization 시리즈의 신작이 이번 가을에 등장할 예정이라함.

http://www.civilization5.com/

공개된 정보는 개략적인 발매일(올 가을)과 3 장의 스크린샷 뿐.

Updated: Steam 을 통해 공개된 정보에 따르면, 스팀 쪽으로는 2010년 9월 2일에 발매됨 — http://store.steampowered.com/app/50100/

공개된 스크린샷도 총 5개로 증가.

일단 공식 홈페이지를 통해 공개된 스샷 중 하나를 여기에도 올린다. 모든 권리는 Firaxis Games 에 있다. (All rights are reserved to Firaxis Games)

Civilization V

Civilization IV 보다 좀 더 “생동감이 더해진” 그래픽이 맘에 든다. 사실 나와주는 것만으로도 감사! ㅠㅠ

아마 Amazon.com 에선 해외 배송이 안될 듯 하지만, 모든 수단과 방법을 동원해서(…) 구매해야지 Orz

Project DarkStar 는 왜 실패했을까?

SUN의 Java 기반의 게임 서버 프레임웍인 Project DarkStar 는 왜 실패했을까? 내가 예전에 생각했던 것과, 요즘 들어 든 생각들을 모아서 요약해봤다.

1. 게임 서버는 게임 제작 기간의 임계 경로(critical path)가 아니다

게임 서버는 대부분의 경우 “게임 제작 시작”과 동시에 작성되기 시작하는 경우는 거의 없다. 그래서 엔진을 사서 얻을 수 있는 이익 중 하나인 “시간 단축”으로 인한 효과가 적거나 없다. 물론 상대적으로 안정화된 코드 베이스를 빨리 얻을 수 있다는 이점은 존재 한다.

2. 게임 서버 구조에 대한 컨센서스가 없다.

게임 클라이언트는 각 모듈들 – 게임 로직, 렌더링, AI, … – 이 어느 정도 잘 분해되어 있다 – 적어도 그런 종류의 고민이 많이 끝난 상태다. 하지만 서버의 경우 게임 로직과 게임 서버 자체의 구동을 위한 아랫 단의 구분이 성능 저하없이 잘 이루어져 있는 경우가 드물다. 그래서 이런 서버용 게임 엔진은 시장에 나와 있는 예가 거의 없다. 내가 아는 범위 내에서는 DarkStar 프로젝트와, BigWorld Technology의 BigWorld Server 정도 밖에 없다. 그리고 이 범위 내에서, 상업적으로 충분한 성공을 거둔 게임(eg: 연간 1m USD 이상의 매출)은 없다.

그리고 각 프로젝트마다 실제 서버 구조 차이는 꽤나 컸다 – 내가 본 사용 서버 코드만 4개가 넘는데, 각자 다른 구조를 차용하고 있고, 기본적인 도구 수준에서나 같은 모습을 볼 수 있다. 하지만 DarkStar 는 일단 단일 구조로 나왔고, 커스터마이징이 가능하긴하지만 전체 구현 자체는 MMORPG 를 노린 것으로 보인다. 그렇기에 충분히 큰 시장을 가지지 못했다고 생각된다.

3. Java 사용의 문제

* Java GC가 신뢰할 정도로 빠른가? 분명히 Java는 서버 어플리케이션의 throughput 면에서는 만족할 만한 성능을 내고 있고, 이런 분야 – 각종 트랜잭션 기반 금융 업무, 웹 페이지 렌더링 … – 에서는 거대한 시장을 이끌고 있다.

하지만 반응 속도 면에서, 최소한 일정 수준 이상의 반응 속도가 필수적인 게임 서버에서도 이게 보장되는가?[1]  게임 서버에 가장 많은 부하가 걸릴 시간 – 메모리가 가장 모자라서 GC가 강제화라도 되어야할 시점 – 에 GC가 “한꺼번에” 일어나면 반응성의 문제가 생길 수 밖에 없다.

이건 약간 샛길로 새는 얘긴데, GC 문제는 C#에서도 역시 나타날 수 있다. 최근 런칭한 마비노기 영웅전 서버가 어느 정도 예측가능한 주기(<1일)로 비정기 점검(…을 가장한 서버 셧다운 넘기기)하는게 GC문제가 아닐까 의심 중이다. GC로 메모리가 모자라면 아주 일정한 수순을 거쳐서 서버가 죽게 된다.

1. GC로 반응(지연) 시간 증가

2. 큐에 작업이 쌓임

3. 더욱더 메모리가 필요해져서 GC 가 필요해짐

4. 악순환 시작. 실제 작업 로드를 내리는데 CPU가 사용되는게 아니라 GC에 들어감

5. 서버 사망

* 예전에 Rica 가 언급했던 서버/클라이언트 코드 공유 문제. 코드 생성기로 “우회”할 수는 있지만, 서버/클라이언트 코드 공유로 시스템 전체에서 중복을 제거하는 것도 무시못할 부분인데, 이 부분에서는 Java로 게임 클라이언트를 짜는게 거의 불가능한 상황[2] 을 생각하면 좀 암울하다.

* Java 나 C# 류의 언어는 확실히 생산성이 높다. http://www.codinghorror.com/blog/archives/000299.html 참고. 하지만 여기서 말하는 “Write his own” 항들을 게임 서버에서는 적어도 현재로는 필요하기에 사실상 다 하고 있다. 혹은 게임 서버/서버 용 라이브러리가 있거나..

4. Java 가 새 하드웨어 기술을 잘 따라잡고는 있는가?

적어도 게임 쪽에서는 아니라고 생각한다. 게임 서버는 그렇게 “현재의 기술”만 가지고 만들어지질 않는다. 한 예로 DarkStar 가 타겟으로 잡았던 MMO 시장의 한 게임을 들어보자. EVE Online 이라는 게임이 있는데, 이 게임의 서버 구조는 어느 정도 알려져 있다 (참조: EVE Online’s Server Model)

이 게임은 서버 군(혹은 shard 란 명칭으로 흔히 부르는 그것)이라는 개념이 없다. 모든 사용자는 “하나의 논리적인 서버”에 들어가는 형태다. 이걸 가능하게 한 기술은 InfiniBand 라고 부르는 네트웍 기술덕인데, CPU 버스 수준의 통신 속도+지연 시간을 보장하는 네트웍 장치다(다만 point-to-point). 이런 상대적으로 low-level 한 기술을 나오는 즉시 사용하기에는 Java 언어 자체의 변경 속도가 느리다. 그렇다고 이걸 C/C++ 로 만든 드라이버를 작성하고, 이걸 DarkStar 같은 녀석 밑단에 JNI 연결하기엔 배보다 배꼽이 커질 것 같다. 게다가 이쯤 되면 프로그래밍 모델이 우리가 흔히 보는 UMA가 아니라 NUMA 모델에 가까워진다. 그것도 non-cc NUMA… Java는 아직 NUMA 에서 GC 구현조차 실험적 상태(experimental) 이다.

또다른 예로, 32bit –> 64 bit 넘어가던 시절에 만들어진 모 게임이 있다. 이 게임의 경우 64bit 운영체제가 시장에 나올 즈음을 타겟팅해서 작성되었는데, 출시가 늦어지면서(…), .dll 의 메모리 모델이 좀 다른 점을 이용해서, 공유 메모리 비슷한 형태로(…) 32bit 응용 프로그램이 쓸 수 있는 물리 메모리보다 더 많은 물리 메모리를 쓸 수 있게 수정해서 출시했다고 한다.[3] 이런 low-level 한 시스템 프로그래밍을 DarkStar 같은데 연동하는건 절대로 쉬운 일이 아닐 거다.

물론 Java 가 새 기술을 따라잡으면, Java codebase 전체가 쉽게 이동한다는 장점은 있다. 그렇지만 Java 의 현재 가장 큰 시장은 게임 서버가 아니기에, 이 쪽으로의 이동이 빠를리는 없다 – 적어도 현재 시점에선 그렇게 보인다.

5. 이식성 문제나 하드웨어 호환성 문제는 서버 프로그래밍에서는 큰 이슈가 아니다

타겟 하드웨어와 타겟 OS를 정해놓고 작업할 수 있기에, Java 의 장점이라는 이식성/호환성 문제는 아예 이슈거리가 되질 않는다. 오히려 타겟 하드웨어에 맞는 최적화를 “손 쉽게” 쓸 수 없는 Java 의 문제가 생긴다.

6. DarkStar 는 모든걸 만들어야 했다

DarkStar 의 실패 원인 중 하나는, DarkStar 의 “기능”으로 소개한 것 중 중요한 것들은 3rd party library로 있는 애들이 많다는 거다. 혹은, 시장이 될만한 MMOG 제작사들이 이미 인-하우스 툴이 갖춰졌을 시점이라는 것.

DISCLAIMER: 이 글은 rein 의 개인적인 견해이며, 소속 기관 어디와의 연관성도 없음을 밝혀둔다. 또한 이 글의 각 사실 관계에 관해서는 현재 알고 있는 바에만 기초했으며, 이걸 사용해서 얻어지는 직/간접적인 결과에 대해서는 rein은 아무런 책임이 없음을 밝힌다.

  1. 물론 클라이언트에서 이런 반응 속도를 속이기 위한 각종 테크닉을 사용한다. 사용자의 입력에 대한 일단의 액션을 보여주고, 최종적인 결과 처리는 서버의 판단 후에 반영된다거나(이럼 RTT 만큼의 시간은 걸린다). []
  2. Java 용 게임 클라이언트 라이브러리의 수는 C++용 게임 클라이언트 라이브러리 수와 order-of-magnitude 의 차이가 난다. 질 적인 면에서는 그 성숙도에서 엄청난 차이가 날 게 틀림이 없음에야… []
  3. 이건 PAE 같은 CPU 확장 기능을 이용하면 32 bit OS 라도 16GiB~32GiB 수준의 메모리를 쓸 수 있어서 가능한 것 []