PParam

[[Category:My Project]]
[[User:Bluegol|Bluegol]] ([[User talk:Bluegol|talk]]) 12:44, 13 January 2013 (KST)

  • 두개 이상의 PParam group
    ** 서로 참조는 가능
  • 메타 데이터
    ** 테이블/필드에 메타 정보를 부여하고
    ** 커스템 메타 어트리뷰트도 부여 가능하게 하고
    ** 메타 정보 데이터에 기반하여 “확장”이 용이하게
    ** Extended Resource
    *** 예. String, Expr
    *** 기본 처리는 id와 메타데이터
    *** 이후 처리는 확장 가능하도록
    *** 지금의 string/expr 처리를 모두 이런 방식으로
    ** 예. 스탯 테이블 처리…라던가
    ** 메타 데이터를 익스포트! 다른 프로그램에서 읽을 수 있도록! (이거야말로 GPB!)
    ** 필요한 어트리뷰트들
    *** type. 복수 타입 지정 가능하도록!
    *** 테이블의 아이디가 다른 테이블의 아이들 ‘모두’ 포함하도록 하는 기능 필요 (DB 용어로 foreign key. 거기다가 ALL)
    *** mandatory
    *** default
    *** field id
  • 인풋
    ** 인풋 데이터를 다양하게/인풋 모듈화
    *** xlsx
    *** tsv
    *** 기타 Non-table
    **** “식”을 사용하는 게 많다.
    **** GPB 데이터에도 “식”을 입력 가능하게 하려면?
  • 빌드 과정 명확히 정리
  • DB 디펜던시의 스펙화!

==새 설계==
* 심볼
** 심볼 구성
*** 네임
*** 아이디 밸류
*** 이넘 타입
*** 심볼 타입
**** 리소스 타입 포함
**** 정수 타입
**** 아이디 타입
*** 오리지널 밸류 (스트링)
*** 밸류
**** 심볼 타입에 따라 다르다!
**** 타입 전환 오퍼레이터/노테이션?
** 조건
*** 네임-아이디밸류는 프로젝트 내에서 유니크
*** ASCII상에서 대-소문자 구분 없음
** 인터널/유저 디파인드/프리디파인드 심볼
*** 인터널 심볼은 로 시작, 캐릭터 제한 없음
*** 유저 디파인드 심볼은 C++ 변수/함수명과 동일한 제약
*** 프리디파인드 심볼은 유저 디파인드 심볼과 동일한 제약, 그러나 미리 지정된 것
** 인터널 심볼
*** _Internal : 인터널 심볼이 모두 들어가는 이넘 타입
*** _Table : 유저디파인드 테이블 아이디가 모두 들어가는 이넘 타입
*** _Enum : 유저디파인드 이넘 타입이 모두 들어가는 이넘 타입
*** _ID
<테이블 네임> : 키 오토 지정시의 이넘 타입
*** Const<테이블 네임> : 상수 정의 테이블의 키들의 이넘 타입
*** <리소스 타입별로 지정된 로 시작하는 인터널 심볼>::<테이블 네임>::<필드 네임>
**** 할당된 리소스 아이디의 이넘 타입
**** 실제 리소스 아이디의 네임은 <리소스 타입별로 지정된 인터널 심볼>::<테이블 네임>::<필드 네임>::
<키의 아이디 밸류>
*** _Field::<테이블 네임>::<필드 네임>
**** 리소스의 경우와 동일. 이 경우는 필드…
* 순서
** 빌드 리스트 읽기
** 빌드 리스트의 모든 파일에 대해
*** 메타 데이터 (디펜던시, 테이블 위치, 타입, non-테이블의 경우에도 필요한 메타 데이터…) 읽고
*** 디펜던시 트리 만들고, 바뀌었으면 메이크 파일 새로 저장 및 전체 클리어
*** 내부에서 중간 사용할 형태로 데이터를 변환하여 (스트링), 바뀌었으면 저장
*** 이넘 심볼들은 모두 id 할당하고, 테이블별로 바뀌었으면 저장
*** 참고: 다른 테이블에서 무엇을 참조하는가? 이넘의 아이디/값/콘스트의 아이디/값뿐…
** 모든 테이블 혹은 non-테이블 개체에 대해, 디펜던시 순서대로
*** 데이터를 최종 형태로 변환하여 저장
*** 리소스는
**** 필요하면 리소스 아이디를 할당하고 그 아이디를 저장
**** 필요하면 리소스는 따로 모아 아이디-중간 형태(스트링)로 저장
** 리소스 타입별로 리소스 처리
** 모두 모아 컴파일~

Leave a Reply

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.