동양권 서브컬쳐씬에서 매력적인 캐릭터를 지칭하는 대표적인 개념으로 '모에(萌え)'라는 것이 있다. '모에'란 무엇인가? 어떤 캐릭터를 '모에'하다고 볼 수 있는가? '모에'한 캐릭터를 어떻게 작성할 것인가?
본 슬라이드는 다양한 예를 통해 '모에'에 대해 새로운 관점을 제시한다.
동양권 서브컬쳐씬에서 매력적인 캐릭터를 지칭하는 대표적인 개념으로 '모에(萌え)'라는 것이 있다. '모에'란 무엇인가? 어떤 캐릭터를 '모에'하다고 볼 수 있는가? '모에'한 캐릭터를 어떻게 작성할 것인가?
본 슬라이드는 다양한 예를 통해 '모에'에 대해 새로운 관점을 제시한다.
[NDC_16] 캐릭터 한 달에 하나씩 업데이트 하기 : '최강의 군단' 스킬 개발 툴 포스트 모템과 차기작 '건파이트 맨션' 툴 프리뷰승민 백
NDC 2016 발표 자료입니다
아래는 공개된 세션의 소개입니다
------------------------------------------------------------
게임을 개발하다 보면 액션, RPG를 비롯한 많은 장르에서 캐릭터의 스킬을 만들어야 하는 때가 옵니다.
다양한 스킬의 기획을 제한하지 않으면서도, 빠르게 개발한다는 두 가지 목표를 달성하기 위해서는 어떻게 개발해야 하는지 고민하고 프로젝트에 적용한 결과를 공유하는 세션입니다.
다음과 같은 세 가지 개발 방법을 보여드리고, 각각의 장단점을 비교하는 형태로 진행됩니다.
1. 고전적인 하드 코딩 방식
2. 한 달에 하나씩의 캐릭터 업데이트를 단행했던 <최강의>에서 사용했던 스킬 툴 방식 (온라인 액션RPG, 언리얼3 기반)
3. 현재 개발 중인 모바일 프로젝트 <건파이트>에서 시도하고 있는 언리얼4 블루프린트 기반 방식
저는 운 좋게도 게임 PD로서 지난 10년 동안 몇 개의 게임을 개발하고, 서비스하는 경험을 가질 수 있었습니다.
본 세션에서는 제가 그동안 개발했던 게임들을 간단히 돌아보고, 개발 과정에서 시행착오를 통해 배운 것들을 살펴보려고 합니다.
개인적인 경험이라 편향이 있을 수 있겠지만, 게임 PD나 디렉터 커리어를 목표로 하시는 분들께 참고가 될 수 있으면 좋겠습니다.
[NDC_16] 캐릭터 한 달에 하나씩 업데이트 하기 : '최강의 군단' 스킬 개발 툴 포스트 모템과 차기작 '건파이트 맨션' 툴 프리뷰승민 백
NDC 2016 발표 자료입니다
아래는 공개된 세션의 소개입니다
------------------------------------------------------------
게임을 개발하다 보면 액션, RPG를 비롯한 많은 장르에서 캐릭터의 스킬을 만들어야 하는 때가 옵니다.
다양한 스킬의 기획을 제한하지 않으면서도, 빠르게 개발한다는 두 가지 목표를 달성하기 위해서는 어떻게 개발해야 하는지 고민하고 프로젝트에 적용한 결과를 공유하는 세션입니다.
다음과 같은 세 가지 개발 방법을 보여드리고, 각각의 장단점을 비교하는 형태로 진행됩니다.
1. 고전적인 하드 코딩 방식
2. 한 달에 하나씩의 캐릭터 업데이트를 단행했던 <최강의>에서 사용했던 스킬 툴 방식 (온라인 액션RPG, 언리얼3 기반)
3. 현재 개발 중인 모바일 프로젝트 <건파이트>에서 시도하고 있는 언리얼4 블루프린트 기반 방식
저는 운 좋게도 게임 PD로서 지난 10년 동안 몇 개의 게임을 개발하고, 서비스하는 경험을 가질 수 있었습니다.
본 세션에서는 제가 그동안 개발했던 게임들을 간단히 돌아보고, 개발 과정에서 시행착오를 통해 배운 것들을 살펴보려고 합니다.
개인적인 경험이라 편향이 있을 수 있겠지만, 게임 PD나 디렉터 커리어를 목표로 하시는 분들께 참고가 될 수 있으면 좋겠습니다.
NHN NEXT 게임 서버 프로그래밍 강의 자료입니다. 최소한의 필요한 이론 내용은 질문 위주로 구성되어 있고 (답은 학생들 개별로 고민해와서 피드백 받는 방식) 해당 내용에 맞는 실습(구현) 과제가 포함되어 있습니다.
참고로, 서버 아키텍처에 관한 과목은 따로 있어서 본 강의에는 포함되어 있지 않습니다.
This is the slide that Terry. T. Um gave a presentation at Kookmin University in 22 June, 2014. Feel free to share it and please let me know if there is some misconception or something.
(http://t-robotics.blogspot.com)
(http://terryum.io)
NDC 2014 Beyond Code: <야생의 땅:듀랑고>의 좌충우돌 개발 과정 - 프로그래머가 챙겨주는 또 다른 개발자 사용 설명서영준 박
(과거 NDC 2014에서 했던 강연 자료입니다. 발표 당시엔 공유에 힘든 부분이 있어 게임 출시 이후에 공개되는 점 양해를 드립니다.)
프로그래머의 시각에서 게임 개발 프로세스를 보면, 여러 에이전트 들이 특정한 목적을 가지고 동시에 정보를 처리하는 일련의 로직 조합이라고 생각해볼 수 있습니다. 테크니컬 하게 정보 처리 로직을 작성하고 그 효율을 탐구하는 업무가 바로 프로그래머의 주요 업무 중 하나입니다. 그렇다면 프로그래머의 시각으로 개발 프로세스를 접근해 보면 새로운 인사이트를 얻는 부분이 있지 않을까요?
<야생의 땅:듀랑고>에는 새로움이 가득한 도전이 많이 있습니다. 이러한 새로움을 향한 도전은, 비단 게임 피처 뿐만 아니라 개발 프로세스에서도 마찬가지로 녹아 있습니다. 실제로 개발 프로세스 관리에 수많은 시도들이 있었고 지금도 계속 되고 있습니다.
그간 시도했던 여러 개발 프로세스에 대한 소개를 하고, 그것을 활용한 피처 개발, 프로토타이핑 사례 등을 공유하고자 합니다.
XBOX360이나 PS3 등 성능과 표현력이 높은, 이른바 넥스트젠 (차세대) 콘솔에서 액션 장르의 게임이 차지하는 비중과 중요성은 날이 갈 수록 높아지고 있다. 이런 추세에 힘입어 넥스트젠 게임에 등장하는 애니메이션은 그 볼륨이 늘어나는 것은 물론 점차 복잡한 제어를 요구하고 있다. 특히 적은 볼륨을 통해서 다채로운 애니메이션을 만들어내기 위한 절차적 애니메이션 기법이나 게임 내의 복잡한 환경에 적절하게 반응하도록 만드는 상태 제어 기법 등은 첨단 렌더링 기법에 비견할 수 있을 정도로 넥스트젠 게임에서 가장 중요한 기술 중 하나로 자리잡고 있다.
이 강의에서는 이러한 넥스트젠 애니메이션 기술 트렌드와 온라인 게임에 기존 솔루션을 바로 통합하기 어려운 이유에 대해서 살펴보고, 실제로 온라인에서 동작할 수 있는 아키텍처에 대해서 마비노기 2의 개발 사례를 통해 살펴보도록 한다.
### 큐브 이동시키기
- Transform
- Rigidbody-Velocity
- 2가지 방법으로 큐브 이동
- Find 함수
- tag란?
- 게임 오브젝트들 구분하기
- Find한 오브젝트로 이동하기
### 총알 구현하기
#### 총알 생성하기
- 대충 총알 만들기
- Velocity를 줘보자
- 총알을 prefab화하기
- Instantiate
- Time.deltaTime을 이용해서 Timer 만들기
- 3초마다 총알 발사!
#### 총알이 충돌했을 때
- OnTriggerEnter(Collider) : 물리적인 충돌하기
- OnColliderEnter(Collision) : 물리적인 탄성 충돌
- GetComponent<컴포넌트>() : 해당 게임오브젝트의 원하는 컴포넌트 추출
#### 총알 구분하기
- CompareTag("Target 태그명")
#### 총알 구현을 위해 필요한 추가적인 함수들
- Destroy 함수
- Destroy 나중에 하려면?
- OnBecameInvisible
### 적 만들기
- 적 자동 사격
- Player 사망 구현
- 총알을 쏘면서 목표지점까지 가기
### 2D 프로젝트로도 해보기
- 시간 없으면 과제로
* PPT에서 사용한 Icon 출처: Icons made by Pixel perfect, iconixar, Freepik, Nhor Phai, photo3idea_studio from www.flaticon.com
경기게임아카데미 4기에 지원할 당시 제출하였던 포트폴리오입니다. 현재 두룸학술연구회는 경기 게임아카데미 4기 사업에 선정되어 프로젝트 사라나기 개발을 진행 중입니다.
이 포트폴리오를 만들 당시, 슬라이드셰어에서 많은 좋은 자료들을 참고하였기에 저 또한 다른 사람들에게 혹시라도 도움이 되지 않을까 싶어서 부족하지만 업로드 해 봅니다.
관련 포트폴리오에 관한 질문 사항이 있으시다면 제 이메일 주소인 yapi42@gmail.com 으로 보내주신다면 답변해드릴 수 있는 한도 내에서 최대한 답변토록 하겠습니다. 감사합니다.
유니티의 UI란?
- UI를 위한 개념들
- 화면 해상도
- Canvas
- Anchor
- Render Mode (Overlay, Camera, World)
- 텍스트
- 버튼
- 이미지
- Fill을 이용한 다양한 활용법
- 이미지 버튼
- World 게임오브젝트의 마우스 감지
- 씬(Scene) 이동
- 점수창 만들기
12. Rakion의 게임 오브젝트는..
이미 서비스중인 게임인 만큼, 굉장히 많이 만들어져 있었고, 컴포넌트 기반 게임오브젝트의 거의 모
든 강연에서 나온 계층구조 설계의 거의 모든 문제점들이 발생하고 있는 상황이었습니다.
KASA2008, 김성헌님의 C++ Component System GDC2009, Game Object Component Architecture
38. 플레이어 캐릭터
플레이어 캐릭터는 유저의 컨트롤(실제 입력, 네트워크)과 시나리오의 흐름에 영향을 받고, 검과 총 두 가지
의 무기를 사용하여 몬스터를 사냥합니다. 따라서 무기를 체인지하면 행동패턴이 달라집니다.
UserInputControl ScenarioControl RemoteControl
Local인 경우 Remote인 경우
검 Actor 총 Actor
활성화
39. 플레이어 캐릭터
플레이어 캐릭터는 유저의 컨트롤(실제 입력, 네트워크)과 시나리오의 흐름에 영향을 받고, 검과 총 두 가지
의 무기를 사용하여 몬스터를 사냥합니다. 따라서 무기를 체인지하면 행동패턴이 달라집니다.
UserInputControl ScenarioControl RemoteControl
Local인 경우 Remote인 경우
검 Actor 총 Actor
활성화
40. 회의 중
좀비는 왜 느 그래도 좀비는
린게 컨셉이 걸어서 다가오
지? 무섭지 않 는게 매력이
자나! 있다구!
41. 회의 중
그럼 뛰어다니 그럼 처음엔
게 만들면 되 걷다가 특정
지! 그런 좀비 조건이 만족되
영화 많자나! 면 뛰자!
42. 좀비 몬스터
처음에는 느리게 걸어 다니면서 몽둥이를 휘두르지만, 데미지를 받아 HP가 30% 이하가 되고 특정 조건이 만
족되면 다리가 떨어지면서 팔로 엄청 빠르게 이동을 하고 점프를 하여 입으로 물어뜯는 공격을 합니다.
AIControl
몬스터기본공격 몬스터기본이동
Actor
공격 이동
데이터1 데이터2 Model1 Model2
변신 전
43. 좀비 몬스터
처음에는 느리게 걸어 다니면서 몽둥이를 휘두르지만, 데미지를 받아 HP가 30% 이하가 되고 특정 조건이 만
족되면 다리가 떨어지면서 팔로 엄청 빠르게 이동을 하고 점프를 하여 입으로 물어뜯는 공격을 합니다.
AIControl
Actor
공격 이동
좀비상체이동
좀비물어뜯기공격
데이터1 데이터2 Model1 Model2
변신 후
51. 컴포넌트 기반 게임 오브젝트의 형태
게임 오브젝트는 기본적인 데이터만을 가지고 있고, 모든 데이터와 기능은 컴포넌트로 만들어서 게임오브젝
트에 붙이는 형태입니다. 오브젝트의 형태별로 필요한 기능만을 가질 수 있도록 설계된 방식입니다.
ModelComponent
MotionTreeComponent HealthComponent
오브젝
TouchComponent AIComponent
트
MoveableComponent PhysicsComponent
TargetableComponent
85. 입력 X
실행 중 액션 X UserInputController
Idle 명령
ModelComponent
오브젝트
ActionTable ActionLayer
Idle - CharacterIdle
86. 입력 X
실행 중 액션 X UserInputController
Idle 명령
ModelComponent
오브젝트
Idle 명령에
연결된 액션 검색
ActionTable ActionLayer
Idle - CharacterIdle
87. 입력 X
실행 중 액션 X UserInputController
Idle 명령
ModelComponent
오브젝트
Idle 명령에
연결된 액션 검색
ActionTable ActionLayer
CharacterIdle 실행
Idle - CharacterIdle
88. 입력 X
실행 중 액션 X UserInputController
Idle 명령
ModelComponent
오브젝트
Idle 명령에
연결된 액션 검색
ActionTable ActionLayer
CharacterIdle 실행
Idle - CharacterIdle CharacterIdle
Idle 애니메이션 재생
91. 이동할 위치 클릭
UserInputController MoveToPosition 명령
ModelComponent MoveDataComponent
오브젝트
ActionTable ActionLayer
Idle - CharacterIdle CharacterIdle
MoveToPosition - CharacterMoveToPosition
92. 이동할 위치 클릭
UserInputController MoveToPosition 명령
ModelComponent MoveDataComponent
오브젝트
MoveToPosition 명령에
연결된 액션 검색
ActionTable ActionLayer
Idle - CharacterIdle CharacterIdle
MoveToPosition - CharacterMoveToPosition
93. 이동할 위치 클릭
UserInputController MoveToPosition 명령
ModelComponent MoveDataComponent
오브젝트
MoveToPosition 명령에
연결된 액션 검색
ActionTable ActionLayer
CharacterMoveToPosition
실행
Idle - CharacterIdle CharacterIdle
MoveToPosition - CharacterMoveToPosition
94. 이동할 위치 클릭
UserInputController MoveToPosition 명령
ModelComponent MoveDataComponent
오브젝트
MoveToPosition 명령에
연결된 액션 검색
ActionTable ActionLayer
CharacterMoveToPosition
실행
Idle - CharacterIdle CharacterIdle
CharacterMoveToPosition
MoveToPosition - CharacterMoveToPosition
95. 이동할 위치 클릭
UserInputController MoveToPosition 명령
ModelComponent MoveDataComponent
오브젝트
MoveToPosition 명령에
연결된 액션 검색
ActionTable ActionLayer
CharacterMoveToPosition
실행
Idle - CharacterIdle
CharacterMoveToPosition
MoveToPosition - CharacterMoveToPosition
96. 이동할 위치 클릭
UserInputController MoveToPosition 명령
ModelComponent MoveDataComponent
오브젝트
MoveToPosition 명령에
위치 값 설정
연결된 액션 검색
이동속도
ActionTable ActionLayer 참조
CharacterMoveToPosition
실행
Idle - CharacterIdle
CharacterMoveToPosition
MoveToPosition - CharacterMoveToPosition