2009-07-21 10 views
15

이전에 좋아하는 게임을 프로그래밍하기로 결정했습니다. 필자는 이전에 게임을 해본 적이 없으며 파이썬에서 대규모 프로젝트를 한 적이 없습니다.보드 게임 시뮬레이터 만들기 (파이썬?) (파이 게임?)

게임은 이전 아발론 힐 게임이다 Russian Campaign

내가 파이 게임에 조금 놀았 던과 파이 게임이 작업을 수행하고 다른 엔진/언어 후에 이동하려고하지 않는 이유가 있다면 궁금 해서요 .

이것을 구축하기 위해 파이 게임을 사용하면 어떤 단점이 있습니까?

저는 인공 지능에 대해 걱정하지 않습니다. 우선 게임의 최소 두 플레이어 버전을 설치하고 실행하고 싶습니다. 보너스는 게임의 상태를 저장하고 네트워크를 통해 플레이 할 수있는 기능입니다.

이 프로젝트를 시작하기위한 Do 's와 Dont 's는 크게 감사하겠습니다.

답변

25

보드 상태를 추적하고, 프런트 엔드에서 이동 명령을 받고, 전투를 해결하기 위해 임의의 숫자를 생성하고, 프런트 엔드에 업데이트를 보내고, 특정 게임을 저장하고 복원하는 작업을 처리하는 "백 엔드" ...) "프런트 엔드"것들은 기본적으로 모든 사용자 인터페이스를 제공합니다.

PyGame은 클라이언트 측 프런트 엔드에 적합한 기술 중 하나이지만 여러 프론트 엔드 (PyGame, 브라우저 기반, 디버깅 용 텍스트 기반 등)를 구현할 수 있습니다. . 물론 백엔드는 PyGame이나 다른 UI 기술에 신경을 덜 쓸 수 있습니다. Python은 대부분의 프론트 엔드 (브라우저, 프론트 엔드 등의 프론트 엔드를 작성하는 경우에는 Javascript, Actionscript 등이 필요하지만, 백 엔드에서는 확실히 괜찮습니다.).

백 엔드와 프론트 엔드를 별도의 프로세스로 실행하고 턴 기반 게임 (XML 기반의 게임), XML-RPC 또는 일부 더 단순한 변형 (JSON 페이로드가 HTTP POST를 통해 앞뒤로 이동하고 답장을 보내면 가장 좋게 보일 것입니다.

백엔드에서 (아마도 위에서 언급 한 것처럼 페이로드에는 JSON을 사용하기 시작합니다.) 흙먼지가 간단한 WSGI 서버 (아마도 werkzeug 또는 mdidleware를 돕는 것과 같이)로 시작하고, 단순한 덤프 디버깅 명령 줄 클라이언트 각 단계에서 나는 서버 측 (백엔드) 또는 클라이언트 측 (프론트 엔드)을 조심스럽게 너무 크거나 동시 "단계"를 피하는 것이 될 것입니다. 나는 "무거운"기술이나 거대한 프레임 워크를 사용하여 내 뒤에서 마법적인 일을하지 않을 것입니다 (ORM, Django, SOAP 등 ...).

좋은 소스 코드 저장소를 사용하고 있는지 확인하십시오 (예 : hg 또는 svn을 사용하면 혼자서 작업 할 수 있습니다. 또는 bazaar 또는 git을 이미 알고있는 경우).

나는 당신이 당신의 보너스를 드롭 등 여러 plateforms 지원, 프론트 엔드의 분리 및 백 엔드, XML-RPC와 JSON, 서버를 사용하여 통신을 여러 프로세스에 대해

을 걱정한다고 생각하지 않습니다

+0

감사합니다. 계속 해주시면 많은 도움이됩니다 ... – Evan

+0

@ 에반, よ세요. –

2

당신의 주요 아이디어에 집중하십시오 : 턴 기반의 2 인 게임. 그것은 당신의 첫 번째 게임이기 때문에 배울 것이 많고 동시에 모든 것을 돌보는 것은 압도적 일 수 있습니다.

+4

실제로 작업 비트를 얻는 것이 더 간단 해지는 것입니다. 그런 다음 파이 게임을 배울 때가되면, 저작자는 인터페이스로 파이 게임을 배워야합니다. 그렇지 않으면 스프라이트가 게임 상태를 저장하게됩니다. 파이 게임은 디버그하기가 어렵지만 텍스트 인터페이스는 디버깅하기 어렵습니다. –