#gdc09 #review State-Based Scripting in Uncharted 2: Among Thieves

/pnotes/assets/2017-07-24-gdc09-state-based-scripting-in-uncharted-2-among-thieves-01.jpg

얼~ Lisp. custom syntax는 괄호 압박만 이겨낼 수 있다면 Lisp가 유리하다. 뭐니 뭐니 해도 계속 잘 써왔으니깐 쭉 사용하는 것 같기도 하다. 초반 도입이 어려웠을 텐데 해냈네.

/pnotes/assets/2017-07-24-gdc09-state-based-scripting-in-uncharted-2-among-thieves-02.jpg

/pnotes/assets/2017-07-24-gdc09-state-based-scripting-in-uncharted-2-among-thieves-03.jpg

Emacs를 써서 그런지 꽤 괜찮아 보인다. FSM을 지원하는 state scripts다.

/pnotes/assets/2017-07-24-gdc09-state-based-scripting-in-uncharted-2-among-thieves-04.jpg

/pnotes/assets/2017-07-24-gdc09-state-based-scripting-in-uncharted-2-among-thieves-05.jpg

track이라 네이밍 마음에 든다. signal 지원 안 하면 이동 속도로 대충 sleep 시간 때려 넣어서 구현하곤 하더라.

/pnotes/assets/2017-07-24-gdc09-state-based-scripting-in-uncharted-2-among-thieves-06.jpg

/pnotes/assets/2017-07-24-gdc09-state-based-scripting-in-uncharted-2-among-thieves-07.jpg

tag라 해서 뭔가 했네. state script에 넘기는 named argument.

/pnotes/assets/2017-07-24-gdc09-state-based-scripting-in-uncharted-2-among-thieves-08.jpg

당연히 디버깅 정보에 공을 들여야 한다. 현재 스테이트와 실행 중인 코드 출력은 기본.

/pnotes/assets/2017-07-24-gdc09-state-based-scripting-in-uncharted-2-among-thieves-09.jpg

함수 구현은 이런 식.

/pnotes/assets/2017-07-24-gdc09-state-based-scripting-in-uncharted-2-among-thieves-10.jpg

이제 게임 디자이너가 빌드를 깰 수 있게 됐다. 크래시도 낼 수 있다. 계속 토닥이며 발전시켜야 한다. 아니면 잠깐 스크립트를 지원했다가 모두 프로그래머가 직접 짜는 이전으로 돌아온다.

Lisp를 스크립트 언어로 썼다고? 와~ Game Engine Architecture 책을 쓴 Jason Gregory 발표라고? 와~ 이렇게 와와 그리면서 봤다.

발표


크리에이티브 커먼즈 라이선스
Feedback plz <3 @ohyecloudy, ohyecloudy@gmail.com
|