SlideShare a Scribd company logo
Creating 3D Game Client Program
With Project Anarchy
- Part 1. Visual Studio에서 게임 프로그램 실행하기 -
분 류 NHN NEXT 1기 실전프로젝트 산출물
실습 업체 블루홀 스튜디오
프로젝트 팀명 그랜드부다페스트(문진상/신동찬)
작성자 신동찬
Created Date 2014-11-15
자료를 읽기에 앞서 알아야 할 것
당신이 자료에서 참고하거나 배울 수 있는 것
기대했을 수 있지만 자료에 없는 내용
- 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 시스템
본 자료에서 사용하는 파일 위치는 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이 설치 되어 있어야 함
Framework
Project Anarchy?!
처음 보는 녀석이라고 겁먹을 필요 없음
과거 ‘Vision Engine’을 멀티 플랫폼(모바일 대응 등)화 했다고 생각하면 쉬움
( http://www.slideshare.net/agebreak/1126-mmorpg )
게임을 만들기 위해 필요한 rendering, control 등을 wrapping해
함수 호출만 하면 바로 사용 할 수 있도록 만들어 놓은 Framework
Vision SDK는 정적 라이브러리( Lib ) 형태의 프레임워크를 제공 함
따라서 기본 사용은 다음 형태를 가짐
1. 헤더를 include 해 함수 이름을 코드 내 확인 시켜 줌
2. 런타임시 Lib, DLL을 통해 실행됨
Framework 개요
# VAppBase 클래스
VisionApp_cl 상속으로 엔진 기능 적용
하위 클래스로 확장되며 플랫폼 특화 기능 추가
사용자가 직접 control하지 않아도 됨
# VAppImpl 클래스( 중요 )
사용자와 직접 접하는 클래스
VAppBase 클래스는 VAppImpl 클래스의 인스턴스를 가지고 있음
사용자가 작업한 내용을 VAppBase를 통해 실제 엔진에서 적용되도록 함
따라서 사용자가 Vision의 Application Framework를 사용하기 위해서는 반드시 상속 받아야 함
Framework 개요
# VAppModule
사용자 편의 기능을 모아 놓은 Module
화면상에 text 작성, Debuging 옵션 등 추가 기능 제공
예제에서는 Helper 모듈로 text 출력
Custom Application
출처: http://www.slideshare.net/taru00/rpg-28230722
# VAppImpl이 인터페이스 역할
VAppImpl의 함수는 호출 조건과 순서가 결정되어 있음
ex) Scene이 로딩되고 난 이후에 수행하는 함수 등
각 함수 호출시 특정 동작이 일어날 수 있도록 지원
Running Loop도 VAppImpl에 포함되어 있음
Loop에서 수정하면 Engine에서 업데이트 정보를 받아 화면에 렌더링
# 플러그 인?
project Anarchy의 강점
하지만 vForge를 사용하기 위한 기능이라 다루지 않음
Create Sample Project
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
하지만 그대로 실행되지 않는다
1. Copy template
shader file 등 실제 데이터 파일이 추가로 필요함
해결책
1. https://github.com/projectanarchy/sample-fps/blob/master/RUN_ONCE.bat 다운로드
2. sln file이 있는 폴더에서 실행
3. Data 폴더 생성 확인
4. 재 실행
이렇게 나오면 완료~!
2. vGameSolutionCreator
Custom Project를 제작하기 위한 Tool 제공
각 플랫폼에 해당하는 프로젝트를 생성할 수 있음
2. vGameSolutionCreator
폼에 맞춰 정보를 입력 함
이미지에서는 Win32 밖에 없는데
설치 과정에서 나머지 플랫폼 대상 기능을 설치하면
해당 기능이 활성화 됨
2. vGameSolutionCreator
정상 생성하면 바로 실행이 가능함
다만 솔루션에서 시작 프로젝트가 Plugins에 있어
DLL을 실행하려 시도하여 오류 발생
시작 프로젝트를 main.cpp가 있는 프로젝트로 변경
다시 실행하면 Copy Template와 같은 결과를 볼 수 있음
Project Structure Analysis #1
결과 화면을 다시 한 번
• 바닥을 구성하는 plane
• 중앙 Cube
• Counting 되는 Text Area
• Cube와 함께 있는 <myComponent Test>
• F1으로 컨트롤 할 수 있는 부분
• wasd와 마우스로 움직이는 카메라
코드 구성은?
뭔가 많이 있어서...
일단 바닥과 Cube를 찾아보자
시간 더 나오면 Camera도 찾아보자
찾.아.보.자
뭔가 이상하다
눈 씻고 찾아봐도 화면에 있는 Object가 코드에는 없다
AssetsModelsMiscCube.Model은 있지만
코드에서는 해당 Model을 ‘직접’ 불러 오지 않는다
이는 아나키 프로젝트에서 사용 방법 때문이다
프로젝트 아나키는 사실 vForge 사용을 권장한다.
따라서 object 배치 등은 vForge에서 진행하며
component 등의 연결도 전부 vForge에서 한다.
따라서 Document를 읽지 않고 코드 부터 접근하면 이해하기 힘들다
뭔가 이상하다
vForge 프로젝트를 열어 확인하면
우리가 찾던 cube와 plane이 있다
정확히 vForge 프로젝트에 소속된
Scene에 등록되어 있는 것이다
관련 내용은 향후 우리가 할 only c++ 코드 방식에 맞지 않으므로 vForge 방식에 대한 자세한 설명은 생략
뭔가 이상하다
플러그인 생성은 vForge 외에서 하면 안 됨
예제 코드에서도 plugins는 게임 콘텐츠의 성격이 강함
=> 제거하고 다른 콘텐츠 추가 방법을 찾아야 함
뭔가 이상하다 정리
현재의 Anarchy Project는 vForge 기반으로 작업하도록 되어 있음
(참고: http://www.slideshare.net/taru00/part1-37983083 )
그런데 제공되는 document를 보면
기존 Vision 엔진 사용 방법으로 프로그래밍이 충분히 가능하도록 되어 있음
따라서 vForge를 사용하지 않고 개발하는 방법을 따라 개발 진행
- Part 2. vForge를 피하고 싶었어 -
The NEXT

More Related Content

PPTX
모바일 크로스플랫폼 비교 - 월간슬라이드 4월
PDF
Project anarchy로 3d 게임 만들기 part_2_vforge피하기
PDF
[부스트캠프 Tech Talk] 최재필_P 스테이지에서 Git으로 협업하기
PDF
[부스트캠프 Tech Talk] 김동현_리팩터링을 통한 내실 다지기
PDF
[부스트캠프 Tech Talk]손정현_PUB/SUB를 적용한 Todo앱 만들기(순한맛)
PDF
ant로 안드로이드 앱을 자동으로 빌드하자
PDF
[부스트캠프 Tech Talk] 이정현_Github Workflow 활용하기
PDF
Flipper 불완전 정복
모바일 크로스플랫폼 비교 - 월간슬라이드 4월
Project anarchy로 3d 게임 만들기 part_2_vforge피하기
[부스트캠프 Tech Talk] 최재필_P 스테이지에서 Git으로 협업하기
[부스트캠프 Tech Talk] 김동현_리팩터링을 통한 내실 다지기
[부스트캠프 Tech Talk]손정현_PUB/SUB를 적용한 Todo앱 만들기(순한맛)
ant로 안드로이드 앱을 자동으로 빌드하자
[부스트캠프 Tech Talk] 이정현_Github Workflow 활용하기
Flipper 불완전 정복

What's hot (20)

DOCX
Gradle guide
PPTX
Logcat과 함께 하는 모바일 웹 디버깅
PDF
[부스트캠프 Tech Talk] 김봉진_WandB로 Auto ML 뿌수기
PDF
실시간으로 안드로이드 프론트엔드 작업하기
PDF
[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...
PDF
20130709 gradle
PDF
Golang+on+analytics+and+blockchain
PDF
gradle로 안드로이드 앱 빌드하기
PPTX
The Future of C# and .NET Framework
PDF
Android studio 디버거 조금 더 잘 쓰기
PDF
[부스트캠퍼세미나]권혁우_REST는 바이바이_ GraphQL과 함께하는 칼퇴시대
PDF
그레이들(Gradle)로 만드는 안드로이드 요리법
PDF
[DS Meetup] iPad로 가벼운 분석환경 구축해보기
PDF
모두의 클라우드 딥러닝
PPTX
Tech Update - The Future of .NET Framework (김명신 부장)
PDF
[부스트캠퍼세미나]육진혁_(대충 도커 쓰자는 이야기)
PDF
Learning Laravel
PDF
Front end dev 2016 & beyond
PPTX
Jenkins를 활용한 javascript 개발
PDF
Softcon_하재권_Only javascript의 하이브리드 앱서버 도전기
Gradle guide
Logcat과 함께 하는 모바일 웹 디버깅
[부스트캠프 Tech Talk] 김봉진_WandB로 Auto ML 뿌수기
실시간으로 안드로이드 프론트엔드 작업하기
[Korea Linux Forum] Implementing web based online multiplayer tetris with Ope...
20130709 gradle
Golang+on+analytics+and+blockchain
gradle로 안드로이드 앱 빌드하기
The Future of C# and .NET Framework
Android studio 디버거 조금 더 잘 쓰기
[부스트캠퍼세미나]권혁우_REST는 바이바이_ GraphQL과 함께하는 칼퇴시대
그레이들(Gradle)로 만드는 안드로이드 요리법
[DS Meetup] iPad로 가벼운 분석환경 구축해보기
모두의 클라우드 딥러닝
Tech Update - The Future of .NET Framework (김명신 부장)
[부스트캠퍼세미나]육진혁_(대충 도커 쓰자는 이야기)
Learning Laravel
Front end dev 2016 & beyond
Jenkins를 활용한 javascript 개발
Softcon_하재권_Only javascript의 하이브리드 앱서버 도전기
Ad

Similar to Project anarchy로 3 d 게임 만들기 part_1 (20)

PPTX
Project Anarchy(Vision Engine)으로 게임 툴 만들기! part1
PDF
Project anarchy로 3d 게임 만들기 part_5_waste of time shoveling
PDF
Project anarchy로 3d 게임 만들기 part_3_움직여라 움직여
PPTX
프로젝트 아나키로 Rpg 만들기 프로그래밍
PDF
Project anarchy로 3d 게임 만들기 part_4_network_memory management
PDF
06_게임엔진구성
PDF
[IGC 2017] 넥스트플로어 김영수 - Protocol:hyperspace Diver 개발 포스트모템
PDF
[15.02.14] 진짜로땜빵하라하시면해야겠지만할시간도없고아무생각도없을때면어쩌면좋지라고소리쳐봤자아무도대답안해줄꺼고어쩔수없이이렇게저렇게어4신...
PDF
[IGC2017] Protocol:hyperspace Diver 개발 포스트모템
PPTX
C#과 유니티를 통한 게임개발 입문.
PPTX
Project Anarchy(Vision Engine)으로 게임 툴 만들기! part2
PDF
Visual shock vol.2
PDF
나만의 엔진 개발하기
PDF
숭실대 프로젝트 아나키 워크샵 part1
PPT
게임 프레임워크의 아키텍쳐와 디자인 패턴
PDF
모바일환경에서의 크로스 플랫폼_3D_렌더링엔진_제작과정
PDF
멀티스레드 렌더링 (Multithreaded rendering)
PDF
Game programming patterns 2
PPTX
DirectX + C++을 이용한 WindowsStore App과 Windows Phone용 게임 개발
PPTX
Ndc2013 정리(upload버전)
Project Anarchy(Vision Engine)으로 게임 툴 만들기! part1
Project anarchy로 3d 게임 만들기 part_5_waste of time shoveling
Project anarchy로 3d 게임 만들기 part_3_움직여라 움직여
프로젝트 아나키로 Rpg 만들기 프로그래밍
Project anarchy로 3d 게임 만들기 part_4_network_memory management
06_게임엔진구성
[IGC 2017] 넥스트플로어 김영수 - Protocol:hyperspace Diver 개발 포스트모템
[15.02.14] 진짜로땜빵하라하시면해야겠지만할시간도없고아무생각도없을때면어쩌면좋지라고소리쳐봤자아무도대답안해줄꺼고어쩔수없이이렇게저렇게어4신...
[IGC2017] Protocol:hyperspace Diver 개발 포스트모템
C#과 유니티를 통한 게임개발 입문.
Project Anarchy(Vision Engine)으로 게임 툴 만들기! part2
Visual shock vol.2
나만의 엔진 개발하기
숭실대 프로젝트 아나키 워크샵 part1
게임 프레임워크의 아키텍쳐와 디자인 패턴
모바일환경에서의 크로스 플랫폼_3D_렌더링엔진_제작과정
멀티스레드 렌더링 (Multithreaded rendering)
Game programming patterns 2
DirectX + C++을 이용한 WindowsStore App과 Windows Phone용 게임 개발
Ndc2013 정리(upload버전)
Ad

More from Dong Chan Shin (16)

PDF
C# / .NET Framework로 미래 밥그릇을 챙겨보자 (Basic)
PDF
User experience Design에 활용되는 각종 용어 정리
PDF
몰입 인지공백 프래그난쯔법칙 스토리텔링
PDF
Unreal summit 2014 다시 보기
PDF
RTS 게임 ui에서 확인 할 수 있는 rts 게임 usability
PDF
Proactor/Reactor Server io 성능 분석
PDF
More effective c++ 항목30부터
PDF
More effective c++ chapter4 이후 항목 29까지
PDF
More effective c++ chapter3 4
PDF
C++ try catch 어디까지 가봤니
PDF
More effective c++ chapter1 2_dcshin
PDF
Dx관련 alignment 정리 by 은자림
PDF
Effective c++ chapter7_8_9_dcshin
PDF
Effective c++ chapter5 6_ 131039 신동찬
PDF
Effective c++ chapter3, 4 요약본
PDF
Effective c++ chapter1 2_dcshin
C# / .NET Framework로 미래 밥그릇을 챙겨보자 (Basic)
User experience Design에 활용되는 각종 용어 정리
몰입 인지공백 프래그난쯔법칙 스토리텔링
Unreal summit 2014 다시 보기
RTS 게임 ui에서 확인 할 수 있는 rts 게임 usability
Proactor/Reactor Server io 성능 분석
More effective c++ 항목30부터
More effective c++ chapter4 이후 항목 29까지
More effective c++ chapter3 4
C++ try catch 어디까지 가봤니
More effective c++ chapter1 2_dcshin
Dx관련 alignment 정리 by 은자림
Effective c++ chapter7_8_9_dcshin
Effective c++ chapter5 6_ 131039 신동찬
Effective c++ chapter3, 4 요약본
Effective c++ chapter1 2_dcshin

Project anarchy로 3 d 게임 만들기 part_1

  • 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를 사용하기 위해서는 반드시 상속 받아야 함
  • 7. Framework 개요 # VAppModule 사용자 편의 기능을 모아 놓은 Module 화면상에 text 작성, Debuging 옵션 등 추가 기능 제공 예제에서는 Helper 모듈로 text 출력
  • 8. Custom Application 출처: http://www.slideshare.net/taru00/rpg-28230722 # VAppImpl이 인터페이스 역할 VAppImpl의 함수는 호출 조건과 순서가 결정되어 있음 ex) Scene이 로딩되고 난 이후에 수행하는 함수 등 각 함수 호출시 특정 동작이 일어날 수 있도록 지원 Running Loop도 VAppImpl에 포함되어 있음 Loop에서 수정하면 Engine에서 업데이트 정보를 받아 화면에 렌더링 # 플러그 인? project Anarchy의 강점 하지만 vForge를 사용하기 위한 기능이라 다루지 않음
  • 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. 재 실행 이렇게 나오면 완료~!
  • 12. 2. vGameSolutionCreator Custom Project를 제작하기 위한 Tool 제공 각 플랫폼에 해당하는 프로젝트를 생성할 수 있음
  • 13. 2. vGameSolutionCreator 폼에 맞춰 정보를 입력 함 이미지에서는 Win32 밖에 없는데 설치 과정에서 나머지 플랫폼 대상 기능을 설치하면 해당 기능이 활성화 됨
  • 14. 2. vGameSolutionCreator 정상 생성하면 바로 실행이 가능함 다만 솔루션에서 시작 프로젝트가 Plugins에 있어 DLL을 실행하려 시도하여 오류 발생 시작 프로젝트를 main.cpp가 있는 프로젝트로 변경 다시 실행하면 Copy Template와 같은 결과를 볼 수 있음
  • 16. 결과 화면을 다시 한 번 • 바닥을 구성하는 plane • 중앙 Cube • Counting 되는 Text Area • Cube와 함께 있는 <myComponent Test> • F1으로 컨트롤 할 수 있는 부분 • wasd와 마우스로 움직이는 카메라
  • 17. 코드 구성은? 뭔가 많이 있어서... 일단 바닥과 Cube를 찾아보자 시간 더 나오면 Camera도 찾아보자
  • 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를 사용하지 않고 개발하는 방법을 따라 개발 진행
  • 23. - Part 2. vForge를 피하고 싶었어 - The NEXT