스크립트가 엔진 추상화와 상호 작용해야합니까?


10

Java와 Jython을 사용하고 있으며 일부 연구 결과 스크립트를 엔진 인터페이스에 직접 액세스하는 것이 실수가 될 수 있음을 발견했습니다.

mods가 일종의 추상화를 통해 엔티티를 생성하고 관리 할 수있게하는 대부분의 스크립팅처럼 보입니다. 이러한 이유로 이러한 추상화가 있습니까? 아니면 프로그래머가 아닌 사람들이 게임을 수정하는보다 직관적 인 방법을 제공하는 것입니까?

답변:


7

일반적으로 둘 다. 스크립트는 엔진 자체가 아닌 추상화 된 (적어도 중간 인) 기능 계층과 대화해야합니다.

첫째, 이것은 제어 및 보안의 추가 측정을 제공합니다. 이를 통해 스크립트가 게임에서 가질 수있는 인터페이스와 그에 따라 발생할 수있는 인터페이스를 쉽고 깨끗하게 정의 할 수있을뿐 아니라 나중에 중급에 추가 보안 검사를 실시 할 수 있습니다. 실제 기능 계층 자체

둘째, 스크립트에 노출되는 인터페이스를 단순화하여 프로그래머에게 친숙하지 않거나 일반적으로 사용하기 쉽습니다.

이 둘 사이의 커플 링에 대한 절연의 비트를 제공한다,하지만 종종 아니다 것을 큰 거래 스크립트가 항상 그들의 본질적으로 상호 작용 할 수있는 인터페이스에 연결되기 때문에. 다른 두 가지 점이 훨씬 유리합니다.


3

또한 엔진을 수정하려는 경우 도움이 될 것이라고 생각합니다. 엔진이 변경된 후 모든 스크립트를 변경하지 않아도됩니다. Josh가 언급 한 추상화 계층 만 변경하면됩니다.


1

게임의 핵심과 스크립트 사이에 레이어를 만드는 것은 수정을 만드는 데 사용됩니다.

이 방법을 사용하면 몇 가지 장점이 있습니다.

더 쉬운 modders :
언급 한 것처럼 mod를 만드는 더 쉬운 방법이 있습니다. 적은 줄의 코드를 작성하면 가독성이 높아지고 초보자를 프로그래밍하는 데 필요한 이해 문제가 최소화됩니다. 이상적으로이 API는 게임의 상위 레벨에서 무언가를 변경하는 메소드 모음이어야합니다 . 예를 들면 다음과 같습니다. 실제로 생성되는 방법 을 모르 거나 한 번의 호출로 이미지를 표시하여 이미지 이름 만 매개 변수로 사용 하여 엔티티를 생성합니다 .
프로그래머 는 Java에 필요한 것보다 더 적은 시간에 더 많은 시간을 쓸 수 있으므로 프로그래머에게도 도움이됩니다 .

보안 :
사람들이 전체 게임을 통제하지 못하게하는 것이 필수적입니다. 게임이 싱글 플레이어 제목이 될 것인지 나는 상관하지,하지만 게임이 가지고 때 난 상관 할 몇 가지 멀티 플레이어 액션을. 최고 점수 테이블 인 경우에도 마찬가지입니다. 누군가가 부정 행위로 인해 이기면
다른 사람들은 항상 좌절합니다 (예 : 위치 변경,보다 구체적 : 위치 변경 및 직접 깃발 상한). 플레이어가 그렇게하지 못하도록하는 것이 주요 임무입니다.
사기꾼은 항상 디 컴파일, 코드 변경,이 클라이언트와의 재 컴파일 및 재생을 수행 할 수 있으므로 서버 측에서 점검을 추가 할 수 있습니다. 일반적으로 제공되는 "보안"은 사기꾼의 삶을 더 어렵게 만드는 100 % 안전 옵션이 아닌 다른 옵션 일뿐입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.