NODE.JSなら日曜プログラマーでも
簡単に通信対戦ゲームが作れる
竹内 佑介
自己紹介
•

竹内 佑介です

•

趣味でゲームを作ってました

•

クリック&クリエイト、RPGツクール

HSP、DXライブラリとかやってました
中学生の頃はツクールや

クリック&クリエイトやってました

•

こいつらは使いやすいけど、変数とかサブルーチン
の機能が弱くて大変だった

•

じゃあ、プログラムを書こう
という訳で入門書を読みましたが
•

入門本読むぞ

•

えっ、ウインドウ作るだけで100行

•

プログラムとか素人には無理
そこに救世主が登場

その名もHSP
HSPは僕の青春でした
•

ウインドウ作るのが1 行だけ

•

ボールがバウンドするアニメーションも20行くらい
で書けちゃう

•

しかも無料で使えて、けっこう軽い
まあその後DXライブラリに鞍替え

しますが……
•

当時のHSPにはグローバル変数しかなかった。

ー>関数、クラス使いたいよ

•

あと、HSPだと途端に敷居があがるものがありまし
た、それは……
通信対戦と3D
C++で3D、通信にチャレンジしてみます
が……
•

3DはDXライブラリで何とかなったけど、素材用意
するのが死ぬ程大変

•

ソケット通信プログラムもやってみたけど、初期化
するだけで100行近くって

•

こんなのツクラーに毛が生えた程度の人間が、趣味
で出来ることを超えてますよ
そこでNODE.JS+SOCKET.IO

の出番です
SOCKET.IOで簡単に

通信プログラムが書けます

•

これだけでサーバ、クライアント間での通信プログ
ラムが書けてます
論より証拠ということで

通信対戦ゲームを作ってみました
•

ジャンケンゲームです

•

http://janken-kaidouji85.herokuapp.com/
かかった時間、行数とか
•

作成期間は2日間(土日で作りました)

•

プロダクトコードの行数は500行くらいです

•

socket.io、express、enchant.jsという

オーソドックスな組み合わせで作られています
作ってみた感想
•

サーバから自分で書けるフリーダムさがいいですね

->Railsとかは予め決められた枠組みを自分で拡張

する感じ

->node.jsは自分で枠組みを作れる感じ

->こういうところがHSPとかに通じるものが

 あると思います。

•

堅実さよりもすぐに動かせる機能こそ、ツクラーの望むも
のです
手軽さ故にはまったところもあります
•

じゃんけんの手を定数にしてました

•

が、クライアントと繋げるでスペルミスしてるのに
気づきませんでした

•

undefineでもイコールは通るので、テストコードに
もひっかかりませんでした

•

Javaならビルドエラーで一発で気づいたんだろうな
じゃんけんゲームのソースについて
•

今日さらしたゲームのソースコードは、

githubに公開してます

https://github.com/kaidouji85/janken
まとめ
!

この短期間で通信対戦ゲームを

実装できる使いやすさ
まったくNODE.JSは最高だぜ

(ごめんなさい、これが言いたかっただけです)
ご清聴ありがとうございました

Node.jsなら日曜プログラマーでも簡単に通信対戦ゲームが作れる