ネットゲームの開発日記

投稿日: 更新日:

実は前々からネットゲームが作りたかったです。

というのも、自分がやっていたネトゲはことごとく潰れるというジンクスがありまして。
ROBROBのMMO!!から始まり、じゃが島の軍団、ボンバーマン、全部遊べなくなってしまいました。
うう。TWは、遊べるから大丈夫だけど。うん。それでも結構亡くなる確立が高い。
そして、じゃが島軍団の一度目の閉鎖で、決心したのです。いつか作ろうと。
でもそのころはHSPしか言語ができなく、さらにまだまだ未熟な初心者でした。
HSPでランチャー兼ダウンローダを作ったり、d3moduleでなんとか形にしようと頑張った時期もありました。
そして2年前にCを去年にJavaを勉強して、ついに今度こそと、2月あたりからチャレンジすることに決めました。
特に、じゃが島には色々な思い出があり、軍団みたいで楽しいのを目指そうと、3DのFPSMMO?みたいなのを目標にすることに決めました。
Javaで3DというとJava3DとJOGLがあります。
Java3DはJavaの別モジュールみたいな感じで別インストールが必要。(jarで配布する方法もあります。)
JOGLはOpenGLです。こっちのほうがやるとしたら楽しそう。Java Web Startで配布できるらしい。
後で知ったのですが、どちらも、Java Web Startで配布できるらしいですね。

JOGLはアプレットでもいけるみたいです。

追記
インストール無しで利用できるJava3Dのアプレットの設置方法は
mebius.tokaichiba.jpさんの「org.jdesktop.applet.util.JNLPAppletLauncher」を使った手法
Java3Dのアプレットを公開する方法」が参考になります。
JOGLのアプレットの設置も同じく「JNLPAppletLauncher」を利用すれば設置できます。

まあそういうのはおいておいて、3Dは自作と決めました。
理由は、3Dの勉強をかねる。まあよくある理由ですね。ようはやる気なんです。
3Dを作るが目的ではなく、3Dを表示が目的なら、上で上げた奴の方がもちろんいいです。
ところで自作3Dといっても、実は2種類あります。
それはGraphicsのdrawPolygonを使うかどうかに関わってきます。
もちろんdrawPolygonを使うほうが、速度が早くそして簡単にできるのですが、
全てJAVA OSに任せてしまうため、頂点カラーやスムーズシェーディング、Zバッファが出来ないのです。
というわけで、画像をピクセルで、必要とあればGraphicsを使用できて、
ピクセルはBufferedImageに直結しているというようなクラス作成から始めました。
次に、描写関係です。
最初は、「2点を結ぶ線分」からはじめました。実はこれが、一番の基本となるのです。
簡単そうに見えて、意外に難しい問題です。ウィンドウの外の部分を描写するのは時間がもったいないわけですし、
実数を使うのも、どうかと。まあ頑張って実装しました。
これが出来れば、あとはすらすらいけました。「2点を結ぶ線分」
→「下の辺2点が水平な三角形」→「上の辺2点が水平な三角形」→「2つ上下をくっつけて任意の形の三角形」

→「任意の形の3角形を、2つくっつけて、任意の形の四角形」

こんな感じdrawPolygonを実装できます。
「2点を結ぶ線分」というのは、始点と終点に、それぞれ色を設定して、
始点から、終点までなめらかに色が変化する、というものも実装して見てください。
まあ話は飛んで、サーバーとクライアントの作成に。
参考にしたページは、mmo!!でおなじみのロブロブさん開発日記MMOの作り方です。
ここで恥ずかしながら、初めてArrayListやHashMapの使い方を勉強しました。
だって今までツール作りしかやってなかったんで。いや、ツール作りでも使う人は使うか^^;
HSPにはこんなのなかったし、初めての概念だったというわけです。
通信の勉強は、TECHSCOREのTCPIPネットワークプログラミングを見て、サンプルから拡張して感じで。
そんなこんなで、ゲームとしてはまだまだですが、動くものが完成しました。

続く。かないかもしれない。

オブジェクト作成。(画像は懐かしいあの看板

マップ作成
オブジェクト配置
ネットワーク
広告

ネットゲームの開発日記” への1件のフィードバック

    […] 描写用のクラスは、以前作成したゲーム描写用の下地のクラスを利用しているので結構高速動作。 […]

    いいね

コメントをどうぞ(承認された後に公開されます。メールアドレスの記入は自由ですが、記入した場合でも一般公開されることはありません)

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中