티스토리 뷰

할것도 없고 방황하느니 예전에 하다만거 


다 만들고 난뒤에 소스코드가 극히 단순해 보이는 답안을 보기로 했다.


MMO Flappy bird 는 시기 상조인듯 하다. 


쓸때없이 c# unity 연동 보다가 시간만 낭비했다.


일 자체가 그리 끌리지도 않는듯 하다.


Framework 자체는 책에서 기본을 제공해 주지만 cocos2d-iphone과는 비교할 봐가 안되는 듯 하다.


아래 작업하는데 시간이 괘 들었다. 



최초 시작: 2013.10.9 - 계기는 팀장이 짜증나게 해서 게임 업계로 전직하려는 목표가 다시 기억남.


몇주간 "세가의 신입 사원 교육 과정에서 배우는 게임 프로그래밍의 정석" 


앞에꺼 만들고 보가다가 이 프로젝트 시작함.


2013.11.17 - 진도 안아가고 지침. 열성적을 할 목표가 없음. 이거 만든다 해도 PC 밖에 안되니


원래는 빨리 만들고 unity라던가 cocos로 올린다였는데 ㅎㅎ


2014.1.22 - 나이먹고 되돌아 보니 1년간 책본것이 거의 없어서 다시 이거라도 시작함.


설날 때 책 들고 내려갔음.


2014.2.22 - 홍대서 작업하다가 지지. Flappy bird 제작으로.


2014.3.23 - 프로젝트 다시 시작. 하는데 퀄러티가 눈물을 앞을 가린다. 진짜. ㅠㅠ


13:40: 위의 글 다 적고 상태 파악.




1. 폭탄 한번 놓고 난뒤에 이전 키 입력이 남아있어서인지 자꾸 다시 놓는다.

2. 시작 메뉴 미완성.

3. 시작하기 전 Get Ready 메뉴 미완성

4. 몬스터는 제자리서 진동 할 뿐

5. 한칸식 움직이게 하더라도 몬스터 뒤로 오게는 하지 말자. (기본 몬스터 이야기)

6. 몬스터 AI 제작.

7. 몬스터, 유저 죽을 때 애니메이션 없네. 추가해야하고

8. 애니메이션 넣으려면 리소스 조사.

9. 2인플레이도 넣어라는데 1인플 수정으로 되려나 살펴봐야 하고

10. 유저 죽으면 다음 sequence로 전이 해야하지

11. 배경 음악 재생. 효과음 재생

12. 맵 초기화 해야함 유저 죽고 다시 시작하면

13. 폭탄 터지고 난뒤에 그 Blast에 닿아도 살아있네? 왜 바꿨지 이걸?


아.... 망할.


근대 이게 다 내가 코드 못짜서 이리된거지


책에서는 if else로 STL 안쓰고 더 적은 코드로 위에 것을 수행했다.


괜히 코드 복잡하게 짜고 있었다는 것을 깨닫게됨.


13:45: 밥먹어야하는데 사수가 아직 도착하지 아니함. 배고프다.


흠 제일 문제가 제자리서 자기 발전을 하는 몬스터. 라서 수정하려했더니


왜 지지쳤는지 알게됨.


// 주어진 위치에서 이동가능한 방향을 반환한다.

using std::for_each;


static point dir[] = { point(0,1), point(0,-1), point(1,0), point(-1,0) };


vector<point> directions;


for_each(dir, dir+4, [&](point direction) { 

if (isPath(state, mPosition, mPosition+direction))

directions.push_back(direction); 

});


if (directions.size() == 0)

return;


point direction = directions[random(directions.size()-1)];

mPosition += direction;


몬스터 이동을 위한 구문이 위와 같음.

거지 같은거 단순화 햇음에도 너무 복잡함.


저것도 이제 수정해야하는데


할일 목록이 터져나가서 나름 좋은 Framework 구경하려는 목적으로 cocos2d로 갔다온거임.


아마 사람은 pixel 단위?로 이동가능이 왔다 갔다 자유로워야 하기 때문에 기초를 그리 잡았는데,


몬스터도 동일하게 적용하려니 문제가 생긴것.


코드 보니까 또 이상하게 짜려고 하니까 우선 적고 가자.


내가 원하는 1차적인 몬스터 행동 양식


1. 이전 장소 기억, 뒤로는 가지 않게.

2. map 정보 보고 가져와서 가능한 위치 반환했으면

3. 한번 정했으면 도착하기 까지 전진. (높은 레벨의 몬스터는 아직 고려하지 말자)

4. 뻘짓의 극한이 MovingOne class... header 69 Line c++ 151 라인 뭐여? 

   목표는 움직이는 player, monster는 죽기도 해야한다?

5. 하는 동작에 비해 너무 것멋만 든 코드들...


1차 목표 수정: 코드가 날라다니므로 우선 몬스터 단순하게 만들어서 commit 수행.

코드 단순화. 코드 단순화 - 게임 수준에 비해 너무 복잡하다.


15:51 밥먹고 도서관 복귀 - MMO RPG 설계 슬라이드 구경. 난 머하냐? 란 생각이 듬.

17:41 저 간단한 거 하는데 1시간 50분 걸렸네 ^^ 기존 코드도 문제지만 실력이 진짜 문제이다. 짜증난다.





스플레시에 맞아도 몬스터가 움지이니 헬이넹?


게임 디자인에 문제가 있다.


이거 몬스터 잡으려면 폭탄 터지는시간은 3초이니 목숨 걸어야 하네?


재미를 느끼려면 어떻게 할까 이전에 완성이나 하자. 구조나 바꾸고.


1. 폭탄 한번 놓고 난뒤에 이전 키 입력이 남아있어서인지 자꾸 다시 놓는다.

2. 시작 메뉴 미완성.

3. 시작하기 전 Get Ready 메뉴 미완성

4. 몬스터는 제자리서 진동 할 뿐

5. 한칸식 움직이게 하더라도 몬스터 뒤로 오게는 하지 말자. (기본 몬스터 이야기)

6. 몬스터 AI 제작. (구조 정리 후로 미룸)

7. 몬스터, 유저 죽을 때 애니메이션 없네. 추가해야하고

8. 애니메이션 넣으려면 리소스 조사.

9. 2인플레이도 넣어라는데 1인플 수정으로 되려나 살펴봐야 하고

10. 유저 죽으면 다음 sequence로 전이 해야하지

11. 배경 음악 재생. 효과음 재생

12. 맵 초기화 해야함 유저 죽고 다시 시작하면 (완전 실패의 경우)

13. 폭탄 터지고 난뒤에 그 Blast에 닿아도 살아있네? 왜 바꿨지 이걸?

14. 몬스터가 사람을 안 때린다. 지나칠뿐.

15. 사람 죽으면 다음으로 넘어가도록 바꾸자.

16. 몬스터가 한 구역을 맴돈다. 루틴이 완전히 Random이 아님. 

17. 시작화면에서 AI Play 를 녹화해서 보여줘? (당연히 기각)

18. 이미지 바꾸려면 우선 dds 포맷을 쓰는걸 바꿔야하는데 책을 봐야겠네. tga로 수정 요망.

19. HUD Layer 도입.

20. Git plug in 추가.

21. 테스트 코드 추가(기본 게임 라이브러리 땜시 붙질 않는다)


17:53: 14 & 15 가 필수이므로 우선 작업하자.

19:20: 작업 iteration이 너무 느리다.

19:51: 그냥 이야기하다가 30분 지남.

23:22: 밥먹고 집에옴. 노래 정리 후.작업 재시작. tga에 파일에 대한 라이브러리는 Texture를 사용하네?

 다 아는 내용이므로 12장에서 13장까지 빠르게 흩고 이미지 바꾸고 게임 마무리 후 답지를 보면서 고치던지

새로 짜자.


24:46: 13 장까지 대충봄. 제대로 않나와있긴 한데, 대충 쏘스 보고 하면 되겠지.

update 시작.


26:09: 어어 ..라이브러리 바꾸고 나니까, Font, Key detector 등 여러곳에서 터져나간다. 

헐. 아직 까지는 게임 로직은 상관 없으므로 바꾸자. 책 읽고 바꾸면 된다.

Pad class 도입해야하네 으허헐. 자러감.



댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크