23
Creating 3D Game Client Program With Project Anarchy - Part 1. Visual Studio에서 게임 프로그램 실행하기 - NHN NEXT 1기 실전프로젝트 산출물 실습 업체 블루홀 스튜디오 프로젝트 팀명 그랜드부다페스트(문진상/신동찬) 작성자 신동찬 Created Date 2014-11-15

Project anarchy로 3 d 게임 만들기 part_1

Embed Size (px)

DESCRIPTION

Havok Project Anarchy를 활용해 Win32 프로그램 만드는 방법

Citation preview

Page 1: Project anarchy로 3 d 게임 만들기 part_1

Creating 3D Game Client Program

With Project Anarchy

- Part 1. Visual Studio에서 게임 프로그램 실행하기 -

분 류 NHN NEXT 1기 실전프로젝트 산출물

실습 업체 블루홀 스튜디오

프로젝트 팀명 그랜드부다페스트(문진상/신동찬)

작성자 신동찬

Created Date 2014-11-15

Page 2: Project anarchy로 3 d 게임 만들기 part_1

자료를 읽기에 앞서 알아야 할 것

당신이 자료에서 참고하거나 배울 수 있는 것

기대했을 수 있지만 자료에 없는 내용

- C++ 사용 방법- Lib, DLL 개념 및 사용 방법- Project Anarchy 설치 및 세팅( http://www.slideshare.net/ssusere4785c/project-anarchyvision-engine-part1 )

- 간단한 3D 렌더링 프로그램 제작(for windows)- Project Anarchy Framework- vGameSolutionCreator 사용법- Sample Project 코드 분석- Project Anarchy를 과거 Vision Engine 처럼 사용하는 법

- vForge를 활용한 게임 개발- *.model file 등 resource 측면 핸들링- Engine Plugin 및 Component 를 활용한 게임 개발- GUI 시스템

Page 3: Project anarchy로 3 d 게임 만들기 part_1

본 자료에서 사용하는 파일 위치는 Default 설치 위치를 기반으로 함

기본 설치 위치C:\Havok\2014.1.0\AnarchySDK\

Project Anarchy 사용을 위해서는 vforge를 우선 실행해야 함

Project Anarchy는 무료로 사용 가능한 대신 몇 가지 제약 사항이 존재본 실습 과정은 vforge를 실행한 것을 기본으로 한다

< vForge 미실행시 발생하는 error >

Visual Studio 2010 기준으로 설명

Project Anarchy는 Visual Studio 2010 기준으로 실행 됨Visual Studio 2013에서 실행 하기 위해서는 2010이 설치 되어 있어야 함

Page 4: Project anarchy로 3 d 게임 만들기 part_1

Framework

Page 5: Project anarchy로 3 d 게임 만들기 part_1

Project Anarchy?!

처음 보는 녀석이라고 겁먹을 필요 없음과거 ‘Vision Engine’을 멀티 플랫폼(모바일 대응 등)화 했다고 생각하면 쉬움( http://www.slideshare.net/agebreak/1126-mmorpg )

게임을 만들기 위해 필요한 rendering, control 등을 wrapping해함수 호출만 하면 바로 사용 할 수 있도록 만들어 놓은 Framework

Vision SDK는 정적 라이브러리( Lib ) 형태의 프레임워크를 제공 함따라서 기본 사용은 다음 형태를 가짐

1. 헤더를 include 해 함수 이름을 코드 내 확인 시켜 줌2. 런타임시 Lib, DLL을 통해 실행됨

Page 6: Project anarchy로 3 d 게임 만들기 part_1

Framework 개요

# VAppBase 클래스

VisionApp_cl 상속으로 엔진 기능 적용하위 클래스로 확장되며 플랫폼 특화 기능 추가사용자가 직접 control하지 않아도 됨

# VAppImpl 클래스( 중요 )

사용자와 직접 접하는 클래스VAppBase 클래스는 VAppImpl 클래스의 인스턴스를 가지고 있음사용자가 작업한 내용을 VAppBase를 통해 실제 엔진에서 적용되도록 함따라서 사용자가 Vision의 Application Framework를 사용하기 위해서는 반드시 상속 받아야 함

Page 7: Project anarchy로 3 d 게임 만들기 part_1

Framework 개요

# VAppModule

사용자 편의 기능을 모아 놓은 Module화면상에 text 작성, Debuging 옵션 등 추가 기능 제공예제에서는 Helper 모듈로 text 출력

Page 8: Project anarchy로 3 d 게임 만들기 part_1

Custom Application

출처: http://www.slideshare.net/taru00/rpg-28230722

# VAppImpl이 인터페이스 역할

VAppImpl의 함수는 호출 조건과 순서가 결정되어 있음ex) Scene이 로딩되고 난 이후에 수행하는 함수 등각 함수 호출시 특정 동작이 일어날 수 있도록 지원

Running Loop도 VAppImpl에 포함되어 있음Loop에서 수정하면 Engine에서 업데이트 정보를 받아 화면에 렌더링

# 플러그 인?

project Anarchy의 강점하지만 vForge를 사용하기 위한 기능이라 다루지 않음

Page 9: Project anarchy로 3 d 게임 만들기 part_1

Create Sample Project

Page 10: Project anarchy로 3 d 게임 만들기 part_1

1. Copy template

Project Anarchy를 설치하면 기본적으로 Template가 포함되어 있음C:\Havok\2014.1.0\AnarchySDK\Source\Vision\Samples\Templates\Project_Template

Visual Studio 2010에 맞춰 프로젝트 property 설정 완료빌드 후 이벤트로 Runtime시 필요한 DLL 복사 됨Debug : C:\Havok\2014.1.0\AnarchySDK\Bin\win32_vs2010_anarchy\Debug\DX9Dev(release) : C:\Havok\2014.1.0\AnarchySDK\Bin\win32_vs2010_anarchy\Dev\DX9

하지만 그대로 실행되지 않는다

Page 11: Project anarchy로 3 d 게임 만들기 part_1

1. Copy template

shader file 등 실제 데이터 파일이 추가로 필요함

해결책

1. https://github.com/projectanarchy/sample-fps/blob/master/RUN_ONCE.bat 다운로드2. sln file이 있는 폴더에서 실행3. Data 폴더 생성 확인4. 재 실행

이렇게 나오면 완료~!

Page 12: Project anarchy로 3 d 게임 만들기 part_1

2. vGameSolutionCreator

Custom Project를 제작하기 위한 Tool 제공

각 플랫폼에 해당하는 프로젝트를 생성할 수 있음

Page 13: Project anarchy로 3 d 게임 만들기 part_1

2. vGameSolutionCreator

폼에 맞춰 정보를 입력 함

이미지에서는 Win32 밖에 없는데설치 과정에서 나머지 플랫폼 대상 기능을 설치하면해당 기능이 활성화 됨

Page 14: Project anarchy로 3 d 게임 만들기 part_1

2. vGameSolutionCreator

정상 생성하면 바로 실행이 가능함

다만 솔루션에서 시작 프로젝트가 Plugins에 있어DLL을 실행하려 시도하여 오류 발생

시작 프로젝트를 main.cpp가 있는 프로젝트로 변경

다시 실행하면 Copy Template와 같은 결과를 볼 수 있음

Page 15: Project anarchy로 3 d 게임 만들기 part_1

Project Structure Analysis #1

Page 16: Project anarchy로 3 d 게임 만들기 part_1

결과 화면을 다시 한 번

• 바닥을 구성하는 plane• 중앙 Cube• Counting 되는 Text Area• Cube와 함께 있는 <myComponent Test>• F1으로 컨트롤 할 수 있는 부분• wasd와 마우스로 움직이는 카메라

Page 17: Project anarchy로 3 d 게임 만들기 part_1

코드 구성은?

뭔가 많이 있어서...일단 바닥과 Cube를 찾아보자시간 더 나오면 Camera도 찾아보자

Page 18: Project anarchy로 3 d 게임 만들기 part_1

찾.아.보.자

Page 19: Project anarchy로 3 d 게임 만들기 part_1

뭔가 이상하다

눈 씻고 찾아봐도 화면에 있는 Object가 코드에는 없다

Assets\Models\Misc\Cube.Model은 있지만코드에서는 해당 Model을 ‘직접’ 불러 오지 않는다

이는 아나키 프로젝트에서 사용 방법 때문이다

프로젝트 아나키는 사실 vForge 사용을 권장한다.따라서 object 배치 등은 vForge에서 진행하며component 등의 연결도 전부 vForge에서 한다.

따라서 Document를 읽지 않고 코드 부터 접근하면 이해하기 힘들다

Page 20: Project anarchy로 3 d 게임 만들기 part_1

뭔가 이상하다

vForge 프로젝트를 열어 확인하면우리가 찾던 cube와 plane이 있다

정확히 vForge 프로젝트에 소속된Scene에 등록되어 있는 것이다

관련 내용은 향후 우리가 할 only c++ 코드 방식에 맞지 않으므로 vForge 방식에 대한 자세한 설명은 생략

Page 21: Project anarchy로 3 d 게임 만들기 part_1

뭔가 이상하다

플러그인 생성은 vForge 외에서 하면 안 됨예제 코드에서도 plugins는 게임 콘텐츠의 성격이 강함

=> 제거하고 다른 콘텐츠 추가 방법을 찾아야 함

Page 22: Project anarchy로 3 d 게임 만들기 part_1

뭔가 이상하다 정리

현재의 Anarchy Project는 vForge 기반으로 작업하도록 되어 있음(참고: http://www.slideshare.net/taru00/part1-37983083 )

그런데 제공되는 document를 보면기존 Vision 엔진 사용 방법으로 프로그래밍이 충분히 가능하도록 되어 있음

따라서 vForge를 사용하지 않고 개발하는 방법을 따라 개발 진행

Page 23: Project anarchy로 3 d 게임 만들기 part_1

- Part 2. vForge를 피하고 싶었어 -

The NEXT