------

[ AD ] Port Monitor ( Try to use a Best WebSite Monitoring Tool )

------

==1과 게임과 모바일

1장 게임 개요

(1) 게임의 어원과 기원

 - 인도 유러피언 계통의 "ghem"에서 파생됨 

(2) 게임의 정의

  • 요즘은 전자게임을 대표로함

(3) 게임의 핵심 - 시간과 공간

  • Surfaceview, Timer 개념이 합쳐질 때 하나의 애니메이션이 완성됨
  • , 터치 등의 액션이 포함되어 게임이 완성됨
  • 가장중요한 것은 아이디어, 스토리, 시나리오, 컨셉이다.

5과 캐릭터

 

1 캐릭터의 이해

 

이장은 간단한 설명과 게임의 경험담 설명

(1) 캐릭터의 이해

캐릭터는 스프라이트 라고 함

 

캐릭터의 속성

  • 방향
  • 액션
  • 효과
  • 변형

 

(2) 캐릭터의 방향

방향

뷰 방식

  • 사이드뷰 : 2방향 (좌우)
  • 탑 뷰: 4방향 (상하좌우)
  • 쿼터 뷰: 8방향 (상하좌우 그 중간 4방향)
  • 스타크래프트 : 16방향
  • 밀러 기능으로 쉽게 구현할 수 있지만 칼을 든 자세가 오른손과 왼손으로바뀌는 오류가 존재할 수 있다.

 

(3) 캐릭터의 액션

액션

RPG 기준

  • 서있기
  • 걷기
  • 뛰기
  • 공격1
  • 공격2
  • 마법스킬1
  • 마법스킬2
  • 데미지
  • 일어나기
  • 죽기
  • 환생하기

 

(4) 캐릭터의 효과

효과

  • 서있기: 다리흔들기, 좌우 흔들기
  • 뛰기 : 뒤로 효과 발생
  • 공격1: 칼 잔상
  • 공격2
  • 마법1
  • 마법2
  • 데미지
  • 일어나기
  • 죽기
  • 환생하기

  • 효과는 보통 몇가지를 만들어 놓고 주인공 및 다른 캐릭터에 사용 가능하도록 한다.
  • 게임의 리얼리티는 효과에 좌우한다.
  • 캐리터 뿐만 아니라 전반적으로 사용됨 비, 구름,  등등 변화
  • 적정선의 조율이 필요하다.
  • 이미지의 적용등 최적화 선에 적용이 필요하다.

 

(5) 캐릭터 변형

변형

  • 무기
  • 모자 신발
  • 레벨

 

  • 얼굴은 그대로 하고 의상과 악세사리로 변경해서 처리 할 수 있다.
  • 변형은 액션과 방향에 대해서도 함께 고려해야 한다.

 

(6) 캐릭터 이미지 실제 예제

148페이지

  • 최소의 이미지로 만들어 놓은 것으로 한장의 이미지를  모두 넣어 놓은 것이다.
  • 안드로이드에서는 여기서 제공되는 효과보다 더 주어야 한다.
  • 등을 보이지 않는 캐릭터이기에 사이드 뷰 방식이다.
  • 게임 퀄리티와 개발기간, 개발자 인원은 비례한다.

 

(7) 캐릭터 레벨

레벨과 난이도는 같은 개념으로 봐도 된다.

게임의 단계가 높아 질 수록 난이도도 높아져야 한다.

 

게임 엔진을 만들때 난이도에 대해서 기획자들과 논의를 많이 해야 한다.

 

2D게임을 만들면 기획서 문서가 많이 나온다. 요소들이 많기에 여러 종류가 나올 것이다.

전부 수치화 해 놓은다. 엑셀 사용

  • 이름, 스킬여부, 공격거리, 공격범위, 데미지, 대기, 발동, 이동 명중, 타넷개수 공격자 사망
  • 테스트하면서 내용을 튜닝해 나간다.
  • 이런 수치값이 정해지지 않았다고 게임을 구현할 수 있도록 해 놓도록 하고...
    구현한 후 기획자에게 값을 변경할 수 있도록 해 주어야 한다.

 

기획 - 개발 - 테스트 

  • 기획자게 제공한 내용을 프로토타입을 빨리 만들어서
  • 기획자가 재 테스트해서 기획 내용을 보강 완성, 발란스를 정의해 갈 수 있도록 해야 한다.

 

일반적인 내용도 문서화가 필요하다.

 

게임회사에서는 회의는 오전, 오후 1회씩, 또는 수시로.. 한다.

회의후에는 문서로 정리한다.

 

캐릭터 레벨 테이블

 

시나리오. 7시간 게임 짜리 50~60 

  • 등장인물 
  • 시나리오 작가에 의뢰해서 받은 내용 (컨셉을 주고 내용을 받은 것임)

 

대화 내용등의 내용은 스테이지 진입시 스크립트 파일을 만들어서 한다.

스크립트 문법만 기획자에게 제공하면 기획자는 내용을 기록해서 제공해 준다.

 

스크립트 툴을 사용하기도 하지만, 게임 개발자가 직접 만들어서 사용하기도 한다.

 

z: 게임에서는 일반 확장자 이름을 그대로 사용하지 않는다.
헤더를 날리고 사용한다. 게임사 자체만의 포맷을 사용해서 사용한다
.
타인은 해석 불가능하게 한다.

 

백그라운드 4<== 사운드 제작 전문가에게 의뢰, 몇만원  

그런데 저작권을 넘겨 받을때에는 좀더 단가가 높아진다.

임팩트사운드 30 <== 몇만원 정도 한다.


 

 

2 캐릭터 애니메이션 구현/이동

 

4시간 동은 책의 내용을 직접 코딩하고 내용을 이해 한다

실습하자. 캐릭터 동작시키기

 

page 152 / 4시간 

(1) 캐릭터 애니메이션 구현 / 이동

(2) 4방향, 탑 뷰 방식 게임

153page

w=64, h=96

이미지를 짤랐다.

 

추가작업

=캐릭터 2, 3명 증가 시키기

=4방향 이동확장 캐릭터 1

=방향키 사용시 수직 수평 이동

=터치 사용시 브레스젠함 알고리즘

 

게임은 플래그 처리가 매우 중요하다.


04단원 이미지 처리와 구조

1장 이미지 파일의 이해

이 장은 포토샵과 유사한 paint shop pro 버전을 제공하고 이 PC어플의 사용 방법 설명과 이미지에 대한 이해를 위해서 설명함

(1) 비트맵 파일의 실행

(2) 이미지 파일의 이해

칼러는 8bit 256 컬러가 동작시 부하가 적다

 

palette : 기본으로 설정해라

Reduction: method Error diffusion: 색이 뭉게지는 것이 적다

 

알리아싱 = 계단 현상

 

Bitmap 이미지 Color Depth

 

1bit 2Color

4bit 16Color

8bit 256Color

16bit 65536/32768 Color(15bit)

32bit 42 / 16777216 color (24bit) true color 라고 함

 

jpg는 압축을 푸는데 시간이 걸린다.

bmp는 압축되어 있지 않지만 용량이 크다.

 

64x79x256이면

64x79*3byte (3byte RGB가 각각 1byte로 정의됨 - 결국 1pixel 3바이트를 사용함)

256파렛트 x 4byte

 

이미지 크기는 화소수 + 팔렛트 + 헤더로 해서 구성되어진다.

 

8bit에서는 png에서는 압축이 적용되지 않고 , 24bit png에서는 압축이 적용되어 진다.

 

2 24 + 1byte 49억개

인간의 눈은 16bit 정도라고 한다.

 

2장 빛의 삼원색과 비트 처리

(1) 빛의 삼원색과 비트처리

255, 255, 255는 흰색

0, 0, 0 검정색

 

(2) 팔레트 

파렛트 256색깔를 기준으로 해서 최적화 색상을 만들어 낸다

한개의 픽셀은 1byte만 사용하고 파렛트의 넘버값만 갖고 사용한다.

게임은 파렛트 8bit, 256 컬러를 사용한다.

 

(3) 16bit 구조

16bit구조는 3가지 방식이 있다.

5 6 5  R G B : 가장 많이 사용하였다. <== 안드로이드 방식

1 5 5 5  A R G B  : 알파값 적용  5bit(32)

4 4 4 4 A R G B  : 

 

VGA 640 480

QVGA 320 240

QCIF   220 176

WVGA  900 640 Iphone

           800 480

에뮬:     480 320

 

디더링: 번짐현상




게임 화면입니다.

  • 방향조작 : 방향 조작은 단말기를 핸들처럼 좌,우로 기울이면 됩니다. 
  • 브레이크 : 좌측 아래쪽에 브레이크가 있습니다. 브레이크를 지속적으로 누르고 있으면 후진을 합니다. 브레이크에서 손을 때면 자동으로 가속 됩니다. 
  • Drift(드리프트) : 드리프트를 하고 싶다면 이동하려는 방향으로 단말기를 기울이고 브레이크 버튼을 누르면 됩니다. 드리프트를 멈추려면 다시한번 브레이크를 터치 하면 됩니다.
  • 부스트(가속) : 우측 아래에 별모양의 버튼이 부스터 입니다. 우측 상단에 속도계 아래 부스터 게이지가 표시 됩니다. 드리프트를 하면 게이지가 올라갑니다. 부스터는 3단 연속으로 사용 가능합니다.

http://www.gamedonga.co.kr/gamenews/gamenewsview.asp?sendgamenews=41722

2010.09.06

뒤바뀐 개발환경, 스마트폰 게임 개발사들의 ‘생존전략’은

스마트폰 시대가 도래했다. 난공불락의 요새처럼 군림했던 피처폰이 한 순간에 허물어지고 스마트폰의 점유율이 급증하고 있다.
스마트폰의 공세에 가장 타격이 큰 콘텐츠 분야는 모바일 게임분야다.

모바일 게임 분야는 스마트폰 수요층과 타겟층이 대부분 겹쳐 이미 체감 점유율이 30% 가까이 다운되는 등 타격이 심각하다.

특히 업계에서 내년 6월 경이면 피처폰(WIPI) : 스마트폰의 체감 점유율이 50% 수준으로 균등해질 것이라는 전망이 함께 나오면서 모바일 게임 개발사의 변신이 불가피해진 상황이다.


<달라진 개발 환경 : 개발사에겐 이중고로>

개발 환경에 있어서 스마트폰의 가장 큰 특징 중 하나는 PC와 유사할 정도의 높은 성능을 가지고 있다는 점이다.
 
1GHz에 준하는 프로세서(CPU) 외에도 컴퓨터로 따지면 3D 그래픽 카드와 같은 역할을 하는 전용 가속 칩을 대부분의

스마트폰이 탑재하고 있어 기존 피처폰과는 근본적으로 게임 설계를 다르게 해야 한다.


<달라진 개발 환경 : 저물어가는 도트의 시대>

스마트폰의 해상도는 안드로이드의 경우 대부분 800*480을 지원하고, 아이폰4의 경우 960*640을 지원한다. 여기에 각종 타블렛pc류까지 더해지면 해상도는 1024*768로까지 확장된다.

 

이렇게 커져버린 해상도는 기존의 도트 개발자(점을 찍어 그래픽을 표현하는 디자이너)들을 떨게 만드는 요인이 되고 있다. 기존의 WIPI폰이 240*320의 작은 해상도와 용량 제한으로 인해 ‘도트로 개발할 수 밖에’ 없는 환경이었다면 스마트폰은 큰 해상도로 오히려 ‘도트로 개발하면 불리한’ 환경이다.

 

이미 한국이 아닌 북미나 일본, 유럽 등에 출시된 대부분의 2D 게임들이 도트가 아닌 브러시 형태의 그래픽으로 제작되고 있으며 도트 개발자들의 경우 일부 UI 등을 담당하면서 일러스트 등으로 직종을 변경하고 있다.


<달라진 개발 환경 : 3D 게임의 도래>

 

게임로프트의 ‘아스팔트5’,

컴투스의 ‘홈런배틀 3D’ 등 가능성을 보여주는 게임들이 많다.


3D로 제작하면 기기에 따른 해상도 변경을 따로 해줄 필요가 없으며 시점 변경 등 유리한 점이 훨씬 많다.

특히 스마트폰은 해상도 버전이 굉장히 많은데, 2D로 제작할 경우 관련 리소스를 처리하는데 굉장히 많은 비용이 든다.

따라서 업계에서는 스마트폰 게임들도 비디오게임의 진화된 모습처럼 점점 3D가 대세로 자리잡을 것이라고 예측하고 있다.


<생존전략1 : 대기업은 자체적으로, 중소기업은 합치는 형태로>



<생존전략2 : 문제가 되는 불법 복제.. 부분유료화 비율 높여야>


'온라인게임 > 모바일 게임' 카테고리의 다른 글

게임과 모바일  (0) 2010.09.17
캐릭터  (0) 2010.09.17
이미지 파일의 이해  (0) 2010.09.17
안드로이드 아스팔트 5  (0) 2010.09.09
Windows Phone 7 XNA / 게임 개발 환경  (0) 2010.09.09

http://bcho.tistory.com/504

게임 이라는 컨텐츠가 스마트폰의 킬러앱중의 하나

 윈폰7에서 XNA를 기반으로 개발된 게임은 X-BOX에서도 수정없이 포팅되서 돌아갈 수 있기..


Collision 처리 (충돌처리-두개의 개체가 충돌하였다는 것을 알려 주는 처리-총알에 맞았다. )가 API하나로 해결되고

각종 3D 이펙트(먼지가 난다거나, 샤방샤방 별가루가 떨어지는 처리등)이 아주 쉽게 개발되는 ...

(사실 제가 게임 개발했을때는 이런건 다 날코딩으로 만들어야 했습니다.
 심지어 Direct X 이전에는 애니메이션을 표현하기 위한 스프라이트 처리 엔진 조차 인라인 어셈블리로
다 만들어야 했으니까요. )


특이한것만

리소스 로딩
게임에 필요한 음성,캐릭터 이미지,백그라운드 이미지들을 로딩하고 관리해야 합니다. 보통 파일을 열어서 일일이 읽어서 메모리에 적재하고, 필요한 파일들도 배포할때, 묶어서 배포해야 하는데, 이부분이 상당히 편리합니다.


필요한 리소스들을 비주얼 스튜디오에서 레퍼런스 부분에 Import만 하면됩니다. 리소스들을 사용할때는



3 스크린 지원
MS의 전략중에 강력한 전략중 하나가, 3 스크린이라는 전략이 있습니다. TV-PC-모바일을 모두 지원하고, 하나의 플랫폼처럼 지원하겠다는 겁니다. VOD 서비스를 TV-PC-모바일을 통해서 각 장점을 통해서 하겠다 모.. 그런건데..
XNA기반의 게임 역시 이 전략의 연장선산에 있습니다.

이를 가능하게 하려면, XNA로 개발한 게임을 해당 타겟 플랫폼에 맞게 빌드하면됩니다

위에 스크린샷에도 보면 알 수 있듯이 Windows와 X-Box 360용 프로젝트로 만들어서 컴파일


게임 처리 프레임웍
게임 개발 플랫폼에서 당연한것이겠지만, 게임의 실행 사이클에 맞는 프레임웍을 제공합니다.
게임은 보통 하나의 화면 단위로 진행되고, 하나의 화면은 리소스 로딩후, [ 입력을 받고, 캐릭터의 위치나 충돌 처리등과 같은 계산을 하고, 계산 결과에 따라서 화면과 음성으로 출력] 하는 루프를 반복합니다. 이런 프레임웍들이 내부적으로 다 구현되어 있습니다.
예를 들어 화면 처리 패턴은
class GameplayScreen : GameScreen
이런식으로, 상위 클래스로 지정되어 있구요. :)
스프라이트 처리 패턴을 보면 다음과 같습니다.
SpriteBatch.Draw(tankTexture, player.Position, Color.White);
이런식으로요. 상당히 편리하져.
아직 전체 프레임웍을 다 본게 아니라서 모라 말하기는 어렵지만, 일단 게임 개발의 생산성을 높이고, 게임 개발 패턴을 위한 상당히 성숙된 프레임웍을 갖추고 있습니다.


충돌 처리 로직
void CheckForCollision()
{
  BoundingBox bb1 = 


    new BoundingBox( new Vector3(spritePosition1.X - (sprite1Width / 2), 

                                 spritePosition1.Y - (sprite1Height / 2), 0),

                     new Vector3(spritePosition1.X + (sprite1Width / 2), 

                                spritePosition1.Y + (sprite1Height / 2), 0));
  BoundingBox bb2 = 
    new BoundingBox(new Vector3(spritePosition2.X - (sprite2Width / 2), 

                                spritePosition2.Y - (sprite2Height / 2), 0),

                    new Vector3(spritePosition2.X + (sprite2Width / 2), 

                               spritePosition2.Y + (sprite2Height / 2), 0));
  if (bb1.Intersects(bb2))
  {
      soundEffect.Play();
  }
}

BoundingBox라는 사각형 공간을 정의 / 두 공간간에 충돌을 intersects
벡터는 3개의 좌표 / X,Y,Z축   /  2D의 예제라서 Z축을 0

'온라인게임 > 모바일 게임' 카테고리의 다른 글

게임과 모바일  (0) 2010.09.17
캐릭터  (0) 2010.09.17
이미지 파일의 이해  (0) 2010.09.17
안드로이드 아스팔트 5  (0) 2010.09.09
내년 6월이면 스마트폰 체감 비중 50% : 개발사들의 전략  (0) 2010.09.09

+ Recent posts