본문 바로가기
그냥 논다!/Star Citizen

스타시티즌 ATV - 시리얼화 된 변수

by Laeng 2017. 6. 19.

스타시티즌에서는 매주 개발 현황을 멋진 영상으로 만들어 매주 공개하고 있습니다. 

06월 15일 Around The Verse 에서는 Serialized Variables 을 다루었습니다. 관련자료 번역은 도박장님께서 해주셨으며 이 곳에서 제공해주셨습니다.


Around the Verse - Serialized Variables


Studio Update

캐릭터 대사

  • 알파 3.0 버전에 필요한 구성요소들을 정리하였으며 NPC들을 위한 2800줄의 대사를 작성하고 녹음하였습니다.
  • PU(스타시티즌 우주공간)에 등장할 캐릭터들의 추척시트를 만들어 세밀한 대사를 만들고 녹음하였습니다.

화물

  • 화물 적재 부분을 개발하여 시각적으로 화물을 볼 수 있도록 하여, 화물들은 함선 적재장소에 함선에 적재된 만큼 화물을 보여 줄 것입니다.
  • 일부 함선에는 화물대신 지상용 차량을 넣을 수 있으며 지상차량이 적재되었다면 차량이 적재된 만큼 화물을 실지 못합니다.

엔지니어링

  • 태양계 컨텐츠를 오브젝트 컨테이너에 적용하는 것을 마치고 있습니다.
  • 오브젝트 컨테이너를 편집할 수 있어 오브젝트 컨테이너에 포함된 컨텐츠를 바로 편집할 수 있게되었습니다.
  • 함선의 내부 파손 상태를 재 작업하여 더 쉽게 디버깅할 수 있도록 하였습니다.
  • IFCS (지능형 비행 제어 시스템) 업데이트는 Batch 업데이트로 전환되었으며 물리적 요소에 묶여있을 필요가 없어졌습니다.
  • 새로운 퀀텀 드라이브 2.0을 완성하였습니다. 퀀텀드라이브시 볼 수 있는 시각적 효과와 UI를 다시 만들었으며 새로운 기능을 추가하였습니다.

함선

  • RSI 오로라는 마지막 확인 절차를 밟고 있습니다. 14개의 새로운 스킨들을 가지게 될 것입니다.
  • Anvil 테라핀은 그레이박스의 마지막 단계를 거치고 있으며 마지막 미술 단계로 진행되고 있습니다. 또 기술적인 기믹들도 그레이박스로 진행되고 있습니다. 아이템 2.0 으로 변환되었기에 웹사이트의 함선 정보를 업데이트 하였습니다.

기술, 미술, 애니메이션

  • 식별 코드를 리뷰하고 있으며 극적으로 퍼포먼스를 향상시킬 수 있도록 컨텐츠를 수정하고 있습니다.
  • Stats scope 는 프레임 기반의 데이터 로그를 만들과 관리하며 그래프를 생성합니다.
  • 애니메이션 저장 포멧을 향상 시켜 애니메이션 로드 타임을 82% 절약할 수 있게되었습니다.
  • 여성 캐릭터의 질감를 생성하였으며 남성 캐릭터의 질감을 업데이트 하였습니다.
  • 캐릭터의 눈꺼풀이 버텍스 노말레이어가 뒤집어진 것을 발견하고 수정하였습니다.

캐릭터

  • 수많은 싱글플레이 스쿼드론 42와 스타시티즌 복장을 작업하였습니다.
  • 여성 캐릭터의 인게임 요소들이 준비되었으며 텍스쳐 작업을 할 준비가 되었습니다.
  • OMC (인게임 회사이름) 내의가 인게임 모델링 작업을 거쳐 텍스텨 작업으로 넘어가고 있습니다.
  • Levski (인게임 지역이름)의 특정 민간인과 광부들이 텍스쳐 작업을 받고 리깅되어 게임에 적용되고 있습니다.
  • UEE 와 해적 장갑(갑옷)의 수준과 정밀도를 향상 시켰습니다. 
  • 알파 3.0에 쓰여질 머리 스타일과 다양한 안구 등 다양한 커스텀마이징 옵션들디 준비되고 있습니다.
  • 남성 해병, 남성 갑판 승무원, 여성 경장갑과 여성 탐험, 항공 복장이 게임에 추가되었습니다.


시리얼화 된 변수들

Clive Johnson 은 파운들리42 영국의 리드 네트워크 프로그래머이며 스타시티즌의 네트워크의 전망을 밝게 보지는 않았으나 불가능해 보이는 문제를 책임져 보다 불가능해 보이는 작은 문제로 만드는 사람입니다.

스타시티즌의 수십만개의 모든 요소와 자료들은 수십만개의 행동양식과 자료 요소들이 모여 쓰여집니다.

60여명의 프로그래밍 엔지니어와 6명의 전담 네트워킹 엔지니어로 스타시티즌의 멀티플레이 환경을 만들고 있으며, 각각의 이들은 모든 코드가 멀티플레이에서 제대로 돌아가야 함을 확인하고 만들어야합니다.

API 는 프로그래머에게 풀고 싶은 문제를 그들이 원하는걸 직설적으로 답변하여 도움을 주지만, 어떻게 하라고 가르쳐 주지 않습니다. 대신 프로그래머는 API 의 도움으로 문제들을 해결 할 수 있고 프로그래머의 작업을 간단하게 할 수 있도록 도와줍니다.


변수들을 모아 만든 테이블은 변수들이 시간에따라 어떻게 변화하는지 추적해 줍니다.

프로그래머는 이 테이블을 통해 이것이 게임 플레이에 어떠한 영향을 끼치도록 코드를 작성합니다.


기존 멀티플레이는 이 테이블이 수정이 된다면 서버에 보내고 서버가 모든 클라이언트들이 동기화 되도록 합니다. 이 때 네트워크를 통해 동기화가 되어야 할 변수들이 수백개가 있고, 주기적으로 내보여야한다면 네트워크 대역폭에 문제를 일으킬 수 있습니다. 

이러한 문제를 해결하기 위해 스타시티즌 프로그래머들은 시리얼 변수를 생각하게 되었습니다.

시리얼화는 바뀐 부분만 간추려 네트워크를 통해 적은 대역폭으로 클라이언트들과 동기화가 되며, 하나의 시스템으로 자동으로 처리되도록 하여 기존에 수동으로 했을때 발생했던 많은 애로 사항을 해결 하였습니다.


시리얼화 된 변수들은 단순히 멀티플레이와 네트워크 뿐만아니라 데이터를 저장하고 공유해야하는 수백대의 PU 서버들을 위해 사용될 수 있습니다.  이 것은 PU 의 초석이 되며 토큰과 시리얼화 된 변수를 다른 서버에 연결하기만 한다면 빠르게 서버를 전환할 수 있게 된다는 것이입니다.



게시글을 퍼갈 수 있도록 해주신 도박장님께 진심으로 감사의 인사올립니다!




반응형