2010-12-04 4 views
3

구식 텍스트 어드벤처 게임을 만들려고합니다. 나는 세계지도와 방을 만드는 것에 조금 갇혀있다.게임 디자인 및 아키텍처 텍스트 어드벤처에 대한 조언

실내 설명이 소스 코드의 일부이거나 분리되어야합니까? 나는 이러한 모든 설명과 방 속성을 MySQL 데이터베이스에 배치 한 다음 각 방의 논리를 구성하는 코드를 가지고 있다고 생각했습니다. 각 룸 설명을 실제 소스 코드와 함께 넣는 것은 약간 깔끔하지 않은 것처럼 보입니다.

어드벤처 게임에서 설명을 구성하는 데 선호되는 방법입니까? 또한 데이터에 대한 공통 속성을 찾기 위해 데이터베이스를 쿼리 할 수 ​​있으므로 이것이 바람직 할 수도 있다고 생각했습니다.

의견을 보내 주시면 감사하겠습니다.

답변

6

아니요, 코드 내에 레벨/객실 설명을 포함하지 마십시오.이 방법은 동적이지 않습니다.

많은 개발 프레임 워크는 이제 데이터와 코드를 분리하는 경향이 있습니다. 따라서 보통의 경우 게임 룸 데이터를 파일에 저장하고 레벨을 빌드하기 위해 데이터를 읽은 다음 사용자가 직접 새로운 레벨을 구성하고 궁극적으로는 룸 데이터를 전달할 새 파일을 만들 수있게 할 수 있습니다.

4

나는 게임을 만드는 회사에서 근무하며 코드에서 분리 된 방을 가지고 있으며, mysql에 있습니다. 실제로 각 방에 들어가는 항목도 테이블에 있으며 그 순간 어느 항목에 어떤 항목이 있는지를 나타내는 테이블도 있습니다. 게다가 게임을 확장하거나 데이터베이스에 대한 통계를 작성하는 것이 훨씬 더 좋습니다.

0

실 데이터를 읽고 통역 데이터를 기반으로하는 통역사와 같은 게임을 구성하여 유효한 명령 (이동, 가져 오기, 놓기, 변경 ...)을 허용합니다. 이동을 위해 노드가 방과 모서리로 움직일 수 있도록 미리 만들어진 그래프가 있습니다.

3

여기서 두 가지 문제를 해결할 것입니다. 먼저 게임을 정의하는 데이터를 사용할 엔진에서 멀리 떨어진 곳에 두는 것이 옳습니다. 이렇게하면 텍스트 기반 게임의 경우 오타를 수정하기 위해 모든 것을 다시 컴파일하지 않아도됩니다.

둘째, MySQL의 사용에 대해서는 의문이 있습니다. 사람들의 시스템에 설치 될 dos 타입의 게임을 만들고 있다면, pre-req가 'Install MySQL'이되기를 원하지 않는다. 거기에 C에서 작성된 작은 프로그램이 있습니다.이 프로그램은 여러분의 필요에 훨씬 더 잘 맞는 SQLite라고 불리는 모든 것을 사용할 수 있습니다. 반면에 경우 웹이 텍스트 기반의 게임의 출시에 대한 매체이며, 다음에있다 :

1

방 설명이 소스 코드의 일부가 될해야 또는 그것을 밖으로 분리 해야합니까?

분리.

Prolog 언어를 사용해보십시오.

  • 그것은 SQL과 유사한 데이터베이스 (실제로는 논리적 술어) 당신은 어떤 변화가 귀하의 모험 finishable 후 여부를 확인 할 수있을 수있는 몇 가지 기술로
  • 있습니다.
  • 매우 "컴퓨터와 같은"것이 아니라면 논리 설명 자에 의해이 설명을 쉽게 만들 수 있습니다.

examples of Prolog text adventures in simple Google search을 볼 수 있습니다.

0

개체를 소유 한 개체 룸이있는 코드와 설명을 구분합니다. 파일, 데이터베이스 또는 원하는 것을 사용할 수 있도록 일부 Facade를 통해 "데이터베이스"를 호출하는 설명입니다. 또한 결국에는 설명에 행동을 포함하는 객체를 갖는 것과 같이 룸 자체에 스크립팅을 추가 할 수 있습니다.

2

ADRIFT과 같은 시스템을 사용할 수 있습니다. 그러면 설명과 논리에 대해 걱정할 필요가 있습니다.

1

주위에 활발한 커뮤니티가 이미있는 엔진을 사용하는 것이 좋습니다. 그렇게하면 소스 코드가 그 것이다. 게임의 소스 코드. 나도 같이 갈거야 TADS 3 또는 Inform 7