방준선

'분류 전체보기'에 해당되는 글 54건

  1. 영역 1
  2. 애프터버너 2 - 09월 04일 작업 중 바운더리 1
  3. 작업 1
  4. D2D 1
  5. 여러분들의 성원에 힘입어 비공개로 전환합니다 1
  6. 64일차(4-04) 벡터 재정리 1
  7. 63일차(4-03) 벡터의 외적 1
  8. 페르시아 AI 1
  9. 62일차(4-02) 벡터 1
  10. 61일차(4-01) 시연회 1

영역

쥬신게임개발학원/D2D 애프터 버너 2


플레이어


1. 비행기 후미 제트 엔진 깜빡임


2. 위치별 회전


3. 조준선


4. 미사일 발사


5. 유도 미사일 


6. 애프터 버너 사용




몬스터




보스전


기존의 뒤쫓아 오는 몬스터를 강화하자


->어떻게??


보스는 플레이어의 뒤에서 쫓아오며 락온 미사일 발사(UI에 락온 표시)




UI


1. 엔진 속도에 따른 변화


2. 스코어


3. 히트 콤보


4. 미니맵


5. 미사일




BG


1. 스테이지 별 바닥(바다->나무/돌/집 등)


2. 화면 회전시 바닥의 공전




맵툴


유니티처럼 객체를 클릭해서 이동 가능


왼쪽 다이얼로그에 선택한 대상의 좌표 표시(어떻게?? 왼쪽은 리스트의 인덱스로 접근할 수 있지만 오른쪽 선택한 대상의 인덱스를 어떻게 왼쪽으로 보내지?)




출처: http://roomjunseon.tistory.com/?page=2 [방준선]

'쥬신게임개발학원 > D2D 애프터 버너 2' 카테고리의 다른 글

1011  (1) 2017.10.11
주말 스케쥬르  (1) 2017.09.08
애프터버너 2 - 09월 04일 작업 중 바운더리  (1) 2017.09.04
작업  (1) 2017.09.04
D2D  (1) 2017.08.25

애프터버너 2 - 09월 04일 작업 중 바운더리

쥬신게임개발학원/D2D 애프터 버너 2



게임을 플레이 해본 결과

플레이어의 위치에 따라 보여지는 이미지가 달라짐

티스토리 이미지가 왜 저러죠?

크기는 378x306



0904

1. 바운더리

가운데에 있으면 가운데 이미지

가운데 하단이 바운더리 밑변에 닿으면 밑이미지

가운데 보다 위로 올라가면 위 이미지

왼쪽으로 가다 왼쪽 끝에 닿으면 왼쪽 끝 이미지

...


2.

파도는 플레이어의 위치를 기준으로 왼쪽 오른쪽으로!!

파도 자신의 기준으로 공전도 해야해

'쥬신게임개발학원 > D2D 애프터 버너 2' 카테고리의 다른 글

1011  (1) 2017.10.11
주말 스케쥬르  (1) 2017.09.08
영역  (1) 2017.09.05
작업  (1) 2017.09.04
D2D  (1) 2017.08.25

작업

쥬신게임개발학원/D2D 애프터 버너 2

플레이어

1. 비행기 후미 제트 엔진 깜빡임

2. 위치별 회전

3. 조준선

4. 미사일 발사

5. 유도 미사일 

6. 애프터 버너 사용


몬스터


보스전

기존의 뒤쫓아 오는 몬스터를 강화하자

->어떻게??

보스는 플레이어의 뒤에서 쫓아오며 락온 미사일 발사(UI에 락온 표시)


UI

1. 엔진 속도에 따른 변화

2. 스코어

3. 히트 콤보

4. 미니맵

5. 미사일


BG

1. 스테이지 별 바닥(바다->나무/돌/집 등)

2. 화면 회전시 바닥의 공전


맵툴

유니티처럼 객체를 클릭해서 이동 가능

왼쪽 다이얼로그에 선택한 대상의 좌표 표시(어떻게?? 왼쪽은 리스트의 인덱스로 접근할 수 있지만 오른쪽 선택한 대상의 인덱스를 어떻게 왼쪽으로 보내지?)

'쥬신게임개발학원 > D2D 애프터 버너 2' 카테고리의 다른 글

1011  (1) 2017.10.11
주말 스케쥬르  (1) 2017.09.08
영역  (1) 2017.09.05
애프터버너 2 - 09월 04일 작업 중 바운더리  (1) 2017.09.04
D2D  (1) 2017.08.25

D2D

쥬신게임개발학원/D2D 애프터 버너 2

애프터 버너

s16GfxViewer mpr-10932.90 mpr-10934.94 mpr-10936.98 mpr-10938.102

s16GfxViewer mpr-10933.91 mpr-10935.95 mpr-10937.99 mpr-10939.103

s16GfxViewer epr-10942.92 epr-10943.96 epr-10944.100 epr-10945.104

s16GfxViewer epr-10946.93 epr-10947.97 epr-10948.101 epr-10949.105

'쥬신게임개발학원 > D2D 애프터 버너 2' 카테고리의 다른 글

1011  (1) 2017.10.11
주말 스케쥬르  (1) 2017.09.08
영역  (1) 2017.09.05
애프터버너 2 - 09월 04일 작업 중 바운더리  (1) 2017.09.04
작업  (1) 2017.09.04

여러분들의 성원에 힘입어 비공개로 전환합니다

쥬신게임개발학원/3. DirectX SDK의 기초 : DirectX SDK

여러분들의 성원에 힘입어 비공개로 전환합니다

'쥬신게임개발학원 > 3. DirectX SDK의 기초 : DirectX SDK' 카테고리의 다른 글

메모리 릭 찾기  (0) 2017.10.16
64일차(4-04) 벡터 재정리  (1) 2017.08.04
63일차(4-03) 벡터의 외적  (1) 2017.08.03
62일차(4-02) 벡터  (1) 2017.08.02

64일차(4-04) 벡터 재정리

쥬신게임개발학원/3. DirectX SDK의 기초 : DirectX SDK

벡터 정리(코딩 기준)

벡터: 힘(화살표의 길이)과 방향을 가지고 있는 데이터(방향 벡터)

최소2개 최대 4개

2개: X,Y 축 선상의 힘과 방향

4개: 3차원(x,y,z) + 위치인지 방향인지(w)

힘과 방향: 원점(0,0)부터 시작

화살표가 어디에 있든 길이와 방향이 같으면 모두 같은 벡터


위치벡터: 단순히 객체의 위치를 표현하기 위한 2,3차원 상에서 사용하기 위해서 사용함

벡터의 길이: 피타고라스의 정의 루트(x 밑변 제곱 + y 높이 제곱 + z 깊이 제곱)


단위 벡터: 벡터의 길이가 1인 벡터
Normalize(단위 벡터 화): 벡터의 각 요소 xyz를 벡터의 길이로 나눔

->방향을 유지한채 길이를 1로 만듦

->초기화(0, NULL)이 아님!->단순한 위치 벡터가 됨


벡터의 덧셈: 객체의 위치가 점으로 표현되 있으면 이 위치에다 이동하고 싶은 방향 벡터를 더함 + 이동할 거리

->해당 방향으로 움직임


벡터의 뺄셈: 방향 벡터

A-B(B가 A를 바라봄) B-A(A가 B를 바라봄)

단위 벡터화 한 후 상수를 곱하면 방향은 유지한 채 한 틱당 해당 상수만큼 움직인다

-> 상대방을 따라가게 하기 위해 사용


벡터의 내적: 2개의 방향 벡터 A벡터 ‘ B벡터

위치 벡터가 아님!

결과: 하나의 벡터 A를 또 다른 벡터위에 수직으로 투영시킨 벡터 A`의 길이와 투영받은 벡터 B의 길이를 곱함

= ||A`|| * ||B|| = ||A|| * 코사인세타 * ||B|| -> 단위 벡터화 해서 A와 B의 길이는 1이 됨

-> == 1 * 1 * 코사인세타 == 각 원소끼리 곱하고 더한 것

코사인 세타 : 밑변/빗변 ||A|| / ||A`||

||A`|| = ||A|| * 코사인세타

응용: 두 벡터 사이의 각도를 구할 때


면접 질문:

인성(대학 때 생활..)

기술(이터레이터로 stl로 이레이즈할때 주의해야 할 사항)


벡터의 외적 : A벡터 x B벡터

두 벡터에 모두 수직인 벡터를 구한다

3D가서 회전축을 기준으로 할 때(비행 슈팅게임)


포폴

얼마나 게임답게 만들었는가?

이 게임의 시작과 끝을 정확하게 맺었는가?

-> 단순한 테스트 프로젝트가 아닌

컨테츠의 양


63일차(4-03) 벡터의 외적

쥬신게임개발학원/3. DirectX SDK의 기초 : DirectX SDK

회사가서 요령부리지 말고

최소 6개월~1년동안은 오버아닌 오버해서 야근도 해보고

남들이 내 노력을 안 알아줘주는거 같아요 하지말고 해봐

관심없는 거처럼 보여도 다 알고있어

그때가면 파트장도 다 알아 다 보여

절대 스타트업 회사(30명이하인)회사는 가지마!


내적을 활용할 수 있는 점

마름모 타일.. 쿼터니안?

마우스를 클릭했을 때 마름모 안에 있는지

직선의 방정식을 구하고

y=ax+b

ax+by+c = 0

4개의 직선을 구하고 각각 마우스 좌표를 대입해서 확인하면 돼


직선의 방정식을 안하고 이용

->내적


마름모의 끝점에서

마우스의 좌표를 뺀다->방향 벡터

0~180도 이면 오른쪽

180~ 왼쪽

1,2 -> -2, 1 수직

2개 바꾸고 -1붙이면 수직

나중에 게임상에서 구현할때 다시 보여줄게요


그림자 구할때,,

가장 많이 쓸때는 벡터와 벡터 사이의 각도

->어제 말했던 추적 시 캐릭터의 회전


면접 질문 stl 벡터, 리스트, 맵

면접은 정말 운빨이에요

주로 빡센 회사는 스마일게이트

연봉이 좀 쎈데 그만큼 많이 물어봐요



벡터의 외적

두 벡터의 벡터곱->결과가 벡터로 나오는 곱하기에요

1, 0, 0

0, 1, 0

= 0, 0 ,1

굳이 곱하는 순서는 기억할 필요까지는 없어요

외적의 결과 = 두 벡터의 모두 수직인 벡터

같은 벡터를 외적하는데 순서에 따라 나오는 벡터의 방향이 달라진다

->그래서 그걸 어따 쓰는데요?

2D에서는 쓸일이 없어요

z를 쓰기 때문에


캐릭터가 항상 바라보는 벡터의 업 벡터를 임시로 만들어서 내적하면 앞을 보면서 왼쪽 오른쪽으로 이동시킬 수 있다


비행시뮬레이션

어려워요

아무리 화려하게 만들어도 재미가 없어요


내적의 표현

A ‘ B D3DXVec3Dotc(벡터2개);

외적의 표현

A x B D3DXVec3CrossC(벡터2개);



페르시아 AI

쥬신게임개발학원/2. 윈도우 API를 이용하여 2D어플리케이션 개발

몬스터의 AI

기존의 문제점:

Attack Collider

공격받았을 때 기존 자신의 공격 콜라이더를 안 없앤다


기존의 방식:

몬스터가 4프레임(찌르는 모션) 때 공격 콜라이더 생성

5프레임(찌르고 뒤로 가는 모션) 때 공격 콜라이더 삭제


방안1.

5프레임 때 삭제하는 것이 아닌 공격 여부에 대한 bool 변수??

true이면서 4프레임이 아니면 무조건 삭제??

-> 이럴 경우의 문제점: 플레이어의 경우 카운터


if ((m_dwState & STATE_GET_ATTACKED || m_isBlocked) && m_isAttack)

Remove_AttackCollider();


몬스터의 추적


기존의 몬스터는 플레이어와의 거리를 통해서 이동하고 공격범위(단순한 float) 내에 들어오면 공격


문제점: 일반 공격은 다 막아야 하는 몬스터가 이동 중일 경우 플레이어의 공격에 맞게 되있다


몬스터가 플레이어와의 거리를 통해서 이동하는 것은 그대로 두되 공격범위 대신

몬스터의 프레임 X사이즈를 intersectRect로 이용해서 좀 더 정확한 거리 계산??


점프해서 벽에 올라타기

???d

62일차(4-02) 벡터

쥬신게임개발학원/3. DirectX SDK의 기초 : DirectX SDK

다이렉트 X

그래픽 카드, 사운드 카드

기능들을 CPU에만 집중하는 것이 아닌 다른 하드웨어로 분배

이 기능에 집중된 하드웨어가 나오기 시작(그래픽,, 사운드,,)

그래픽 카드 메모리(렌더링해야 하는 자원들)

리소스를 로드할 때 선택

그래픽 카드 장치를 통한 로드-> 시스템 메모리에 저장? / 그래픽 카드 메모리에 저장?

빠른 게임의 진행

이미지의 픽셀마다 알파값 조절 투명/반투명


KGCA, 게임스쿨,,

SBS,, MBC,, 쥬신,,

SGA


유니티 > 언리얼(주가가 더 높아요)


다이렉트 X 원시적인 코드

유니티 프로그램

다이렉트 X를 이용하면 유니티와 유사한 엔진을 만들 수 있다


유니티 상용엔진만 다룰줄아는 툴러,,

프로젝트가 넘어지면 잘릴 가능성이 높다


OPENGL


벡터 행렬(게임 수학)


중학 물리. 수학


벡터

객체를 움직이고 따라가고 추적

힘과 방향

다이렉트에서 지원하고 있는 구조체

d3dxVector2,3,4 3가지 타입


힘이란?

어떠한 상수로 표현하기 좋은 데이터에요


방향?

각도를 이용하지 않는다->좌표

물리에선 화살표로 사용

화살표가 길면 힘이 쎄다(길이 = 힘)

화살표가 가리키는 방향(방향)

힘이 같아도 방향이 다르면 두개 다 다른 벡터

같은 점을 바라보는 것이 같은 벡터가 아닌

화살표가 얼마나 기울어져 있는지가 관점

길이가 같고 각도가 같으면 같은 벡터


기존의 API좌표(왼쪽 위가 0,0)가 아닌 수학 좌표(오른쪽 아래가 0,0)

원점 0,0 끝점 1,1이면 피타고라스의 정리로 인해 길이를 구할 수 있다

끝점의 x,y로 방향을 알 수 있다(1,1 의 경우 오른쪽 위 2,2의 경우 길이 2 오른쪽 위)

화살표는 반드시 원점부터 시작이 되야 한다(길이를 알 수 없기 때문)


벡터를 표현하기 위한 좌표는 반드시 2개부터 시작(float 실수형 x,y)

벡터3는 x,y,z 3차원 3D

벡터4 x,y,z,w(크기와 방향을 표현하지 않더라,, 객체의 위치)

vec3 vPos(단순히 크기와 방향이 아닌 위치 정보를 가지고 쓰기도 한다)

힘과 방향 Dir 변수명으로 구분하기로 했지만

제대로 안지켜졌기에

불변수로 추가해서 방향 벡터일 경우 0, 위치 벡터일 경우 1)


행렬에서 w값에 의해서 재미있는 일이 생겨나기 시작해요

난 재밌는데 여러분도 재밌을진 몰라요


벡터4같은 경우는 잘 안써요

가장 명확한건 벡터4이지만 변수명으로 구분하는 경우가 가장 많아요

float 4바이트만큼 더 메모리를 쓰기 때문에

그렇지만 쉐이더에선 벡터4를 겁나 많이 써요


위치 벡터

객체들의 위치를 표현하기 위해서 많이 써요


이 벡터를 가지고 어떻게 게임/코드에서 사용하는데?



61일차(4-01) 시연회

쥬신게임개발학원/2. 윈도우 API를 이용하여 2D어플리케이션 개발

5일 동안의 방학이 끝나고 시연회 발표날!


오늘을 노래로 표현하자면







정말이지 이게 아닌데..


내 순서는 총원 26명중 22번째!

새벽까지 코딩하느라 제정신이 아닌 상태로 학원에 갔다

오전은 핫식스 좌몽 맛으로 버텼는데

오후가 되니 졸려 죽을맛,,,

시연회는 1시부터 시작이었고

나는 22번째라 한참 남았었다


차례대로 나가서 간단한 자기소개와 게임을 설명하다보니 어느덧 내 차례가 왔다

졸려서 멍 때리다 내 차례도 놓칠뻔했다,,,


그리고 대망의 발표!


보스가 중간보스를 소환하고

중간보스는 플레이어의 일반 공격은 다 무시합니다하고

말끝나기 무섭게

중간보스는 플레이어의 공격에 맞았다


어?


막아놨는데 왜 찔려?

왜?

하필이면 그때?


해골은 플레이어의 일반 공격에 맞아도 죽지 않고 자파가 쏜 아따따뚜겐에 맞아야만 죽는다는 걸 설명해야 하는데 쇼크받은 나머지 바로 넘어가버렸다


심지어 막보 자파는 텔레포트 하다 

자신이 쏜 아도겐에 맞고 죽었다




정말 총체적 난국이었다,,


버거센세는 그동안의 페르시아의 왕자 모작 중에 가장 잘 만든 것이라 하셨지만,,

맘이 편치 않았다,,,


점수는 10점 만점 중 8.5점으로 4명이서 공동 2등이 되었다,,


1등은 메탈슬러그(본편에 맞먹을 정도로 정말 잘 만들었다)와 테일즈 위버!

메탈슬러그를 만드신 형은 전공자셨기에 납득이 됐지만

테일즈위버를 만드신 누님은 비전공자셨다


이번 방학동안 열심히 집에서 코딩을 하고 이 정도면 되겠지? 라고 생각했었다

좀 더 반성하고 더 열심히 하도록 하자


버거 센세의 전체적 총평


전반적으론 나쁘진않았으나 전체적으로 컨텐츠 부족이 심함.

추가적인 컨텐츠를 꾸준히 더 추가하길 바람.



앞으로 달려가다 벽에 매달리는 것, 아이템을 추가(체력 회복)

AI 강화, 남은 스테이지 20개 추가 등 좀 더 보강을 해야겠다


아 그리고 반의 남막내분이 구현한 몹의 주변에 큰 렉트를 하나 더 둬서 해당 렉트 안에 플레이어가 들어오면 따라다니게 만드는 부분은 좋은 아이디어 같다