프로젝트 시작은 한 지 좀 되었으나 개발만 맘놓고 할 수 있는 상황이 아니기 때문에 좀 소홀했다.

솔직히 지금 판을 벌여놓고 중간에 멈춘 게 굉장히 많다... 얼른 다른 것도 끝낼 수 있도록 해야겠음


목표 : 내가 좋아하는 작품의 팬게임을 만들어 보자! -> 디펜스 게임이 1인 제작하기엔 쉽지 않을까?

개발 언어 : C++ & SDL(게임 본체), MFC(게임 툴)



현재 진행 상황



할 것 메모(취소선은 완료)

- 이미지 출력

- 사운드 출력

- 이미지 효과 적용(페이드아웃, 페이드인)

- 싱글톤 이용하여 체계적으로 정리

- GUI 구현

- SDL 일부 부분 클래스로 래핑(텍스쳐, 효과음 및 BGM)

- Scene 클래스에 맵 데이터에 대한 정보 추가 -> 타일링

- 스테이지 개념 추가

- 타이틀 구현

- 대사 출력 시스템 구현

- 전반적인 게임 시스템 구현

- 대사 출력 중간에 끊고 원할 때 다시 시작할 수 있도록 함(기존 방식은 queue에  있는걸 다 불러옴)

- 그래픽 작업 -> 바닥 : 2, 오브젝트 : 2, 캐릭터 : 2, 몬스터 : 1, UI : 완료

- 스탠딩 일러스트(직접 그려야하나? -> 타블렛의 행방이 묘연하므로 찾아야함)

- 툴 작성 -> 맵 작성 및 대사 지정

- 게임 툴로 제작한 데이터를 읽어들여 게임에 적용

- 코드 정리(함수명 비슷하게 겹치는 것들 정리)

- 툴에 캐릭터 객체 정보 수정 및 추가하는 기능 덧붙임(전체적인 캐릭터 정보 및 신 당 사용할 수 있는 캐릭터 목록)


20141021~추가중...(20141113)


일일 기록

10/23 : 이것저것 좀 더 체계화시키고 구조 갈아엎음

싱글톤으로 정리하고 클래스로 래핑


10/24 : GUI 구현 진짜 힘들게 했음 딥빡

마우스 움직임을 감지해서 클릭시 위치 검사를 하고 버튼의 충돌박스 내에 있으면 클릭 처리

함수 포인터 응용하여 특정 함수 실행하도록 설정


10/25 : GUI 구현 일부 고침 (호버 지원), 타이틀 화면 구현, 대사 및 스테이지 구현

마우스 오버 시 텍스쳐에 변화를 주어

좀 더 역동적으로 보이도록 함.


시작 버튼 클릭 시 Map01로 넘어가도록 함.

종료버튼은 클릭시 당연하지만 종료하도록 함.


대사 출력모드로 설정해 놓으면 순차적으로 대사를 읽어옴. 좀 더 수정이 필요할 것으로 예상, Queue구조.

글자가 Blended라 보기 좋은데 단점이 테두리가 없어서 다소 흉함. 어떻게 해결할 지 고민 필요.


10/26 : 대사 출력 오류 수정, 스테이지 내 맵 정보 저장 및 타일링

그렇게 오래 걸리진 않았다.. 툴을 따로 만들어서 외부 파일로 쉽게 저장하고 게임 내에서 읽어들이도록 해야겠다


10/27 : 툴 기본 틀 작성(라임쩔어)

아직 감은 제대로 잡히지 않았고 중간중간 많은 실수가 있었다...

간단하게 뼈대만 만들어져 있는 상태이다. 미리보기 기능을 만들어서 인 게임으로 확인할 수 있도록 하는 것도 목표.


10/28 : 툴 70%? 완성

기본적인 기능 다 구현했고 캐릭터 정보, 맵 타일 정보에 대한 것도 구현했고 대사에 대한 것도 구현했고

dat파일로 저장하도록 만들어 두었다. 맵 수정 부분은 아직 어느정도 수정이 필요하고 저 부분만 완료되면 완벽하게 완성일 듯 하다.


11/03 : 툴 99% 완성

그간 건들지 못했으나 어쩌다보니 하루만에 생각보다 많이 진행되었다.

대사, 맵에 대한 정보를 dat파일로 저장할 수 있도록 하였고 맵 수정은 2개 계층까지 지원되도록 하였다.

맵은 지우기, 채우기(색 채우기 알고리즘, 리커시브)를 넣어서 조금이나마 더 편집하기 쉽게 만들었다.

그렇게 썩 만족스럽진 않지만 우선 기본적인 것만이라도 끝까지 완성되었다는 것에 만족.

인게임 미리보기 기능을 넣어야 할 지 고민중.


11/04 : 툴 일부 수정, 이펙트 수정, 데이터 불러오기 작업, 대사 수정, 스크린샷

툴은 이런 느낌으로 고쳤다. 시작점과 시작 방향을 정하는 기능을 추가하였다.

또한 툴로 제작된 데이터를 프로그램 상에서 읽어와 대사와 타일을 화면에 출력하는 것 까지 성공하였다.


이펙트 전환도 일부 손을 보았다. 이미지 크기를 줄여 화질이 다소 안좋은데 좀 더 매끄럽게 전환된다.


저장된 파일에서 대사와 맵 정보를 읽어와 뿌리는 것도 성공하였다. 파일이 유니코드로 저장되어 있는 데에 반해 게임 본체 프로그램은 멀티바이트로 되어있고, MFC 관련 함수는 게임 내에서 사용하지 않도록 하려 했었던지라

처음에는 어떻게 해야할 지 갈피가 잡히지 않아 조금 고생했다. 나중에 쉽게 해결하는 방법을 알았지만...

대사가 나올 때 마다 행 당 한번에 한해 이펙트와 함께 출력된다. 폰트나 외곽 라인 등에 대해 신경을 써야할 것 같다.

$n을 만나면 뉴 라인으로 인식하며 개행하여 적게 된다.


11/05 : 대사 출력 루틴 수정, 기본적인 게임 루틴 작성

그림도 직접 그렸다. 대사 창도 포토샵으로 만들었다.


도트도 직접 찍었다... 총알 회전시키고 원하는 각으로 나아가게 하는거 진짜 힘들었다...

참 많은 일들이 있었다... 정리하자면 끝이 없다.

슬롯에서 캐릭터를 선택해서 타일을 클릭하면 해당 위치에 캐릭터가 생성되며, 현재는 테스트용으로 랜덤 위치를 향해 총알을 쏘도록 하였다.

관련 알고리즘은 [C/C++] atan2 함수로 각도 구하기 및 cos, sin 함수로 x, y 좌표 구하기에 정리하였다.


11/06~11/11 : 바빴음

그동안 이것저것 많이 했는데 정리는 하기 힘들다. 그리고 조만간 제작에 힘쏟는 것이 힘들어 질 듯 하다.(시험도있고)

적 캐릭터가 라인을 따라 움직이고, 체력게이지를 출력하고, 피탄시 피가 깎이고, 적이 라인 끝까지 이동하면 플레이어 체력이 떨어지고, 0이 될 경우 게임 오버 화면을 출력시키도록 하였다.

구조 상 문제가 발견되어 루틴을 한번 갈아엎어야 한다. 로딩 그림, 게임 오버 그림 등등을 그렸다.


11/12 : 이것저것.

맵 데이터 마다 캐릭터 정보를 표시할 수 있도록 해야하는데 이 부분은 일단 나중에..

캐릭터가 일정 범위 내에서 몹 추격해서 쏠 수 있도록 했고 그 외에 뭔가..했다... 로딩화면과 게임 깼을때 화면


'프로젝트 일지 > 게임 프로그래밍' 카테고리의 다른 글

심심풀이 습작 - 5일차  (0) 2015.10.09
심심풀이 습작 - 4일차  (0) 2015.10.09
심심풀이 습작 - 3일차  (0) 2015.10.07
심심풀이 습작 - 2일차  (0) 2015.09.25
심심풀이 습작 - 1일차  (0) 2015.09.24

+ Recent posts