[문명5]도전! 문명5SDK를 해보자(4) by 케라래스

  케라래스입니다.
  문명5을 기본부분부터 뒤틀면서 하는 작업은 생각보다 쉽지 않네요. 그래도 문명5도 문명4처럼 대부분이 OpenSource나 마찬가지일 정도로 다 열어두기 때문에 배워두면 나중에 확실히 도움이 되겠지하고 포기하지 않고 달라붙고 있습니다.
  이 글을 읽어주시는 분들도 무엇인가 목표를 하나 정해서 끝까지 같이 움직일수 있었으면 합니다.
  그럼 시작하죠.
 
 
  SQL이란?
  
  문명5에서의 SQL은 XML의 글들을 게임의 요소로 변환시켜서 실행시키는것을 도와줍니다. 즉, 나라는 제작자와 문명5라는 게임의 중개인이라고 볼수 있겠네요. 이 표현이 제대로 된 표현인지 아닐지는 확신할수 없습니다만. 아래 그림을 보죠.
즉, 왼쪽의 MOD들이 XML로 작성되면 SQL을 통해 게임내의 Civ5CoreDatabase.db에 포함이 되게 된다라는 소리입니다. MOD를 작성한것도 없고 한다면 이미 만들어져 있는 Civ5CoreDatabase.db가 있는 그대로 실행이 되겠죠. 즉, 그냥 문명5가 실행된다 이 이야기입니다.

원래라면 SQL에 익숙한 사람이라면 XML을 쓸 필요도 없다고 나옵니다만... C++도 제대로 모르는 본인이니 착실하게 XML을 쓰렵니다. 2개의 포스팅이 필요할 정도로 머리속에 박아넣었으니 어떻게든 되리라고 믿고 싶습니다.

제일 쉽게 이런 SQL을 정리하고 보고 싶다면 '파폭(FireFox)의 SQLite Manager Addon을 쓰세요'라고 적혀져 있네요.
...일단 그냥 인터넷 익스플로러를 쓰고 따로 따져봤자 오래된 IPhone(4S도 아니고 4도 아니고 3이라는 것도 없습니다. 4년 묵은 놈이에요. 큭, 4로 업그레이드 할수 있다는데, 모델이 오는데 한달이 걸린다니. 이게 무슨 소리요)의 사파리를 쓰는게 다인데 새로운 인터넷을 설치하라니.

뭐, 말한대로 일단 합시다. 다 하고 쓸모없다고 판단되거나 익숙해지면 도로 지우죠. 뭐.
링크 걸어둡니다.

파폭 설치: http://www.mozilla.org/en-US/firefox/new/?src=amo
SQLite Manager Addon 설치: https://addons.mozilla.org/en-US/firefox/addon/sqlite-manager/

파폭을 설치하고, 파폭을 열어 SQLite를 설치하면 완료.
생각보다 간단했군요!! 뭐 이것저것 재시작할것도 없이 쫙쫙된것이 마음에 듭니다!!

그리고 그대로 SQLiteManager를 실행시켜봅시다.
요롷게 간단하게 달려 있으니 그대로 실행. (실행이 되어서 SQLite Manager창이 열렸다면 파폭 인터넷 창은 닫으셔도 관계없습니다)
그 다음에는 요렇게 Connect를 명령해서...
꼭 All Files로 검색해서 찾아야합니다. 아니면 문명5에 관련된 모든것이 안나옵니다. 그럼 계획대로 이중에서 저기 "Civ5CoreDatabase"를 열어봅시다.

**현재 열어낸 파일은 문명5의 기초코어 파일로 이 파일을 변경할시 업적등에 관련된것들을 해결할수가 없으며 업데이트가 이루어질시 바꾼 정보가 그대로 돌아가며(패치가 되는것입니다) 파일이 손상되어 있을 가능성이 있다고 재설치를 하라는 경고(이자 강제실행)이 뜹니다. 장난은 쳐도 좋습니다만, 그대로 세이브를 하는 우를 범하지는 맙시다.**

그렇다면 이런 SQL로는 무엇을 하느냐. 검색의 용도로 쓰입니다. 어떤것이 어디에 있는지 알아내기 위해서죠. 문명5는 하나의 유닛이라도 이곳저곳에 연결이 뻗어져나가느니 만큼, 하나를 바꾸기 위해서는 수많은 작업이 필요합니다. 그런것중의 하나가 변경하기 위한 자료의 위치를 찾기위한 '검색'인데요. SQL을 통해서라면 XML에서 하나하나 찾는것보다 꽤 쉬운편으로 찾아낼수가 있습니다.

**즉, 이런 SQL의 활용법은 다 만들어낸 Database들의 패치에 쓰는것입니다. Mod를 처음 만들어서 버전1.0을 내면 패치를 통해 1.1, 1.2등을 만들때 이런 SQL를 통해 필요한 내용들만 다 검색해 한번에 다 바꾸는 식으로 작업하면 됩니다.**



그럼 예제로 나온것을 조금 바꿔서 해볼까요.
예제에서는 검색을 통해 망치200이상의 가격을 가진 유닛을 보여달라라고 되어있는데,
저는 검색으로 망치300이상의 가격을 가진 건물을 보여달라라고 해보겠습니다.

그림에서처럼 Execute SQL로 갑시다. 검색을 실행시키는것이니깐요. 그냥 일일히 찾는다니 그게 왠 고생입니까.

그러면 이제 검색을 해야겠는데. 검색할 것들이 건물이니까 제대로 정리되어있는 Database의 건물은 영어로 간단하게 "Buildings"입니다. '건물들'이라는 뜻이죠. 이 정도 간단한 영어는 알아둡시다.

이렇게 해서
요로코롬 준비하고 치면
우왕ㅋ굳ㅋ!
여기까지가 SQL의 기초입니다. 나머지는 직접 프로젝트를 제작하면서 익혀나가는것이 나으니 SQL기초는 여기까지 하겠습니다.


그럼 이제 마지막으로 Lua만이 남았군요. 실질상 제일 어려운 부분이라고 생각하는 부분입니다. 
다음 글에서 뵙죠.

케라래스였습니다.

트랙백

이 글과 관련된 글 쓰기 (트랙백 보내기)
TrackbackURL : http://Kerares.egloos.com/tb/287162 [도움말]

덧글

댓글 입력 영역