14

私は昔からのお気に入りのプログラミングに取り組み始めることにしました。私はこれまでゲームをしたことがなく、Python で大規模なプロジェクトを行ったこともありません。

ゲームは古いアバロン ヒル ゲームロシア キャンペーンです。

私はPyGameで少し遊んでいて、PyGameでこれをやろうとしない理由があり、他のエンジン/言語を求めていないかどうか疑問に思っていました.

これを構築するために Pygame を使用することの欠点は何でしょうか?

私は AI については心配していません。主に、ゲームの最小限の 2 プレーヤー バージョンを起動して実行したいだけです。ボーナスは、ゲームの状態を保存する機能と、ネットワーク経由でプレイする機能です。

このプロジェクトを開始するための「すべきこと」と「すべきでないこと」を教えていただければ幸いです。

4

2 に答える 2

25

「バックエンド」エンジンを分離します (ボードの状態を追跡し、フロントエンドから移動命令を受け取り、戦闘を解決するための乱数を生成し、フロントエンドに更新を送信し、特定のゲームの保存と復元を処理します...)基本的にこれらすべてのユーザーインターフェイスを提供する「フロントエンド」のものから。

PyGame はクライアント側のフロントエンドに適したテクノロジの 1 つですが、複数のフロントエンドを実装することもできます (PyGame のフロントエンド、ブラウザ ベースのフロントエンド、デバッグ用のテキスト ベースのフロントエンドなど)。もちろん、バックエンドは PyGame やその他の UI テクノロジをあまり気にしません。Python は、ほとんどのフロントエンド (ブラウザ、Flash などのフロントエンドを作成する場合に Javascript、Actionscript などを使用する必要があるものを除く) で問題なく、3 つのバックエンドでも間違いなく問題ありません。

バックエンドとフロントエンドを別々のプロセスとして実行し、可能な限り簡単に通信します-ターンベースのゲーム(これはそうだと思います)、XML-RPC、またはさらに単純なバリアント(JSONペイロードが戻ってHTTP POST を介して送信し、それらに応答するなど) が最適と思われます。

私はバックエンドから始めます (おそらくペイロードに JSON を使用します) -dirt デバッグ コマンドライン クライアント。各ステップで、サーバー側(バックエンド)またはクライアント側(フロントエンド)のいずれかを慎重に強化し、大きすぎるまたは同時の「ステップ」を回避します。私は、「重い」テクノロジーも、背後で魔法のようなことを行う大きなフレームワークも使用しません (ORM、Django、SOAP などは使用しません)。

適切なソース コード リポジトリを使用していることを確認してください (1 人で行うことがわかっている場合は hg や svn など、既に知っている場合は bazaar や git など)。

于 2009-07-21T04:18:01.943 に答える
2

I don't think you should care about multiple-plateforms support, separation of front-ends and back-ends, multiple processes with communication using XML-RPC and JSON, server, etc.

Drop your bonuses and concentrate on your main idea : a turn-based, two players game. It's your first game so you'll have a lot to learn and taking care of all this at once can be overwhelming.

于 2009-07-21T18:04:42.403 に答える