구글 태그

2009년 3월 24일 화요일

F.E.A.R.2 Project Origin (PC)

Left4Dead의 기술적 성취 중에 가장 놀라웠던 것은, 프로그램적으로 플레이어의 텐션을 조절하는 기능을 구현했다는 점이었습니다. 이건 플레이어의 텐션을 조절하는 기획적인 능력이 수학적인 공식으로 확립될 만큼 잘 개발되어 있다는 뜻이고, 그만큼 미국 FPS 개발사들의 개발력이 대단한 수준까지 올라와 있다는데 대한 반증으로 여겨졌는데요. F.E.A.R.2 Project Origin도 이러한 점에서 뛰어난 개발사의 능력을 여실히 보여줍니다. 게임 시작 직후의 스토리 진행 부분은 좀 루즈하게 진행되지만, 본격적인 이야기로 들어가면서부터는 그야말로 숨돌릴 틈도 없이 롤러코스터를 타듯 재미있는 미션이 다양하게 펼쳐집니다.

전작을 해보지 않아서 전작과의 비교는 어렵지만, 일반적인 평가가 전작보다 호러 부분의 무서움이 줄어들었다고들 하던데요. 그렇지만 전투 부분의 완성도 면에서는 더할 나위 없이 잘 만들어진 타이틀입니다.

플레이어의 편의를 극대화하려는 제작사의 노고인지는 몰라도, 혼령을 상대로 대인무기를 사용하여 피해를 입힐 수 있다는 간편한 설정이 좀 걸리긴 합니다. 그렇지만 게임플레이 면에서는 굳이 무기를 바꿔줄 필요가 없어 편하기는 합니다.

이 게임은 플레이하면서 의도적으로 스크린샷을 많이 찍었으니, 이걸로 대강의 분위기를 전할 수 있을것 같습니다. 결말을 미리 알고 싶지 않으시다면 더 이상의 내용을 보지 마십시오.

Screenshot089
(이 그림은 사실은 엔딩 장면에 나오는 로고입니다;;)

Screenshot006
(초반에 경치 좋은 곳에서 한장;;)

Screenshot009
(이건 대충 Alma의 기억인듯..)

Screenshot011
(플레이어 Sergeant Becket은 이 아줌마를 구하러 연구실에 온건데..)

Screenshot013
(핵폭발이 일어나고..)

Screenshot029
(이게 Alma)

Screenshot031
(함께 들어온 동료 Stokes)

Screenshot042
(보통은 대략 이런 분위기)

Screenshot040
(지루해지려는 타이밍이 되면 탈것도 등장)

Screenshot041
(적외선으로 체열을 감지하며 싸울 수도 있다)

Screenshot054
(이 곳은 추억의 장소인가..)

Screenshot060
(천신만고끝에 엔딩 부근에서. Alma에 대항할 수 있다는 장치인데..)

Screenshot065
(역시나 Alma가 등장하고)

Screenshot073
(아니 이건..)

Screenshot080
(Alma양, 왠지 배 부분이.. –_-;;)

Screenshot087
(그리하여 엔딩..)

근데 이 정도로는 이 게임의 재미를 다 전하기는 어려울것 같은데.. 강추하는 타이틀입니다. 전투 파트의 텐션 조절이 정말 대단함.

2009년 3월 10일 화요일

Windows에서 wxWidgets 개발 환경 설정하기

1. 설치 준비

wxWidgets을 지원하는 여러가지 개발 환경이 있지만, 이 글에서는 Code::Blocks IDE를 사용합니다. Code::Blocks는 wxWidgets의 UI 수정을 위해 wxSmith와 wxFormBuilder의 두 가지 도구를 지원합니다. Code::Blocks IDE는 자체적으로 wxSmith를 내장하고 있고, wxFormBuilder의 경우에는 호출하여 사용할 수 있도록 필요한 파일(.fbp)을 생성하여 줍니다. 얼핏 보기에는 에디터가 내장된 wxSmith가 더 편리할 것 같지만, 사용해 본 바로는 wxFormBuilder가 더 직관적인 환경과 작업 흐름을 제공한다고 판단합니다. 따라서 이 글에서는 Windows 환경에서 wxWidgets 개발을 위해 Code::Blocks IDE를 사용하고 UI 리소스 편집 및 코드 생성을 위해 wxFormBuilder를 사용합니다. 이 글에서는 설명하지 않지만, Code::Blocks IDE를 설정하는 과정에서 모든 설정이 함께 완료되므로 wxWidgets 편집을 위해 wxSmith를 사용하여도 무방합니다.

이 글을 작성하면서 사용된 환경은 Windows XP SP3, Visual Studio .NET 2005(wxWidgets 소스코드 컴파일 및 Code::Blocks IDE의 컴파일러로 필요) 입니다. 작업 내용은 Visual Studio .NET 2008에서도 동일합니다.

우선 필요한 프로그램을 다운 받습니다.

1. Code::Blocks IDE 설치프로그램 다운로드

이 예제에서는 Code::Blocks 8.02를 사용합니다.
http://www.codeblocks.org/downloads

2. wxWidgets 소스 코드 다운로드

이 예제에서는 wxWidgets 2.8.9를 사용합니다.
http://www.wxwidgets.org/downloads

3. wxFormBuilder 설치프로그램 다운로드

이 예제에서는 wxFormBuilder 3.0.57을 사용합니다.
http://wxformbuilder.org/?page_id=7


2. 설치 과정

이제 실질적인 설치 과정입니다.

1. wxFormBuilder를 설치합니다.

2. wxWidgets 소스 코드를 컴파일 합니다.

다운 받아둔 wxWidgets 소스 코드의 압축을 풉니다. 여기서는 z:\wxWidgets-2.8.9에 풉니다.

시작 메뉴를 열어 다음과 같이 Visual Studio .NET 2005(혹은 2008) 명령 프롬프트를 엽니다.

Visual Studio .NET 2005 명령 프롬프트

wxWidgets의 빌드 경로로 이동합니다.

cd z:\wxWidgets-2.8.9\build\msw

이동한 경로의 폴더 내용을 살펴보면 Visual Studio용 프로젝트 파일이 있는데, 프로젝트 파일을 이용하지 말고 makefile을 사용하는 편이 더 간단합니다. 다음과 같이 makefile을 이용하여 wxWidgets을 debug와 release로 각각 빌드해 줍니다.

nmake makefile.vc SHARED=1 MONOLITHIC=1 UNICODE=1 BUILD=debug

nmake makefile.vc SHARED=1 MONOLITHIC=1 UNICODE=1 BUILD=release

SHARED 속성은 빌드 타겟을 DLL로 지정합니다. MONOLITHIC 속성은 빌드 타겟을 하나의 모듈(여기서는 하나의 DLL)로 묶습니다. 이를 설정하지 않으면 라이브러리가 모듈별로 분리됩니다.

3. Code::Blocks IDE를 설치합니다.

4. Code::Blocks의 환경을 설정합니다.

우선 Settings > Global variables를 선택하여 대화상자를 열고 다음과 같이 설정합니다.

Settings > Global variables

각 환경 변수의 값은 다음과 같습니다.

vc_inc \lib\vc_dll\mswu

vc_lib \lib\vc_dll

vc_obj \build\msw\vc_mswudll

다음으로 Settings > Compiler and debugger를 선택하여 대화상자를 열고 다음과 같이 설정합니다.

Settings > Compiler and debugger

Search directories 탭을 열고 각 탭의 내용에 다음과 같은 값을 추가합니다.

Compiler $(#wx.vc_inc)

Linker $(#wx.vc_lib)

Resource compiler $(#wx.vc_inc)

마지막으로 작업의 편의를 위해 Settings > Environment를 선택하여 대화상자를 열고 다음과 같이 .fbp 파일의 핸들러를 wxFormBuilder로 설정합니다.

Settings > Environment


3. 응용프로그램 생성해보기

이제 모든 설정을 마쳤으니 Code::Blocks와 wxFormBuilder를 이용하여 wxWidgets을 이용하는 응용프로그램을 작성해 봅시다. 다음과 같이 작업합니다.

1. Code::Blocks에서 wxWidgets 응용프로그램 생성

Code::Blocks를 실행하여 File > New > Project를 선택하여 새 프로젝트를 생성합니다. 다음과 같이 wxWidgets project를 선택합니다.

wxWidgets project

Go를 누르면 wxWidgets의 버전을 설정하게 됩니다. 이 예제에서는 wxWidgets 2.8.9를 사용하고 있으므로, wxWidgets의 버전을 2.8.x로 설정합니다. Next를 누르면 프로젝트 경로를 생성합니다.

프로젝트 경로

Next를 누르면 주석에 들어갈 개발자 정보를 입력하게 됩니다. 입력한 후 Next를 누르면 wxWidgets을 수정할 도구를 선택하게 됩니다. 다음 화면과 같이 wxFormBuilder를 선택합니다.

wxWidgets을 수정할 도구

Next를 누르면 wxWidgets의 경로를 지정합니다. 앞에서 설치했던 폴더를 선택합니다.

Next를 누르면 컴파일러를 설정합니다. 여기서는 Microsoft Visual C++ 2005/2008을 선택합니다.

Next를 누르면 환경 설정을 합니다. 앞에서 wxWidgets을 빌드할 때 사용했던 설정을 반영하여 다음과 같이 설정합니다.

환경 설정

Next를 누르면 프로젝트 설정이 완료됩니다.

2. wxFormBuilder에서 UI 수정

앞 단계를 마치면 다음과 같이 프로젝트가 생성됩니다.

프로젝트 생성

설정이 완료된 프로젝트에서 자동 생성된 WxWizFrame.fbp 파일을 더블클릭하면 wxFormBuilder가 실행됩니다. wxFormBuilder에서 Code::Blocks가 생성한 프로젝트를 수정할 수 있도록 자동변환을 해주면 다음과 같은 화면이 나타납니다.

wxFormBuilder

wxFormBuilder를 사용하는 예제는 다음 문서를 참조하시기 바랍니다.
http://wiki.wxformbuilder.org/Tutorials/UsingWxFormBuilder

수정이 완료되면 File > Generate Code를 선택하여 작업한 내용을 소스 코드로 생성합니다.

3. Code::Blocks에서 응용프로그램 빌드 및 실행

Code::Blocks로 돌아와 Build > Build를 선택하여 wxFormBuilder에서 수정한 내용을 빌드합니다. Build > Run을 선택하여 응용프로그램을 실행해 볼 수 있습니다. 자동 생성한 예제를 수정하지 않고 실행하면 다음과 같은 화면이 나타납니다.

자동 생성 예제