GEMS

GEMS 1권 1.0 데이터 주도적 설계

알쿠미 2016. 1. 12. 17:22

- 텍스트 파일을 읽어들일수 있도록 하자


- 상수들을 하드 코딩해서는 안된다.


* 그렇게 해야 코드를 컴파일 하지 않고 상수를 수정할 수 있다.

ex)카메라 이동 같은 기본적인 기능들은 텍스트 파일들을 통해서 외부로 노출시켜야 한다.

(프로그래머 이외의 사람들이 간단하게 편집할 수 있도록 함이다.)


- 하드 코딩을 하지 말자

* 설계상의 결정 사항들을 자유롭게 수정할수 있도록 하드코딩을 해선 안된다.


- 게임의 흐름제어는 스크립트로 하자

* 스크립트란 프로그램 코드 밖에서 정의하기 위한 하나의 수단이다.

* 단계들을 정의하거나 이벤트를 발생하게 하는 데 주로 사용된다.

* 조건 분기 방식에 신경을 써야한다.

 1. 변수들을 유지시키고 = 이나 < 같은 연산자를 이용해서 비교하는것

 2. IsLifeBelowPercentage(50) 같은 함수로 변수를 비교하는 것

이 두가지 방법이 있다. 함수쪽이 디버깅이 편하다

스크립트를 사용하려면 스크립팅 언어가 필요하다. 완전 새로운 문법을 직접 정의해야하며 스크립트 파서도 직접 만들어야한다.


- 그렇다고 스크립트를 남용해선 안된다.

 * 복잡한 로직은 코드에 데이터는 코드외부에 두어야한다.

 * 스크립트가 위험한 이유는 데이터의 성격과 로직의 성격을 함꼐 가지고 있다는 점

 (그렇기 때문에 스크립트에 로직을 넣고 싶어지는데 그렇게 되면 코드를 작성하는 것과 차이가 없어진다.)

 * 복잡한 로직을 코드안에 두어야 프로그램 기능성과 디버깅에 좋다.

 * 코드와 스크립트 사이의 경계가 애매하다.

(로직이 복잡하면 코드에 넣고, 스크립트는 최대한 단순한 상태로 유지해야한다.)


- 데이터 중복을 피하자

 * 여러곳에서 쓰일 데이터를 전역적인 데이터로 만드는 것 또한 특정한 위치에서는 그러한 데이터 일부를 수정하게 할 수도 있다. 이를 위해서는 상속이라는 개념이 도입되어야 한다.


- 데이터를 만들어 내는 도구를 작성하자