LoginSignup
56
49

More than 5 years have passed since last update.

1日でsocket.ioを使ったゲームを作ってみた

Posted at

概要

スクリーンショット 2015-03-03 16.29.37.png

Rising Sun

ただタップするだけのゲームです!
社内ハッカソンとして5名体制1日で作った、今のところ技術デモな感じのものです
こんなものも作れるのかー程度に参考にしていただけたらと思います

Yudo がリリースをしています

使っているもの

socket.ioをフル活用しています
サーバーサイドはNode,クライアントはほぼ素のjavascriptと言った感じ

サーバーサイド

Node.js
Socket.io
Redis

クライアントサイド

HTML5,CSS3,Canvas.. etc
Socket.io
jQuery
Remodal

もう少し詳しく

チャットの部分はすごく簡単で、

server.js
var io = require('socket.io');
socket.on('message', function(data) { // クライアントから'message'でdataを受け取った際のハンドラ
    io.emit('message', message); // すべてのクライアントへ送信
});
client.js
var socket = io(SERVER_HOST); // サーバーと接続

// 送信処理
$('form').submit(function(){ // formのsubmitが押された時
    socket.emit('message', $('#input').val()); // サーバーへ'message'として#inputの内容を送信
    return false;
});

// 受信処理
socket.on('message', function(data) { //'message'でデータが来た時
    $('#message-box').append(data);  // #message-boxに追加
});

くらいのコードで、ほとんど完成してしまいます
(実際には、escape等の処理があるので簡略化したものですが

基本的にWebSocketの技術を利用していますが、対応していないブラウザ等にはCommet等の旧来技術を利用してくれ、
(かつそれを隠蔽してくれていて)とても優秀です
もちろん、モバイル等のプラットフォームでも問題なく使用出来ました

また、あるユーザーがタップした際に、他のユーザーはリアルタイムに見ることができるのですが、
チャットと同様に、tapされた際のイベントをサーバー経由で配信しています

最後に

socket.ioすごく便利です
リアルタイムWEBを実現する、現状で最良の手段ではないでしょうか
導入等も簡単にできるのでぜひぜひ導入を検討していただきたい&広めて行きたい次第です

56
49
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
56
49