'점순이랑 점자 배우기'는 우리처럼 앞을 볼 수 있는 비시각장애인을 위한 점자 읽기 학습 게임입니다.
제작 일지이니 시스템 구현 방법에 대해 적어놓겠습니다.
그 중에서도 자랑할 만한 놀이 학습 시스템.
이 게임의 장점은 '놀이 학습'이 있다는 건데요, 글자를 알맞게 읽은 걸 고르거나 단어를 직접 입력해 맞추는 게임 형식을 띠고 있어 지루하지 않고 재밌게 만들었다는 점입니다.
놀이 학습에 대한 설명을 잠깐 해보자면
이렇게 문제가 랜덤으로 출제가 되고, 그걸 맞추면 경험치를 얻는 시스템입니다.
그렇다면 문제 목록이 있겠죠. 이 문제 목록을 어떻게 만드느냐가 고민이었습니다.
고민 끝에 커먼 이벤트를 작성하기로 했습니다.
각 문제마다 그림을 표시하게 하고 답을 맞추게 하는 커먼 이벤트를 작성했습니다.
이 많은 이벤트를 어떻게 랜덤으로 돌리느냐가 역시 문제였습니다.
커먼이벤트의 실행은 만들어봤자 한 번에 하나씩밖에 못 만들고, 랜덤으로 실행할 어떤 옵션도 없었습니다.
그래서 커먼 이벤트를 실행하는 스크립트를 뒤적뒤적해서 분석해봤습니다.
common_event = $data_common_events[@params[0]]
이런 부분이 있어서
@params[0] 이 부분이 커먼 이벤트의 번호를 선택하는 부분이구나(params는 parameter=매개 변수; 이벤트 작성할 때 선택하는 옵션 부분)
'아, @params[0] 이 부분을 랜덤 변수로 돌리면 되겠구나' 싶었습니다.
그러면 뭐 예를 들면 104번부터 403번까지가 문제 커먼 이벤트다,
그래서 @params[0] 이 자리에 rannum을 집어넣고 rannum을 104번부터 403번까지 랜덤 변수로 돌리자 생각해서
변수라는 게 어떻게 스크립트로 정의되는지 연구.
$game_variables[6]는 6번 변수를 뜻한다는 걸 뒤적뒤적해서 찾았습니다.
6번 변수를 104번부터 403번까지 랜덤변수 돌리고 rannum을 6번 변수로 정의
->
def rannum
$game_variables[6]
end
이 rannum을 '커먼 이벤트의 번호'에 대입했습니다.
-> common_event = $data_common_events[rannum]
그래서 104번부터 403번까지의 커먼이벤트(문제)가 실행된 것입니다.
아니 사실은 그렇게 실행이 뚝딱 됐냐면은 그런 건 절대 아니고
스크립트를 잘 모르니
일단 common_event 부분 복붙하고
뭐 오류 뜨면 수정해보고 뭐 정의 안 돼있다고 뜨면 그거 찾아서 또 복붙하고
이렇게 맘대로 스크립트를 작성해버렸습니다. 차라리 루비 언어를 배우지 사서 고생을...;;
스스로 헤매보는 것도 젊은 나이엔 좋은 공부가 되겠지요.
아래는 제작 영상입니다.