게임제작/개발일기

[인디게임개발]게임개발 일기 #2

게임코드프리 2017. 9. 17. 19:26
반응형

# 이 포스팅은 게임개발이 쉽지 않다는 것을 #

직접 보여주기 위해 작성 되었으며 게임 개발 강좌 혹은 정보공유가

아님을 다시한번 밝힙니다.


 

(개발중인 Thanatos : gynoid )

 


게임을 무작정 만들다 보면 끊임없이 문제가 발생하는데 그 중 가장 많은 생각을 하게 되는 것이...

 


"어떻게?"

 

예를 들면 많은 사람들이 당연하게 여기는 화면의 스크롤 역시 간단하게 내 마음대로 작동하지 않으며,

 

화면이라는 공간에 내가 원하는 위치에 이미지를 표현하고 그것을 고정시키거나 자유롭게 이동시키는 것 또한

 

쉽지 않다는 것은 개발을 해본자 만이 알 수 있는 진실.

 


 

막연한 알고리즘들...

 


게임화면에 겨우겨우 인터페이스를 띄우고 스크롤이 될때는 움직이지 않게 처리...

 

하지만 이제 남은것은 레벨업이나 HP등등의 스테이터스 변화. 프로그래밍을 시작한지 얼마 되지 않은 사람에게는

 

스스로 코드를 짜야 할 때 엄청나게 고통스러운 상황들이 벌어지게 되는데 정말 별것 아닌 내용으로

 

몇시간 길게는 몇일 동안이나 해결이 안됨.

 

아래는 예를 든 상황이며 누가 쉽게 가르쳐주면 금방 해결이 되겠지만 세상은 그렇게 호락호락 하지 않음.


 

음...만약에 경험치가 경험치 최대치 보다 커지면... 경험치는 0으로 되돌려주고... 레벨은 한단계씩 올려줘야하고

 

또... 캐릭터가 가지고 있는 수많은 스테이터스 체력, 회피율, 스피드, 명중률, 공격력.....등등은 어떻게 처리할지...

 

if exp > exp_max

}

exp = 0;

level+=1;

....

 

}

 

 


간단한게 없음

 


고민과 괴로움이 번갈아가며 나를 괴롭힐때 마음을 정화할겸 어차피 만들어야 할 오브젝트 기능이나 만들어야지.

 

하고 마음을 먹고 오브젝트를 제작.

 

[만들고 싶은것]

 

1. 스위치를 누르면 저기 어딘가 있는 엘레베이터가 작동

2. 엘레베이터가 자동으로 내려오고 캐릭터가 탑승하면 올라감.


 

스위치를 누르면 엘레베이터가 작동되게 만듬....

 

역시 난 천재야 하면서 좋아 하고 있을 무렵. 엘레베이터는 캐릭터를 두고 떠나감... 그리고 다시 내려올때는

 

캐릭터를 짓누름.

 


정말 상상도 하지 못했지만 내가 이런상황에서는 어떻게 하라고 일일이 말을 해줘야 아는 너무나 순박한 컴퓨터에게

 

모든 예외처리를 해줘야 하는 고통을 만들어 보지 않은 사람은 모름.(그냥 되는줄 암)


 

쉽지 않음의 예 :

 

<문제>캐릭터가 오른쪽에 있는지 왼쪽에 있는지 컴퓨터가 어떻게 암?

 

(정답 : 화면 좌표를 통해 알 수 있음)

 

정답을 알면 쉬울거라 생각하지만 그렇지 않음.

 

일단 화면 크기부터 컴퓨터가 알아야 함.

 

//이 컴퓨터 놈아 우선 디스플레이 가로 1280, 세로 720 이다. 변수나 받아랏.

display_x = 1280;

display_y = 720;

 

//내가 생성하는 위치가 바로 플레이어 x,y 다.

player_x = x

player_y = y

 

// 플레이어가 화면 가로의 절반보다 더 앞서 있을 경우 원하는 코드 어쩌구....

if player_x >= display_x/2 { //원하는 코드 }

 


 

자주 드는 생각들...

 


나는 왜 이렇게 고통스럽고 괴롭고 머리도 안돌아가는데 이토록 혼자서 게임을 만들려고 하는가...

 

라고 스스로 괴로울때 마다 자문을 하지만,

 

(바로 쉽게 결론이 나오는 것은 바로 돈없고 백도 없고 능력도 없으면서 게임회사에서 일하면 내가 하고 싶은대로

 

만들지 못하고 매번 시키는 일만 해야하기 때문에)

 

언제나 같은 결론만 되풀이 되며 다시 마음을 잡고 만들게 됨.

 


 

파밍 게임이니까 인벤토리를 만들어 볼까

 


"2차원 배열이 입장 하셨습니다"

 

- 2주 후 -

 

와...결국 만들었다. 인터넷에 드래그 앤 드롭으로 아이템을 장비하거나 조작하는 예제는 많지만

 

키보드로 직접 조작하여 인벤토리를 열고 닫고 커서를 움직이는 예제가 어째서인지 단 한개도 없었기 때문에

 

그냥 스스로를 괴롭히며 엄청난 삽질끝에 겨우 제작. 그리고 아직까지도 해결되지 않은 버그.

 

동시에 여러가지 장비가 들어왔을때 첫칸을 먼저 장비해야만 다음 장비와 교체가 됨.

 

그리고 다시 버리거나 줍거나 하는 기능....은...포기. 그래서 버리면 그냥 파기 시켜버림.


 

 

(계속 바뀌는 모습의 Thanatos : gynoid)

 


 

절대 하지 말아야 할 행동을 하게 된다.

 


처음 기획의도는 캐릭터가 귀여운 코스튬과 무기를 수집하면서 던젼(?)을 탐험하며 보스를 격파하고 레벨업하며

 

스토리를 즐길 수 있는 그런 게임이었고,

 

기본적인 전투 시스템은 신중하게 싸우는 것을 원해 이동하면서 사격하거나 여기저기 총기를 난사하는 게임이

 

아니었지만,

 

뭔가 마음에 안들었는지 자꾸만 기본 액션체계를 완전히 바꾸려고 구르기라던가, 점프 사격, 이동사격등을 추가해서

 

넣어보고 이랬다가 저랬다가를 반복하면서 시간을 허비하는 행동을 하게됨.


 

 

욕심은 끝이 없고 인간은 같은 실수를 반복한다.


 

최근 이 프로젝트를 하면서 가장 큰 실수라고 해야 할지 차후 미래를 위한 투자가 될지 모를 일을 저질러 버림.

 

바로 엔진을 교체함.

 

기존 엔진 Gamemaker studio 1.4x -> Gamemaker studio 2

 

그냥 버젼업이 아닌 투!! 작업 인터페이스나 환경 그리고 개선점들에 대해서 알아본뒤 10만원이 넘는 가격에

 

과감하게 투자. 그리고...

 


버그 200개.

 

지금까지 만든 수많은 기능들이 제 기능을 못하고 에러가 발생하였고

 

그 이유는 함수가 교체되거나 없어진 함수들 덕분. 그리고 복구하는데 다시 3일이 걸림.

 

시간은 계속 허비되는데 진척상황이 왜 나아지지 않는지...

 

 

(다음 일기에서 계속...)

반응형
facebook twitter kakaoTalk kakaostory naver band shareLink
人気ブログランキングでフォロー