あなたもはじめよう
Last update at 22nd April 1998
動作環境
ダウンロード
インストール
サンプルラン
自分のプログラムを作る
オリジナルのモデルを作る
アップロードして、ランキング&ギャラリーに参加する。
ここでは、「宇宙雪合戦」を、あなたのパソコンでも、始める事ができるように説明したいと思います。Windows95/WindosNTパソコンがあれば、必要なプログラム/データは、インターネットからフリーウェアとして、ダウンロードできます。
さらに、自分のオリジナル対戦プログラムを作り、それにオリジナルの三次元モデルを付ける事も可能です。(Direct3D版のみ)
プログラミングには市販のCコンパイラを使いますが、フリーのCコンパイラであるGCCを使う事もできます。 オリジナルの三次元モデルを作るために、市販のモデラーも使えますが、フリーソフトを使う事も可能です。
つまり、(根性があれば、)すべてのプログラム/データ/ツールをフリーウェアでそろえる事もできるのです。
- 動作環境
- OpenGL版:Windows95以降、またはWindowsNT3.51以降(x86)
- Diret3D版:Windows95以降、またはWindowsNT4.0以降(x86)
- OpenGL、もしくはDirect3Dに対応していること
- CPU: Pentium 90MHz 以上推奨
- メインメモリ 16Mバイト以上(32M以上推奨)
- 24bit、または32bitカラー
- C/C++コンパイラ(Win32バージョン)推奨
- ダウンロード
- 雪合戦プログラムをダウンロードします。このプログラムには、OpenGL版Direct3D版の二つがあります。シミュレーション機能や勝敗アルゴリズムは同一ですが、Direct3D版の方が表示速度が高速で表示モデルの変更機能を持っています。
- 現在、一般に販売されているパソコンでは、OpenGLは標準で装備されていますが、Direct3Dのランタイムは、無償とは言え、ネットワーク上または、雑誌の付録CD−ROM等から入手しインストールする必要が有ります。
- もし、簡単に始めたい時はOpenGL版を、既にDirect3Dが使える環境にある場合や、Direct3Dのインストールの苦労をいとわない場合はDirect3D版をお勧めします。
- 次のプログラム(アーカイブ・ファイル)をダウンロードします。
- インストール
- まず、SNOGL005.LZHまたはSNOGL005.LZHをLHAなどで解凍します。
- この時、できるファイルの内、SnowBOGL.exeまたはSnowBD3D.exeとAsia.bmpとSnowBall.hlpを適当なディレクトリに置いて下さい。このプログラムはこれら三つのファイルだけで起動できます。エクスプローラ等で起動して下さい。他のファイルも同一のディレクトリに置いた方が便利と思いますが、必須ではありません。
- なお、Direct3D版の場合、実行前にDirect3Dのランタイムをインストールする必要があります。
- サンプルラン
- OpenGL版のアーカイブ・ファイルには3つ、Direct3D版には4つの対戦プログラムのサンプルが、ソースと実行形式で、添付されています。これらを実際に対戦させて見て下さい。サンプルプログラムのロード、対戦方などの使い方は雪合戦」に付いているヘルプを参考にして下さい。
- 自分のプログラムを作る
- 自分のオリジナル対戦プログラムを作るには、コンパイラが必要になります。必要なコンパイラは、Win32APIを使ったコンソールアプリケーションを作れるものです。
- サンプルプログラムは、C/C++で書かれていますので、これを参考にしたい時は、C/C++コンパイラが必要となります。サンプルとして、C++Builder用のプロジェクトファイルが添付されているので、C++Builderのユーザーの方は、そのまま統合環境で、プログラミングができます。
- その他、VisualC++やWatcom-C++、Borland-C++等の市販コンパイラなら、ほとんどそのままでコンパイル可能なはずですが、動作確認はしていません。これ以降の説明では、私の開発環境であるC++Builderを用いますが、他のコンパイラを使用している方は、そのコンパイラの説明書を参考にコンパイルして下さい。
- フリーのコンパイラとしては、GCCによる動作確認が取れています。GCCは、フリーでインターネットからダウンロードできますが、サイズが14Mと大きいのが難点です。コンパイラを持っていない人で、お金が無くて、根性のある方はGCCに挑戦してください。
- C/C++以外の言語でも、Win32APIが使えれば、使用可能なはずです。BASIC、Java、Pascal等、C/C++以外の言語を使って、オリジナルプログラムを作る事ができたら是非教えて下さい。
- まず、サンプルプログラムの再コンパイルをしてみましょう。C++Buliderからプロジェクトのオープンで、sample.makを選び、プロジェクト->メークで、新たにsample.exeが作られるはずです。統合環境を使ったこの方法では、コンパイル時のエラー表示は良いのですが、生成されるプログラムのサイズが大きくなる(約110k)のが難点です。
- コマンドラインを使用し、統合環境を使わない方法としては、DOSプロンプトで、bcc32
sample.cppを実行することで、コンパイラできます。この方法では、サイズが約半分になります。最終的なコンパイルはこの方法が良いでしょう。
- すべてのサンプルプログラムの中で、変数:k_o、d_o、ka
、da、threshold の値が重要な制御パラメータになっています。これらの値を変えると動きが変わってくるでしょう。パラメータを最適にするだけで、相当強くすることも可能です。(お詫び:SNOGL005.LZHおよびSND3D005.LZHに含まれているサンプルプログラムのソースで、k_o、d_o、ka
、daのコメントが間違っていました。正しくは、k_o、d_oが位置制御のフィードバックゲイン、ka
、daが姿勢制御のフィードバックゲインです。)
- もちろん、アルゴリズムを完全に変えて、オリジナルの戦略をプログラムすることも可能です。私の仲間内では、相手に玉を打たせて戦略、接近戦に持ち込む戦略、一撃離脱方式など、人それぞれの戦略を持ったプログラムを作っています。
- プログラムを個人で作っている時は、プログラム名や著作権表示は、重要ではありませんが、他の人と対戦するようになったら、必ず、ユニークでオリジナルなプログラム名と著作権表示を行って下さい。サンプルプログラムに飽きたら、ランキング&ギャラリーから対戦プログラムをダウンロードして、対戦させましょう。
- 自信のあるプログラムができたら、是非、アップロードして、ランキングに参加して下さい。
- オリジナルのモデルを作る
- Direct3D版の雪合戦プログラムは、「ロボット風」でも「宇宙船風」でも、オリジナルのモデルを表示することができます。オリジナルモデルは、Direct3Dのメッシュファイルである拡張子.xのファイルが出力できれば、オンラインソフトでも一般市販でも三次元モデラーが有れば、簡単に作れます。
- ここでは、安く上げるために、フリーウェアでオリジナルモデルを作る方法を紹介します。私が調べた限りでは、フリーウェアで、直接.xファイルを作る三次元モデラーは有りませんでした。(もし、ご存知でしたら、教えて下さい)
- そこで、フリーウェアの三次元モデラーである「六角大王」を使って、オリジナルモデルを作り、その出力である.rokファイルをフリーウェアのRokToXを使って、.xファイルに変換します。(手前味噌ですが、RokToXは、私の作品です。
- まず、六角大王とRokToXをダウンロードします。
- ・六角大王 Windows版 Version5.25(Vector
Software Packより)
- ・RokToX Version 0.07
- 各ソフトのインストール方法や使用法の説明は、それぞれのソフトのドキュメントを参考にして下さい。
- まず、六角大王で作ったモデルを.rokファイル形式でセーブします。次に、RokToXを起動し、作ったファイルを読み込みます。これを.xファイル形式でセーブすれば、オリジナルモデルのできあがり。ちなみに、「六角大王」チュートリアルブックと言う本が、1と2巻の2冊出ていますので、モデルを作る時に参考になるかも知れません。
- 作ったモデルのロード方法は、雪合戦プログラムのヘルプファイルを参考にして下さい。ただし、六角大王で作ったモデルは少し、大きいので、スケールを小さくした方が良いようです。
- なお、自分でモデルを作るのが面倒な人は、NiftyserveのFGALAVのLIB16に、多数のモデルがありますので、これをダウンロードするのも良いでしょう。(私は、No.93のF-86Fが好みです)
- アップロードして、ランキング&ギャラリーに参加する。
- 自信のあるオリジナル・対戦プログラムができましたら、是非アップロードして下さい。ランキングで良い成績のものは、ダウンロードできるようにして、他の人にも対戦できるようにしたいと考えています。アップロードする時は以下の注意を守って下さい。
- オリジナルなプログラム名を付けること。
- 著作権表示(Copyright (C) 1998 貴方の名前)を入れること。(サンプルプログラムを参考にして下さい。
- コンパイルは、サイズを小さくすること。(C++Builderを使用の方は、コマンドラインからコンパイルして下さい。)
- 著作権表示とフリーウェアで転載可能と宣言したReadme.txtを追加し、LHA等で圧縮すること。
- ソースは不要(貴方の戦略が判っても良いなら添付しても良いです)
以上の注意を守った上で、私宛のメールに添付して送って下さい。
Atsushi Noda
1998