220 likes | 493 Views
프로그램 개발 사례. 컴투스 모바일 서비스 개발 1 팀 안재홍 대리. 목 차. 1. 모바일 자바의 특징 2. 게임 제작 환경 3. ‘ Dragon Fire ’ 소개 4. ‘ Dragon Fire ’ 제작 과정 5. ‘ Dragon Fire ’ 스크린 샷 6. 요약 7. 참고. 1. 모바일 자바의 특징. 목표 Device 128-512K 의 메모리 여유 공간 적은 메모리 16-32 비트 프로세서 낮은 CPU power 저전력 소모 , 주로 배터리 사용
E N D
프로그램 개발 사례 컴투스 모바일 서비스 개발1팀 안재홍 대리
목 차 • 1. 모바일 자바의 특징 • 2. 게임 제작 환경 • 3. ‘Dragon Fire’소개 • 4. ‘Dragon Fire’제작 과정 • 5. ‘Dragon Fire’스크린 샷 • 6. 요약 • 7. 참고
1. 모바일 자바의 특징 • 목표 Device • 128-512K의 메모리 여유 공간 • 적은 메모리 • 16-32비트 프로세서 • 낮은 CPU power • 저전력 소모, 주로 배터리 사용 • 네트웍 연결성 : 제한된 대역폭(9600 bps 이하) • 그밖에.... • 입력,출력 환경 제약 • 부동 소수점 지원하지 않는다. • 제한적 에러 처리 • 다른 네트워킹 및 입출력 모델
2. 게임 제작환경 • Color Phone • memory : 256Kb • cpu : 27Mhz • lcd fresh rate : 4 fps • sound : ma2 ( 16poly ) • 4 Gray Phone • memory : 170Kb • cpu : 27Mhz • lcd fresh rate : 12 fps • sound : ma2 (16poly)
3. ‘Dragon Fire’소개 • 장르 • 종스크롤 슈팅 게임 • Color • 256 color & 4 gray • 속도 • color phone에서 3 fps 이상 • Sound • BGM & 특수 효과
4. ‘Dragon Fire’제작 과정 • 4-1. 기획 • 4-2. 그래픽 디자인 • 4-3. 사운드 효과 • 4-4. 프로그래밍 • 4-5. 테스트
4-1. 기획 • 세계관 & 스토리 라인 • 게임 속 배경의 5단계 • 시간여행 속의 허구와 사실 • 전쟁의 어리석음 • 등장인물 • 아몬드, 페아논, 메아쿠르, 하이맨, 코라 사령관 등.. • 무기 업그레이드 • 5단계의 공격력 업그레이드 • 주의사항 • 핸드셋 환경의 특성이 충분히 고려되어야 한다.
4-2. 그래픽 디자인 • 기획 내용에 충실한 이미지 • 전체적인 분위기와 Stage별 변화를 고려 • 부족한 용량 • 총 이미지 파일을 합한 size가 과도하지 않도록.. • 파일하나의 size가 너무 큰 것도 좋지 않음 • 부족한 색상 • 256 color 혹은 4 gray 로 표현 가능 해야 함 • 주의사항 • 일반적으로 단말기 별로 표시되는 색상의 차이가 있고, 또한 디자이너의 PC화면에서의 색상과 단말기 LCD와의 색상이 다름.
4-3. 사운드 효과 • BGM & 특수효과 • 반복 연주 곡 • 이벤트나 화면 전환의 특수 효과 • 용량의 제약 • 개별 size와 합한 size의 용량에 제한 • 주의사항 • 다양한 단말기를 지원을 고려한다면 사운드의 형식 또한 여러 가지가 있을 수 있음. (buzzer, ma1, ma2, cmx, general midi)
4-4. 프로그래밍 • 4-4-1. 슈팅 게임의 구성 요소 • 4-4-2. 유닛 관리 • 4-4-3. 사용자의 입력 처리 • 4-4-4. 충돌 검사 • 4-4-5. 배경 스크롤
4-4-1. 슈팅 게임의 구성 요소 • 구성 요소(Unit) • 내 비행기 • 사용자 키 입력에 따른 위치 이동 및 미사일 발사 • 공격력 레벨, 라이프 등의 속성 • 적 비행기 • 시나리오 따른 위치 이동과 미사일 발사 • 공격 빈도, 방어력의 등의 속성 • 미사일 • 위치 이동과 충돌 검사 • 배경 • 비행기 진행 효과를 위한 스크롤 • 아이템
4-4-2. 유닛 관리 • Unit의 자료구조 public class Unit{ int x; int y; int life; int status; } • Unit으로 선언되는 것은 내 비행기, 적 비행기, 비행기가 발사하는 미사일 등의 게임에 등장하는 대분의 객체이며, 배열로 잡아서 일괄적으로 관리 된다.
4-4-3. 사용자의 입력 처리 • 방향키 • 내 비행기의 위치 이동 • 무기키 • 미사일 발사 void keyPressed(int key){ switch(key){ case LEFT: case RIGHT: moveMyPlane(key); break; case FIRE: fireMissile();} }
4-4-4. 충돌 검사 • 충돌 검사식 (u1.x1 < u2.x2) and (u2.x1 < u1.x2) and (u1.y1 < u2.y2) and (u2.y1 < u1.y2) • 내 비행기 vs 적 비행기 • 내 비행기 vs 적 미사일 • 내 미사일 vs 적 비행기 에 대하여 수행한다.
4-4-5. 배경 스크롤 • 배경 종류 • 보드 게임 같은 정지된 배경 • 이미지를 가로 혹은 세로로 움직임 • 종, 횡 스크롤 • 큰 이미지 하나를 반복적으로 보여 주거나 타일을 이용 • 배경 Unit의 y좌표를 증가 시켜 종 스크롤을 구현한다.
4-5. 테스트 • 다양한 단말기 사양과 단말기별 특성이 있으므로 세부적인 테스트가 필요하다. • 테크니컬 테스트 • 프로그램 진행상의 오류 발견 및 수정 • UI 적합성 테스트 • 편의성을 개선을 위한 수정 • 베타 테스트 • 실 사용 테스트를 통한 질적 향상
5. ‘Dragon Fire’스크린 샷 • Stage 2 • Stage 3
6. 요약 • Mobile Java라는 언어적 제약은 많지 않다. 그러나... • 낮은 컴퓨팅 파워 • 적은 량의 메모리 • 작은 화면 사이즈 • 다양한 단말환경 을 고려하여 프로그래밍 하여야 한다.
7. 참고 • http://java.sun.com • http://developer.xce.co.kr • http://www.mobilejava.co.kr