1.Game
- 설명 없이 임의의 빈 칸을 보기 칸에서 음절을 한개씩 터치를 통해 옮겨 단어를 완성!
- 모든 단어를 완성하면 다음 스테이지로 이동
- 중간에 게임을 종료할 시에 현재 진행 중인 게임은 없어짐
- 200단계마다 칸 수가 증가하며, 1~200단계(10X10), 201~400(11X11) … 801~(14X14)
- 1000단계 이상에서도 계속해서 게임은 진행하지만 난이도는 상승하지 않음
- 느린 게임으로 타이머가 없고, 랭킹 시스템도 없음
- 단어는 중복이 있을 수 있음( 약 단어 100000~200000개)
- 힌트는 단계 별로 3개씩 지급
2.UI & Design
4.Resources
- ‘엉망진창’이라는 컨셉에 부합한 Resources 제작
- 모든 Resources는 3D 그림판을 통해 제작
5.etc
1)SFX, BGM
- SFX는 ‘Bfxr’이라는 소프트웨어를 사용하여 랜덤 제작
- BGM은 ‘opengameart.org’라는 사이트에서 CCO인 저작권이 없는 BGM을 찾아 컨셉에 부합한 노래를 선정
2)폰트
- UhBee Skyrain BOLD 사용
3)Plugins
- 어플리케이션 이름을 한글로 사용할 수 있게 플러그인 생성
4)PlayerPrefs
- 게임 내의 스테이지를 게임이 종료 후에도 저장 가능하게 stage_num을 생성
6.Scripts
1)stage_200, 400, 600, 800, end
- 게임 안에서 단어 생성 및 게임 틀 생성
2)cursor_200, 400, 600, 800, end
-게임 안에서 커서를 움직이고 터치 이슈를 처리
3)Quit
-메인메뉴에서 종료 시 어플리케이션을 종료
4)Btn_mainmenu
- 게임 중 메인메뉴로 나갈 수 있는 버튼 관리
5)dont
- 게임 중 scene이 전환되어도 BGM이 파괴되지 않고 자연스럽게 넘어갈 수 있도록 관리
6)echo
- 게임 시작 시에 PlayerPrefs를 통해 stage 관리
7)Pause
-게임 일시 중지
8)SetBGM
-환경설정 중의 배경음악 크기 조절
9)SetSFX
- 환경설정 중의 효과음 크기 조절
10)Flowing_diplay
- 화면에서 배경화면이 자연스럽게 흘러가도록 설정
7.Scripts - Code
1)알고리즘
a.단어가 들어갈 수 있는 틀 만들기
b.길이에 맞는 단어를 찾아 넣기
c.N*N 배열에 저장하기
d.저장된 배열 안의 임의의 음절 숨기기
e.배열을 object text로 이동
2)표가 채워지는 과정
a. 첫 단어가 생성된 후에 다음 단어를 생성하기 위해 단어가 들어갈 수 없는 빈칸 삭제
b. 다음 단어가 들어갈 수 있는 위치 파악을 위해 들어갈 수 있는 위아래 빈칸 수 파악(첫 단어가 세로 방향이라면 좌우 파악)
c. 길이가 제일 긴 쪽으로 방향으로 단어가 생성
d. 들어갈 수 있는 단어가 없을 경우 계속 앞 단어로 이동하여 더 채워질 수 있는지 확인
e. 더 이상 들어갈 수 있는 빈칸이 없다면 종료
9.Data
-
가로 세로 게임의 주된 내용인 단어들이다.
- K-ICT 빅데이터센터의 형태소 사전의 단어들을 가져왔다.
- 초기 단어는 약 100만 개이고, game 속에서 사용할 수 있는 3글자 또는 4글자인 단어를 추출하고, 그 뒤에 단어의 타입이 명사인 것만 추출했다. 현재 추출된 단어만 약 30만 개의 단어가 추출되었고, 단어를 우리말샘 사전의 open-api를 사용하여 뜻이 없거나, 북한어, 방언 등을 걸러내려 하였으나, open-api 속도가 원활하지 못하여 Crawling을 통하여 단어를 한 개씩 검색하여 최종적으로 약 19만 개의 단어를 추출해내었다.
- 현재 단어 중에 의미가 이중적인 것과 의미가 하나인 것, 추가로 전문 용어가 다수가 있다.
- 전문 용어 중에도 일상에서 자주 쓰이는 단어가 있고 일반 용어 중에도 일상에서 잘 안쓰이는 단어가 있어, 현재 NAVER 웹사이트에 모든 단어를 Crawling을 통해 쓰인 횟수가 일정 수준 이상인 단어를 한 번 더 추출해내는 과정을 거칠 것이다.
- 현재 게임 플레이 시에는 csv 파일을 20000개 씩 잘라서 random하게 파일을 호출하는 형식으로 하여 게임의 생성 속도를 조금 높였다.
- Selenium을 사용하여 단어 수집