1. Creating 3D Game Client Program
With Project Anarchy
- Part 1. Visual Studio에서 게임 프로그램 실행하기 -
분 류 NHN NEXT 1기 실전프로젝트 산출물
실습 업체 블루홀 스튜디오
프로젝트 팀명 그랜드부다페스트(문진상/신동찬)
작성자 신동찬
Created Date 2014-11-15
2. 자료를 읽기에 앞서 알아야 할 것
당신이 자료에서 참고하거나 배울 수 있는 것
기대했을 수 있지만 자료에 없는 내용
- 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 시스템
3. 본 자료에서 사용하는 파일 위치는 Default 설치 위치를 기반으로 함
기본 설치 위치
C:Havok2014.1.0AnarchySDK
Project Anarchy 사용을 위해서는 vforge를 우선 실행해야 함
Project Anarchy는 무료로 사용 가능한 대신 몇 가지 제약 사항이 존재
본 실습 과정은 vforge를 실행한 것을 기본으로 한다
< vForge 미실행시 발생하는 error >
Visual Studio 2010 기준으로 설명
Project Anarchy는 Visual Studio 2010 기준으로 실행 됨
Visual Studio 2013에서 실행 하기 위해서는 2010이 설치 되어 있어야 함
5. Project Anarchy?!
처음 보는 녀석이라고 겁먹을 필요 없음
과거 ‘Vision Engine’을 멀티 플랫폼(모바일 대응 등)화 했다고 생각하면 쉬움
( http://www.slideshare.net/agebreak/1126-mmorpg )
게임을 만들기 위해 필요한 rendering, control 등을 wrapping해
함수 호출만 하면 바로 사용 할 수 있도록 만들어 놓은 Framework
Vision SDK는 정적 라이브러리( Lib ) 형태의 프레임워크를 제공 함
따라서 기본 사용은 다음 형태를 가짐
1. 헤더를 include 해 함수 이름을 코드 내 확인 시켜 줌
2. 런타임시 Lib, DLL을 통해 실행됨
6. Framework 개요
# VAppBase 클래스
VisionApp_cl 상속으로 엔진 기능 적용
하위 클래스로 확장되며 플랫폼 특화 기능 추가
사용자가 직접 control하지 않아도 됨
# VAppImpl 클래스( 중요 )
사용자와 직접 접하는 클래스
VAppBase 클래스는 VAppImpl 클래스의 인스턴스를 가지고 있음
사용자가 작업한 내용을 VAppBase를 통해 실제 엔진에서 적용되도록 함
따라서 사용자가 Vision의 Application Framework를 사용하기 위해서는 반드시 상속 받아야 함
10. 1. Copy template
Project Anarchy를 설치하면 기본적으로 Template가 포함되어 있음
C:Havok2014.1.0AnarchySDKSourceVisionSamplesTemplatesProject_Template
Visual Studio 2010에 맞춰 프로젝트 property 설정 완료
빌드 후 이벤트로 Runtime시 필요한 DLL 복사 됨
Debug : C:Havok2014.1.0AnarchySDKBinwin32_vs2010_anarchyDebugDX9
Dev(release) : C:Havok2014.1.0AnarchySDKBinwin32_vs2010_anarchyDevDX9
하지만 그대로 실행되지 않는다
11. 1. Copy template
shader file 등 실제 데이터 파일이 추가로 필요함
해결책
1. https://github.com/projectanarchy/sample-fps/blob/master/RUN_ONCE.bat 다운로드
2. sln file이 있는 폴더에서 실행
3. Data 폴더 생성 확인
4. 재 실행
이렇게 나오면 완료~!
14. 2. vGameSolutionCreator
정상 생성하면 바로 실행이 가능함
다만 솔루션에서 시작 프로젝트가 Plugins에 있어
DLL을 실행하려 시도하여 오류 발생
시작 프로젝트를 main.cpp가 있는 프로젝트로 변경
다시 실행하면 Copy Template와 같은 결과를 볼 수 있음
19. 뭔가 이상하다
눈 씻고 찾아봐도 화면에 있는 Object가 코드에는 없다
AssetsModelsMiscCube.Model은 있지만
코드에서는 해당 Model을 ‘직접’ 불러 오지 않는다
이는 아나키 프로젝트에서 사용 방법 때문이다
프로젝트 아나키는 사실 vForge 사용을 권장한다.
따라서 object 배치 등은 vForge에서 진행하며
component 등의 연결도 전부 vForge에서 한다.
따라서 Document를 읽지 않고 코드 부터 접근하면 이해하기 힘들다
20. 뭔가 이상하다
vForge 프로젝트를 열어 확인하면
우리가 찾던 cube와 plane이 있다
정확히 vForge 프로젝트에 소속된
Scene에 등록되어 있는 것이다
관련 내용은 향후 우리가 할 only c++ 코드 방식에 맞지 않으므로 vForge 방식에 대한 자세한 설명은 생략
21. 뭔가 이상하다
플러그인 생성은 vForge 외에서 하면 안 됨
예제 코드에서도 plugins는 게임 콘텐츠의 성격이 강함
=> 제거하고 다른 콘텐츠 추가 방법을 찾아야 함
22. 뭔가 이상하다 정리
현재의 Anarchy Project는 vForge 기반으로 작업하도록 되어 있음
(참고: http://www.slideshare.net/taru00/part1-37983083 )
그런데 제공되는 document를 보면
기존 Vision 엔진 사용 방법으로 프로그래밍이 충분히 가능하도록 되어 있음
따라서 vForge를 사용하지 않고 개발하는 방법을 따라 개발 진행