node.jsなんかでオンラインなゲームを作る(1) 準備編

現在作っているものの記録、その一。タイトルの通りです。
node.jsをいじるのが最近楽しいので、習得のためにも何か一つアプリでも作ります。
この記事は基本的に自分の単なる忘れないためのメモなので、あんまり参考にはならないかもしれないです。ふいんき程度です。

node.js使用モジュール

  • サーバーサイドJavaScript環境node.js
  • node.jsのフレームワークであるExpress
  • Websocketを簡単に使用できるnode.jsモジュールsocket.io
  • MongoDBのラッパーであるnode.jsモジュールMongoose
  • テンプレートエンジンとして使用するejs

 

クライアント側で使用するjavascriptライブラリ

  • javascriptで動作するゲームフレームワークであるenchant.js
  • あと楽なのでjquery

これらを駆使することで全てjavascriptだけでサーバー-クライアントで動作するjavascriptゲームを作ることが出来ます。
使うのは全てjavascriptという点がすごいですね。新しい言語を習得する必要が無いよ!という形で。

どれもまだ新しいので日本語のドキュメントが無く、いろいろと苦労しつつやっていきます。
外部のアプリケーションとしてMongoDBを使用しています。
MongoDBのインストールについてはこの記事に書いてます。

導入編

ちなみに自分はWindows環境なので、使うのは大体Windowsです。
Linuxサーバーでテストするときはあるかもしれないですが、基本的にマルチプラットフォーム環境なので、同じモジュールを入れるだけで動きます。
node.jsはインストール&Pathを通さないといけませんが、Windows公式パッケージは自動的にPathを通してくれると思います。・・・たぶん。

node.jsを公式サイトからインストールします。
Windows版の場合、npm(node.jsパッケージ管理ソフト)も付属してくるようです。
インストール後は、Pathが通ってればコマンドプロンプトで動作するようになります。
node -v
v0.10.33
・・・なんか最新版は最近v0.12になったらしいですね。v0.12はECMAScript6の機能が入っていろいろ変わってるようなので、まだ使用してません。
なのでバージョンは主にv0.10を使用します。
バージョン上がるの早すぎでついていけない。

そのあとは、npmでモジュールをインストール。
個別にインストールしてもいいのですが、あらかじめpackage.jsonを作ってインストールするのもいいです。
pqckage.jsonパッケージ管理設定ファイルのような、ここにあらかじめ使用する物を書いておくと、
ファイル内でnpm installとコマンドを打つだけで必要なものを全部取得してきます。
RubyのBundler(Gemfile)とだいたい同じ役割。

{
  "name": "test",
  "version": "0.0.0",
  "private": true,
  "dependencies": {
    "express": "3.5.2",
    "ejs": "*",
    "socket.io": "*",
    "mongoose":"*"
  }
}

こんな感じで・・・
見てわかるようにモジュールのバージョン管理、あとlicenseやURLなんかも記載できるらしいです。
なんで大体Githubで公開されているnode.js製のアプリケーションなんかはここ見ると大体どういうの使えばいいか、どういうライセンスなのかわかります。

モジュールは全部そのまま直下のnode_modulesディレクトリに入ります。
node.jsのモジュールはローカルにインストールできるのがいい点だと思います。どうにもうまくいかなくなったらファイルごと消せばいいですし。

書いている時点で、socket.ioの正常動作・MongoDBに登録するところまで出来ているのですが、とりあえずここまで。
気が向いたら書きます。

次:node.jsなんかでオンラインなゲームを作る(2) enchant.jsでまず画面作成

Leave a Reply

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

You may use these HTML tags and attributes:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)