posted by DGDragon 2014. 10. 13. 10:42

THE SPACE OBJECT FACTORY: ONE FILE TO RULE THEM ALL

스페이스 오브젝트 팩토리: 모든 파일을 지배하는 절대 파일.


http://community.eveonline.com/news/dev-blogs/one-file-to-rule-them-all/

일단, 이후 얘기하는 모든 '데이터'는 비주얼 데이터뿐임. 오로지 비주얼 관리 방법만 수정됨.


How it used to be – red files

어떻게 관리되어왔는가 - red files


이브에는 많은 우주선이 존재함. 이들 사이에는 큰 차이가 존재하는 것도 있고(모로스 - 인커서스) 그렇지 않은 것도 있음(스콜피언 - 래틀스네이크). 두 배 사이가 어떤 차이가 존재하든, 우리는 모든 개별함을 "red 파일"이라 부르는 개별 파일별로 관리했음.


Moros: model/ship/gallente/dreadnought/GDn1/GDn1_T1.red

Incursus: model/ship/gallente/Frigate/GF4/GF4_T1.red

Scorpion: model/ship/caldari/BattleShip/CB2/CB2_T1.red

Rattlesnake: model/ship/caldari/BattleShip/CB2/Guristas/CB2_T1_Guristas.red


여기서 문제가 생기는데, CB2_T1과 CB2_T1_Guristas는 거의 동일한 파일임. 또한 여러분이 GDn1_T1과 GF4_T1을 비교해봐도 유사점들을 발견할 수 있을 거임: 갈란테 배고, 동일한 데칼을 사용함.


이런 과도하게 중복된 데이터를 관리하는 것은 비효율적이며 모순이 생길 수 있었음. 또한 수정 작업하는데엔 하나의 악몽임. 우리가 만약 Sarum에 적용된 빛 효과를 바꾸고 싶다고 하면, 우리는 모든 Sarum 함의 red 파일을 열고, 수정하고, 저장하고, QA를 해야함.


그리고 이 모든 것에 앞서: 이 red 파일 시스템에서 쉽 커스터마이제이션을 적용할 수 있는가? 대답은 하나: 불가능. 그리고 우리는 다년간의 팬페스트와 블루프린트로 시험해본 결과 여러분이 쉽 커스터마이제이션을 얼마나 바라는 지 알고 있음. 따라서 우리는 새로운 방법을 적용하기로 함.


The Space Object Factory

스페이스 오브젝트 팩토리


스페이스 오브젝트 팩토리(SOF)는 모든 배의 데이터를 읽어들인 뒤, 최소한의 문구를 받아 분석하여 모든 각개 배를 만들어주는 단일 소프트웨어 모듈임. 예를 들어, SOF에서 위의 배들을 기술하면 아래와 같음:


Moros: gdn1_t1:gallentebase:gallente

Incursus: gf4_t1:gallentebase:gallente

Scorpion: cb2_t1:caldaribase:caldari

Rattlesnake: cb2_t1:guristas:caldari


이브의 모든 표준함에서 우리는 먼저 헐의 이름을 쓰고(“gdn1_t1”, “gf4_t1”, …), 팩션 이름(“gallentebase”, “guristas”, …), 국가명(“gallente”, “caldari”, …)을 씀. 각 이름은 헐, 팩션, 국가명의 데이터 셋을 가리키며 이들의 결과물을 클라이언트에서 불러들이는 배에 결과물로서 출력함.


이론적으로, 모든 종류의 조합이 가능하고 SOF에서 지원가능함. 그렇다면 모로스 헐에 구리스타스 팩션에 산샤 부스터를 끼얹으면 뭐가 만들어질까? 그 질문은 수사학적임. Sanistaros를 요구하지 말길 바람. 제발.


What does this new system change for players?


그래픽적으로? 당장은 바뀌는게 없음. SOF에 의해 만들어지는 배들은 red 파일을 손수 수정해 만드는 배들과 완전히 동일함. 데이터 관리의 효율성 때문에 아류 배들을 로딩하는 건 좀 빨라질 거고 화면에 뜨는 것도 좀 빨라질 거임.


이 얘기는, 우리가 팩션 / 국가별 차이를 드러내기 위해 지난 몇년간 해온 작업을 좀 더 향상시킬 기회를 잡았다는 말임. 하나 예를 들자면 Gallente CreoDron 함선이라든가. 그들은 현재 뉴 에덴 초창기에 쓰였던 것 같은 녹색 계열로 돌아가있음.


What is going to change for tool developers?


가능성? 엄청남. 만약에 여러분의 툴이 패키지 안의 개별함 기준으로 개발된거라면, 여러분에겐 문제가 있음. 우리는 지금은 파일을 놔두고 있으나, 다음에 할 일은 안 쓰는 red 파일들을 지워 정리하는 거임. 여러분은 여러분의 툴을 다음 주소의 SOF 데이터베이스 파일에 최적화 할 수 있음:


dx9/model/SpaceObjectFactory/data.red