SlideShare a Scribd company logo
1 of 21
Nodeで対戦型シューティング
    Duel Shooting Online




                           @bar_row


                                      1
目次



1. 前作の紹介
2. ゲームの仕様
3. 使った技術・サービス
4. 開発作業工程
5. C/Sの通信内容
6. 苦労した点
7. デュエルスタンバイ!


                2
目次



1. 前作の紹介
2. ゲームの仕様
3. 使った技術・サービス
4. 開発作業工程
5. C/Sの通信内容
6. 苦労した点
7. デュエルスタンバイ!


                3
1. 前作の紹介




http://9leap.net/games/1019
                              4
目次



1. 前作の紹介
2. ゲームの仕様
3. 使った技術・サービス
4. 開発作業工程
5. C/Sの通信内容
6. 苦労した点
7. デュエルスタンバイ!


                5
2-1. ゲームの仕様(機体)




White Demon
                  VS            Red Comet




                                            6
2-2. ゲームの仕様(機体)




    ???



                  7
2-2. ゲームの仕様(全体)

1. アクセスが2名単位でたまると即決闘
2. どちらかのHPが0になったら終了(画面が固まる)
3. 操作している機体のみ効果音(mp3)が鳴る
4. 同じ色の機体同士で対戦することはない
5. 自機は下に、敵機は上に表示される
6. フィールドの高さと幅は 480*720 固定とする
7. 推奨ブラウザは Chrome※
      ※Smart Device でも動くが最適化されていない
      ※IE8 でも動くがCSS3が適用されずにレトロな感じ

                                     8
2-3. ゲームの仕様(コマンド一覧)




                      9
目次



1. 前作の紹介
2. ゲームの仕様
3. 使った技術・サービス
4. 開発作業工程
5. C/Sの通信内容
6. 苦労した点
7. デュエルスタンバイ!


                10
3. 使った技術・サービス



            ※routingのみ




 ※Audioのみ
                         11
目次



1. 前作の紹介
2. ゲームの仕様
3. 使った技術・サービス
4. 開発作業工程
5. C/Sの通信内容
6. 苦労した点
7. デュエルスタンバイ!


                12
4. 開発作業工程



1. 前作レガシーコードの解体(2人日)
2. サーバーサイド Javascript の把握(0.08人日)
3. PaaS の把握(0.04人日)
4. オンライン用処理の実装(3人日)



                         計 5.12人日

                                    13
目次



1. 前作の紹介
2. ゲームの仕様
3. 使った技術・サービス
4. 開発作業工程
5. C/Sの通信内容
6. 苦労した点
7. デュエルスタンバイ!


                14
5-1. C/Sの通信内容(ゲーム開始まで)
         Http: Request



                                Http: Response


         Opening 画面表示
         双方向通信開始


Client                                           Server
         WS: Connection


                          決闘者Queueに接続者ID追加
                                                    15
5-2. C/Sの通信内容(ゲーム開始まで)
         WS: 自機敵機色情報くれ

           マッチングしてたら「自機敵機色情報」を返す
                 していなかったら「待て」を返す

                         WS: 自機敵機色情報

         自機と敵機の色情報を元に画面作成
         ゲーム開始
Client                                  Server
                               WS: 待て

         5秒後に「自機敵機色情報くれ」を再送信

                                           16
5-3. C/Sの通信内容(ゲーム中~終了)
           WS: 白が撃つ

             WS: 白が撃つ             WS: 白が撃つ

           自機が撃つEffect            敵機が撃つEffect


                                  WS: disconnect

               WS: 勝利                  通信停止
Client A                 Server      画面更新停止        Client B
           通信停止                        You lose
           画面更新停止
           You win
                                                       17
目次



1. 前作の紹介
2. ゲームの仕様
3. 使った技術・サービス
4. 開発作業工程
5. C/Sの通信内容
6. 苦労した点
7. デュエルスタンバイ!


                18
6. 苦労した点

レガシーコードいくない
 ・前作オフライン版のコードは拡張性が皆無だった
 ・赤いのを動かせるようにするまで時間を要した



オフラインの操作性とオンラインの整合性とを保つ
 ・操作性を求めるとレイテンシが整合性の邪魔をする
 ・厳密なゲーム進行のために同期を強めると
  動きがモッサリし過ぎてストレス
 ・最小限の同期で操作性と整合性とをトレードオフ
                            19
目次



1. 前作の紹介
2. ゲームの仕様
3. 使った技術・サービス
4. 開発作業工程
5. C/Sの通信内容
6. 苦労した点
7. デュエルスタンバイ!


                20
7. デュエルスタンバイ!



      デバッグにご協力をお願いいたします。


Websocket
http://duelshooting-pocapocaunty.dotcloud.com/


Comet
http://duelshooting-online.herokuapp.com/

                                                 21

More Related Content

Similar to Nodeで対戦型シューティング

10分で分かる(かもしれない) iOS 7 SpriteKit Framework
10分で分かる(かもしれない) iOS 7 SpriteKit Framework10分で分かる(かもしれない) iOS 7 SpriteKit Framework
10分で分かる(かもしれない) iOS 7 SpriteKit Framework圭 長谷川
 
ガールアックス:リアルタイム通信処理の効率的な実装
ガールアックス:リアルタイム通信処理の効率的な実装ガールアックス:リアルタイム通信処理の効率的な実装
ガールアックス:リアルタイム通信処理の効率的な実装dena_study
 
ブラウザのハードウェア対応の未来を探る
ブラウザのハードウェア対応の未来を探るブラウザのハードウェア対応の未来を探る
ブラウザのハードウェア対応の未来を探るndruger
 
IgRemoteについて
IgRemoteについてIgRemoteについて
IgRemoteについてKelly Holonic
 
宣言的(Declarative)ネットワーキング
宣言的(Declarative)ネットワーキング宣言的(Declarative)ネットワーキング
宣言的(Declarative)ネットワーキングMotonori Shindo
 
もっと早く知りたかったプログラミング技法9選
もっと早く知りたかったプログラミング技法9選もっと早く知りたかったプログラミング技法9選
もっと早く知りたかったプログラミング技法9選Masayuki Akiyama
 
Opencontraildays2014dist 140514051248-phpapp01
Opencontraildays2014dist 140514051248-phpapp01Opencontraildays2014dist 140514051248-phpapp01
Opencontraildays2014dist 140514051248-phpapp01ozkan01
 
Mobage Connect と Identity 関連技術への取り組み - OpenID Summit Tokyo 2015
Mobage Connect と Identity 関連技術への取り組み - OpenID Summit Tokyo 2015Mobage Connect と Identity 関連技術への取り組み - OpenID Summit Tokyo 2015
Mobage Connect と Identity 関連技術への取り組み - OpenID Summit Tokyo 2015Toru Yamaguchi
 
Windows phone SDK 8.0でのアプリ開発
Windows phone SDK 8.0でのアプリ開発Windows phone SDK 8.0でのアプリ開発
Windows phone SDK 8.0でのアプリ開発Nobuaki Aoki
 
Pocket cloudrev1.00 (PDF)
Pocket cloudrev1.00 (PDF)Pocket cloudrev1.00 (PDF)
Pocket cloudrev1.00 (PDF)孝幸 三宅
 
“見てわかる”ファイバーチャネルSAN基礎講座(第6弾: 最終回)~困った時もこれで安心(?)、FC SANにおけるトラブルシューティングのコツとは??~
“見てわかる”ファイバーチャネルSAN基礎講座(第6弾: 最終回)~困った時もこれで安心(?)、FC SANにおけるトラブルシューティングのコツとは??~“見てわかる”ファイバーチャネルSAN基礎講座(第6弾: 最終回)~困った時もこれで安心(?)、FC SANにおけるトラブルシューティングのコツとは??~
“見てわかる”ファイバーチャネルSAN基礎講座(第6弾: 最終回)~困った時もこれで安心(?)、FC SANにおけるトラブルシューティングのコツとは??~Brocade
 
思い通りにいかないのがWebなんて 割り切りたくないから (Gunma.web #4 2011/02/12)
思い通りにいかないのがWebなんて 割り切りたくないから (Gunma.web #4 2011/02/12)思い通りにいかないのがWebなんて 割り切りたくないから (Gunma.web #4 2011/02/12)
思い通りにいかないのがWebなんて 割り切りたくないから (Gunma.web #4 2011/02/12)parrotstudio
 
GTMF2012 SpriteStudio と "Unity" と "CoronaSDK" と "ngCore" ! ~組み合わせて改善する 2D ワーク...
GTMF2012 SpriteStudio と "Unity" と "CoronaSDK" と "ngCore" ! ~組み合わせて改善する 2D ワーク...GTMF2012 SpriteStudio と "Unity" と "CoronaSDK" と "ngCore" ! ~組み合わせて改善する 2D ワーク...
GTMF2012 SpriteStudio と "Unity" と "CoronaSDK" と "ngCore" ! ~組み合わせて改善する 2D ワーク...Web Technology Corp.
 

Similar to Nodeで対戦型シューティング (20)

10分で分かる(かもしれない) iOS 7 SpriteKit Framework
10分で分かる(かもしれない) iOS 7 SpriteKit Framework10分で分かる(かもしれない) iOS 7 SpriteKit Framework
10分で分かる(かもしれない) iOS 7 SpriteKit Framework
 
リモート・スマホ・シェアリング
リモート・スマホ・シェアリングリモート・スマホ・シェアリング
リモート・スマホ・シェアリング
 
ガールアックス:リアルタイム通信処理の効率的な実装
ガールアックス:リアルタイム通信処理の効率的な実装ガールアックス:リアルタイム通信処理の効率的な実装
ガールアックス:リアルタイム通信処理の効率的な実装
 
ブラウザのハードウェア対応の未来を探る
ブラウザのハードウェア対応の未来を探るブラウザのハードウェア対応の未来を探る
ブラウザのハードウェア対応の未来を探る
 
IgRemoteについて
IgRemoteについてIgRemoteについて
IgRemoteについて
 
広がる .Net
広がる .Net広がる .Net
広がる .Net
 
C#の書き方
C#の書き方C#の書き方
C#の書き方
 
C#の書き方
C#の書き方C#の書き方
C#の書き方
 
宣言的(Declarative)ネットワーキング
宣言的(Declarative)ネットワーキング宣言的(Declarative)ネットワーキング
宣言的(Declarative)ネットワーキング
 
Gameprog1
Gameprog1Gameprog1
Gameprog1
 
もっと早く知りたかったプログラミング技法9選
もっと早く知りたかったプログラミング技法9選もっと早く知りたかったプログラミング技法9選
もっと早く知りたかったプログラミング技法9選
 
Open contraildays2014
Open contraildays2014Open contraildays2014
Open contraildays2014
 
Opencontraildays2014dist 140514051248-phpapp01
Opencontraildays2014dist 140514051248-phpapp01Opencontraildays2014dist 140514051248-phpapp01
Opencontraildays2014dist 140514051248-phpapp01
 
SPDYの話
SPDYの話SPDYの話
SPDYの話
 
Mobage Connect と Identity 関連技術への取り組み - OpenID Summit Tokyo 2015
Mobage Connect と Identity 関連技術への取り組み - OpenID Summit Tokyo 2015Mobage Connect と Identity 関連技術への取り組み - OpenID Summit Tokyo 2015
Mobage Connect と Identity 関連技術への取り組み - OpenID Summit Tokyo 2015
 
Windows phone SDK 8.0でのアプリ開発
Windows phone SDK 8.0でのアプリ開発Windows phone SDK 8.0でのアプリ開発
Windows phone SDK 8.0でのアプリ開発
 
Pocket cloudrev1.00 (PDF)
Pocket cloudrev1.00 (PDF)Pocket cloudrev1.00 (PDF)
Pocket cloudrev1.00 (PDF)
 
“見てわかる”ファイバーチャネルSAN基礎講座(第6弾: 最終回)~困った時もこれで安心(?)、FC SANにおけるトラブルシューティングのコツとは??~
“見てわかる”ファイバーチャネルSAN基礎講座(第6弾: 最終回)~困った時もこれで安心(?)、FC SANにおけるトラブルシューティングのコツとは??~“見てわかる”ファイバーチャネルSAN基礎講座(第6弾: 最終回)~困った時もこれで安心(?)、FC SANにおけるトラブルシューティングのコツとは??~
“見てわかる”ファイバーチャネルSAN基礎講座(第6弾: 最終回)~困った時もこれで安心(?)、FC SANにおけるトラブルシューティングのコツとは??~
 
思い通りにいかないのがWebなんて 割り切りたくないから (Gunma.web #4 2011/02/12)
思い通りにいかないのがWebなんて 割り切りたくないから (Gunma.web #4 2011/02/12)思い通りにいかないのがWebなんて 割り切りたくないから (Gunma.web #4 2011/02/12)
思い通りにいかないのがWebなんて 割り切りたくないから (Gunma.web #4 2011/02/12)
 
GTMF2012 SpriteStudio と "Unity" と "CoronaSDK" と "ngCore" ! ~組み合わせて改善する 2D ワーク...
GTMF2012 SpriteStudio と "Unity" と "CoronaSDK" と "ngCore" ! ~組み合わせて改善する 2D ワーク...GTMF2012 SpriteStudio と "Unity" と "CoronaSDK" と "ngCore" ! ~組み合わせて改善する 2D ワーク...
GTMF2012 SpriteStudio と "Unity" と "CoronaSDK" と "ngCore" ! ~組み合わせて改善する 2D ワーク...
 

Recently uploaded

TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案sugiuralab
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 

Recently uploaded (9)

TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 

Nodeで対戦型シューティング