SlideShare a Scribd company logo
1 of 30
Download to read offline
@mipsparc http://goo.gl/Q5Emmi 1
通信対戦ゲームを作った話
某高校2年
@mipsparc
@mipsparc http://goo.gl/Q5Emmi 2
自己紹介
●
@mipsparcです
●
コンピュータ部で部長やってた11月に一応引退
●
Pythonとかネットワークをやってる
●
いつもLinuxを使ってます(Xubuntu)
●
通信技術とか鉄塔とか航空とかも好き
●
慣れてない.スライド削るの大変だった
Slideshareにあげてます
@mipsparc http://goo.gl/Q5Emmi 3
今日話したいこと
●
今回作ったGunTankOnlineについて
●
通信対戦ゲームを作る上での基礎知識
●
どういう仕様にしたか
●
得られた知見
@mipsparc http://goo.gl/Q5Emmi 4
GunTankOnlineの概要
●
戦車でマルチプレーヤーで撃ちあう2Dゲーム
●
Python(いろいろあってクライアントは2系...)
●
SDLの薄いラッパーのPygameを利用
●
タイトルは某キリトくんが可愛いアニメに
インスピレーションを受けました
デモ動画流します
@mipsparc http://goo.gl/Q5Emmi 5
最初の姿
壁抜けしたり,いろいろバグがあったりして大変だった
640行
@mipsparc http://goo.gl/Q5Emmi 6
ネットワークの基礎知識
UDP
Ethernet
IPv4
プロトコルが階層状に
積み重なっている感じ
普通はEthernetとIPv4は必ず使うので,そこ
をどうするかはあんまり考えなくていい
その上のレイヤーに何を載せるかを決める
トランスポート層ってやつです
@mipsparc http://goo.gl/Q5Emmi 7
ネットワークの基礎知識
TCP
3way-
handshake
実際の
通信
セッション
クローズ
ダイヤグラムは
http://www.nina.jp/server/basic/tcpip.html
より引用させていただきました
UDP
実際の
通信
@mipsparc http://goo.gl/Q5Emmi 8
というわけで
UDPはコネクションを確立せず
に送るので,
多ノードにどんどんパケットを
送りつける今回の仕様に適して
いる
@mipsparc http://goo.gl/Q5Emmi 9
通信対戦ってどうなってるの?
●
いろいろ方法がある
●
サーバにキー操作を送信して,ゲームロジックをその
上で動かして,最終的なパラメータのみを取得
(不正に強い,P2Pでない,サーバ負荷大,実装難易度高)
●
ロジックはクライアントで動かして,パラメータの共
有にサーバを利用 (P2Pでない,サーバ負荷中)
●
各ノード同士で直接通信して,サーバはマッチングの
み関与する ←今回はこれ. 実装が楽でサーバ負荷小
@mipsparc http://goo.gl/Q5Emmi 10
通信って難しい?
気を配ることは多いけど,
そんなに難しくはない
(↑嘘です)
@mipsparc http://goo.gl/Q5Emmi 11
先に会場の構成
L2SW
クライアント サーバ
●
全ノード50台ほどがL2SW直結(うち30台使用)
●
クライアントはWindows7+Corei5と豪華
●
ゴミproxy
●
サーバはThinkPad
●
Windowsファイアウォール
のパターン投入済み
@mipsparc http://goo.gl/Q5Emmi 12
通信の仕様
●
フルメッシュP2P(対戦中の全員に投げつける)
●
素のsocketでUDPなので送達確認なし
●
すべてをJSONで
●
超低遅延環境(RTT1ms以下)が前提
●
マッチングのみサーバ利用,HTTPで(Flask)
@mipsparc http://goo.gl/Q5Emmi 13
気をつけること
●
たくさんあるんですが
●
メッセージの大きさが1492bytesくらいになると
複数のパケットで送られるそこまで気にしなくてもいい
●
落ちる原因が掴みづらいのでログを出しておく
●
テストは本当に大事! 自宅で出なかった不具合が
現場では出る.人集めて負荷テストやっておく
●
1台に不具合出ると波及する
@mipsparc http://goo.gl/Q5Emmi 14
Wiresharkで見てみる流れているパケットを見れるとっても便利なソフトのことです
@mipsparc http://goo.gl/Q5Emmi 15
送信されているパケット
●
動いた時
{"session_id": 807, "way": "right", "y": 1622, "x": 1808, "type":
"move"}
→ID807が右方向を向いていて,座標が(1808,1622)
●
発射したとき
{"colid_point": 1500, "type": "fire", "session_id": 630, "bullet_id":
676, "way": "right", "y": 2186, "x": 1339, "speed": 1600}
→ID630が(1339,2186)から右方向に速度1600で弾丸676を発射し
て,このまま行けばx=1500で壁にぶつかる
※本当はもっとID長いので,衝突対策はしていない
@mipsparc http://goo.gl/Q5Emmi 16
送信されているパケット
●
被弾した時
{"hp": 620, "session_id": 302, "bullet_id": 951, "y": 395, "x": 522,
"type": "struck", "died": false}
→ID302が弾丸951に(522,395)で被弾してHPが620になった.死亡は
していない
●
爆弾設置した時
{"session_id": 302, "explode": 1418892123.368, "bullet_id": 277, "y":
351, "x": 664, "type": "bomb"}
→ID302が(664,351)に爆弾277を設置,爆発時刻は
1418892123.368(UNIX Time)
@mipsparc http://goo.gl/Q5Emmi 17
特徴っぽいこと
●
被弾判定は自機についてのみ.当たったら報告
●
壁と弾の当たり判定もやらない
→発射時に衝突座標を計算して配信.壁抜けしない
●
上記の通り負荷軽くして同時接続数を多くできた
→17台同時接続しているのを見たけど,
重くなかった
@mipsparc http://goo.gl/Q5Emmi 18
分離したほうがいいかも
●
メイン/送/受信プロセスの3つを準備
●
キューにデータを放り込んでおけば,
勝手に全ノードに配信されるようにした
●
通信を気にせずに書ける!
●
ゲームと通信が疎結合
@mipsparc http://goo.gl/Q5Emmi 19
あと
●
サーバから取得した時刻でタイミングを揃える
●
あらゆるサイズのモニタに対応
●
Bitbucketで課題管理
●
機体同士の当たり判定をなくしました!!!!!!
→時間なかった来た方向に衝突しなくなるまで戻る?
多重衝突とかいろいろ大変なのでやめた
@mipsparc http://goo.gl/Q5Emmi 20
引っかかった罠
●
被弾は自己申告なので,落ちたクライアントが死なない
●
pickle(データ構造を文字列にするやつ)でDB組んだら,本
番でデータが増えてパフォーマンスが落ちて,タイムアウ
トして落ちるようになった
→緊急対応でDB飛ばした.SQLite使うか,DB分割テスト大事
●
繋がるタイミングが悪くて落ちる問題がいろいろ出た.異
常系を常に意識することが必要
●
パフォーマンスがとても悪いノードがいた.共有フォルダ
から直接動かしていた
@mipsparc http://goo.gl/Q5Emmi 21
通信対戦っぽさをなくす
●
どの方向でどの座標にいるかしか送信しないので,どうし
てもカクカクしてしまう
●
速度も送ってローカルでリアルタイム位置を予測して,
現在位置が届いたら修正するようにした
●
...ほうがいいけど,さすがに
本番に間に合わなかった
●
誰も気にしない
送信ポイント
実際のルート
予測ルート
ワープ発生!
@mipsparc http://goo.gl/Q5Emmi 22
ちなみに
●
だいたいのMMORPGでは,サーバはデータを中継するだけで,クラ
イアントで処理する方式らしい.
●
PSO(ファンタシースターオンライン)とかそうらしいです
●
移動は一つ前のスライドと同じく,座標と方向,速度を送信すること
で各クライアントで補間しているらしい.普通に使われてた!
公式ガイドより引用送信ポイント
実際のルート
予測ルート
ワープ発生!
出典:http://www.4gamer.net/games/105/G010549/20100905002/
@mipsparc http://goo.gl/Q5Emmi 23
何事も余裕は大事です
●
常にカツカツのスケジュールで作ったので,だ
いぶつらかった.テストも十分にできなかった...
●
学校で寝て夜起きる生活を一週間やりました
●
当日の朝にグラフィックが上がってくる話に
なってたのに,人間関係の問題で上がってこな
かった.仲良くしておきましょう.
@mipsparc http://goo.gl/Q5Emmi 24
結局
●
通信対戦のいいところは?
●
AIをどうするかとか,ステージをどう作るかみ
たいな悩みからだいたい開放される
●
めっちゃ盛り上がる
→いままでになく人気で,長時間やってる人は
追い出ししないといけないほどだった
@mipsparc http://goo.gl/Q5Emmi 25
まとめ
●
通信対戦は(ちょっと大変だけど)やろうと思え
ば案外できる
●
十分に本番環境でテストをしましょう
●
AIとか作らなくてすむのと,かなり盛り上がる
●
楽しいので挑戦してみてください
ご清聴ありがとうございました
@mipsparc 通信対戦ゲームを作った話 END
削ってない版も上げてます
@mipsparc http://goo.gl/Q5Emmi 26
おまけ
@mipsparc http://goo.gl/Q5Emmi 27
ImageMagickめっちゃ便利
●
GIFアニメとかアニメの各コマが一枚に集まっ
てる画像を分割したり,指定色を透明にしたり
●
爆発アニメは「発色弾」というソフトをWine
で動かして生成したものを加工
$ mogrify -fuzz 30% -transparent black out.bmp
$ convert out.bmp -crop 96x96 %d.png
↑閾値で微妙な色排除
@mipsparc http://goo.gl/Q5Emmi 28
通信対戦の流れ(1/2)
●
タイトル画面表示
→機体パラメータ,現在時刻取得
●
機体選択後
←IPアドレス/ポート番号,選択機体,セッションIDを送信
→開始時刻,待ち人数,対戦IDを取得(一定間隔)
●
開始時刻
→敵IP/port,セッションID,機体,ステージマップを取得
サーバとの通信(→:取得,←:送信)
@mipsparc http://goo.gl/Q5Emmi 29
通信対戦の流れ(2/2)
●
カウントダウン中
←他のノードに初期座標,HPなどを送信
→受信したものを画面上に反映
●
ゲームスタート(ここまで受信できなかったノードは異常切断)
←動いたり発砲したら,そのたびに送信
→受信した座標データを画面上に反映
●
終了
サーバに成績アップロードして,順位と他のユーザのスコア取得
他ノードとのP2P通信(→:取得,←:送信)
@mipsparc http://goo.gl/Q5Emmi 30
不正対策?
●
そんなものはない
→本気でやろうとしても完璧は不可能
●
セキュリティ対策として,機体画像のファイル名
はハードコートで,サーバから取得する機体パラ
メータではその番号を指定するようにしている
→想定していないファイルをロードされないよ
うに.深刻な脆弱性が生まれる余地を与えない

More Related Content

What's hot

RPGにおけるイベント駆動型の設計と実装
RPGにおけるイベント駆動型の設計と実装RPGにおけるイベント駆動型の設計と実装
RPGにおけるイベント駆動型の設計と実装Koji Morikawa
 
Unityネットワーク通信の基盤である「RPC」について、意外と知られていないボトルネックと、その対策法
Unityネットワーク通信の基盤である「RPC」について、意外と知られていないボトルネックと、その対策法Unityネットワーク通信の基盤である「RPC」について、意外と知られていないボトルネックと、その対策法
Unityネットワーク通信の基盤である「RPC」について、意外と知られていないボトルネックと、その対策法モノビット エンジン
 
C# 8.0 非同期ストリーム
C# 8.0 非同期ストリームC# 8.0 非同期ストリーム
C# 8.0 非同期ストリーム信之 岩永
 
MRU : Monobit Reliable UDP ~5G世代のモバイルゲームに最適な通信プロトコルを目指して~
MRU : Monobit Reliable UDP ~5G世代のモバイルゲームに最適な通信プロトコルを目指して~MRU : Monobit Reliable UDP ~5G世代のモバイルゲームに最適な通信プロトコルを目指して~
MRU : Monobit Reliable UDP ~5G世代のモバイルゲームに最適な通信プロトコルを目指して~モノビット エンジン
 
実践イカパケット解析
実践イカパケット解析実践イカパケット解析
実践イカパケット解析Yuki Mizuno
 
ソフトウェア開発における『知の高速道路』
ソフトウェア開発における『知の高速道路』ソフトウェア開発における『知の高速道路』
ソフトウェア開発における『知の高速道路』Yoshitaka Kawashima
 
Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現
Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現
Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現Yoshifumi Kawai
 
ネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分けネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分けモノビット エンジン
 
年の瀬リアルタイム通信サーバ勉強会
年の瀬リアルタイム通信サーバ勉強会年の瀬リアルタイム通信サーバ勉強会
年の瀬リアルタイム通信サーバ勉強会モノビット エンジン
 
IL2CPPに関する軽い話
IL2CPPに関する軽い話IL2CPPに関する軽い話
IL2CPPに関する軽い話Wooram Yang
 
CRC-32
CRC-32CRC-32
CRC-327shi
 
Unityでオンラインゲーム作った話
Unityでオンラインゲーム作った話Unityでオンラインゲーム作った話
Unityでオンラインゲーム作った話torisoup
 
FINAL FANTASY XVにおけるPhoton利用事例 - Photon運営事務局 GTMF 2018 OSAKA / TOKYO
FINAL FANTASY XVにおけるPhoton利用事例 - Photon運営事務局 GTMF 2018 OSAKA / TOKYOFINAL FANTASY XVにおけるPhoton利用事例 - Photon運営事務局 GTMF 2018 OSAKA / TOKYO
FINAL FANTASY XVにおけるPhoton利用事例 - Photon運営事務局 GTMF 2018 OSAKA / TOKYOGame Tools & Middleware Forum
 
20分くらいでわかった気分になれるC++20コルーチン
20分くらいでわかった気分になれるC++20コルーチン20分くらいでわかった気分になれるC++20コルーチン
20分くらいでわかった気分になれるC++20コルーチンyohhoy
 
初心者向けCTFのWeb分野の強化法
初心者向けCTFのWeb分野の強化法初心者向けCTFのWeb分野の強化法
初心者向けCTFのWeb分野の強化法kazkiti
 
リアルタイムなゲームの開発でコンテナを使ってみたら簡単便利で激安だったのでオススメしたい
リアルタイムなゲームの開発でコンテナを使ってみたら簡単便利で激安だったのでオススメしたいリアルタイムなゲームの開発でコンテナを使ってみたら簡単便利で激安だったのでオススメしたい
リアルタイムなゲームの開発でコンテナを使ってみたら簡単便利で激安だったのでオススメしたいYutoNishine
 
サーバー未経験者がソーシャルゲームを通して知ったサーバーの事
サーバー未経験者がソーシャルゲームを通して知ったサーバーの事サーバー未経験者がソーシャルゲームを通して知ったサーバーの事
サーバー未経験者がソーシャルゲームを通して知ったサーバーの事Manabu Koga
 
日曜プログラマーが
1週間くらいで通信対戦ゲームを作ってみた
日曜プログラマーが
1週間くらいで通信対戦ゲームを作ってみた日曜プログラマーが
1週間くらいで通信対戦ゲームを作ってみた
日曜プログラマーが
1週間くらいで通信対戦ゲームを作ってみたYuusuke Takeuchi
 
Pythonによる黒魔術入門
Pythonによる黒魔術入門Pythonによる黒魔術入門
Pythonによる黒魔術入門大樹 小倉
 
SFUの話
SFUの話SFUの話
SFUの話tnoho
 

What's hot (20)

RPGにおけるイベント駆動型の設計と実装
RPGにおけるイベント駆動型の設計と実装RPGにおけるイベント駆動型の設計と実装
RPGにおけるイベント駆動型の設計と実装
 
Unityネットワーク通信の基盤である「RPC」について、意外と知られていないボトルネックと、その対策法
Unityネットワーク通信の基盤である「RPC」について、意外と知られていないボトルネックと、その対策法Unityネットワーク通信の基盤である「RPC」について、意外と知られていないボトルネックと、その対策法
Unityネットワーク通信の基盤である「RPC」について、意外と知られていないボトルネックと、その対策法
 
C# 8.0 非同期ストリーム
C# 8.0 非同期ストリームC# 8.0 非同期ストリーム
C# 8.0 非同期ストリーム
 
MRU : Monobit Reliable UDP ~5G世代のモバイルゲームに最適な通信プロトコルを目指して~
MRU : Monobit Reliable UDP ~5G世代のモバイルゲームに最適な通信プロトコルを目指して~MRU : Monobit Reliable UDP ~5G世代のモバイルゲームに最適な通信プロトコルを目指して~
MRU : Monobit Reliable UDP ~5G世代のモバイルゲームに最適な通信プロトコルを目指して~
 
実践イカパケット解析
実践イカパケット解析実践イカパケット解析
実践イカパケット解析
 
ソフトウェア開発における『知の高速道路』
ソフトウェア開発における『知の高速道路』ソフトウェア開発における『知の高速道路』
ソフトウェア開発における『知の高速道路』
 
Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現
Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現
Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現
 
ネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分けネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分け
 
年の瀬リアルタイム通信サーバ勉強会
年の瀬リアルタイム通信サーバ勉強会年の瀬リアルタイム通信サーバ勉強会
年の瀬リアルタイム通信サーバ勉強会
 
IL2CPPに関する軽い話
IL2CPPに関する軽い話IL2CPPに関する軽い話
IL2CPPに関する軽い話
 
CRC-32
CRC-32CRC-32
CRC-32
 
Unityでオンラインゲーム作った話
Unityでオンラインゲーム作った話Unityでオンラインゲーム作った話
Unityでオンラインゲーム作った話
 
FINAL FANTASY XVにおけるPhoton利用事例 - Photon運営事務局 GTMF 2018 OSAKA / TOKYO
FINAL FANTASY XVにおけるPhoton利用事例 - Photon運営事務局 GTMF 2018 OSAKA / TOKYOFINAL FANTASY XVにおけるPhoton利用事例 - Photon運営事務局 GTMF 2018 OSAKA / TOKYO
FINAL FANTASY XVにおけるPhoton利用事例 - Photon運営事務局 GTMF 2018 OSAKA / TOKYO
 
20分くらいでわかった気分になれるC++20コルーチン
20分くらいでわかった気分になれるC++20コルーチン20分くらいでわかった気分になれるC++20コルーチン
20分くらいでわかった気分になれるC++20コルーチン
 
初心者向けCTFのWeb分野の強化法
初心者向けCTFのWeb分野の強化法初心者向けCTFのWeb分野の強化法
初心者向けCTFのWeb分野の強化法
 
リアルタイムなゲームの開発でコンテナを使ってみたら簡単便利で激安だったのでオススメしたい
リアルタイムなゲームの開発でコンテナを使ってみたら簡単便利で激安だったのでオススメしたいリアルタイムなゲームの開発でコンテナを使ってみたら簡単便利で激安だったのでオススメしたい
リアルタイムなゲームの開発でコンテナを使ってみたら簡単便利で激安だったのでオススメしたい
 
サーバー未経験者がソーシャルゲームを通して知ったサーバーの事
サーバー未経験者がソーシャルゲームを通して知ったサーバーの事サーバー未経験者がソーシャルゲームを通して知ったサーバーの事
サーバー未経験者がソーシャルゲームを通して知ったサーバーの事
 
日曜プログラマーが
1週間くらいで通信対戦ゲームを作ってみた
日曜プログラマーが
1週間くらいで通信対戦ゲームを作ってみた日曜プログラマーが
1週間くらいで通信対戦ゲームを作ってみた
日曜プログラマーが
1週間くらいで通信対戦ゲームを作ってみた
 
Pythonによる黒魔術入門
Pythonによる黒魔術入門Pythonによる黒魔術入門
Pythonによる黒魔術入門
 
SFUの話
SFUの話SFUの話
SFUの話
 

Similar to 通信対戦ゲームを作った話

PYNQ祭りLT todotani
PYNQ祭りLT todotaniPYNQ祭りLT todotani
PYNQ祭りLT todotaniKenshi Kamiya
 
ChatGPTで面白い物語は作れるのか?
ChatGPTで面白い物語は作れるのか?ChatGPTで面白い物語は作れるのか?
ChatGPTで面白い物語は作れるのか?Takanari Tokuwa
 
GW躍進会報告
GW躍進会報告GW躍進会報告
GW躍進会報告Yosuke Ueno
 
「明日からできる!面白ガジェットの作り方」 プロ生勉強会 第35回@DMM.comラボ
「明日からできる!面白ガジェットの作り方」 プロ生勉強会 第35回@DMM.comラボ 「明日からできる!面白ガジェットの作り方」 プロ生勉強会 第35回@DMM.comラボ
「明日からできる!面白ガジェットの作り方」 プロ生勉強会 第35回@DMM.comラボ kirin_nico
 
Kobe.py 勉強会 minecraft piスライド
Kobe.py 勉強会 minecraft piスライドKobe.py 勉強会 minecraft piスライド
Kobe.py 勉強会 minecraft piスライドMasafumi Terazono
 
マウスを使わないでキーボードで快適に生活する方法(GNU Screen/tmux/byobu/awesome)
マウスを使わないでキーボードで快適に生活する方法(GNU Screen/tmux/byobu/awesome)マウスを使わないでキーボードで快適に生活する方法(GNU Screen/tmux/byobu/awesome)
マウスを使わないでキーボードで快適に生活する方法(GNU Screen/tmux/byobu/awesome)Kenichiro MATOHARA
 
mpld3でInteractiveデータ可視化
mpld3でInteractiveデータ可視化mpld3でInteractiveデータ可視化
mpld3でInteractiveデータ可視化monochrojazz
 
Cocos sharpでゲーム開発してみました
Cocos sharpでゲーム開発してみましたCocos sharpでゲーム開発してみました
Cocos sharpでゲーム開発してみましたTomohiro Suzuki
 
ゲームの通信をつくる仕事はどうなるのだろう?
ゲームの通信をつくる仕事はどうなるのだろう?ゲームの通信をつくる仕事はどうなるのだろう?
ゲームの通信をつくる仕事はどうなるのだろう?Kengo Nakajima
 
UnityでのLINQ活用例
UnityでのLINQ活用例UnityでのLINQ活用例
UnityでのLINQ活用例Ryota Murohoshi
 
Quantum teleportation
Quantum teleportationQuantum teleportation
Quantum teleportationYuuOkano
 
カードゲームで学ぶテキストエディタ
カードゲームで学ぶテキストエディタカードゲームで学ぶテキストエディタ
カードゲームで学ぶテキストエディタShougo
 
Gadget in Pocket オフ会 incmplt LT
Gadget in Pocket オフ会 incmplt LTGadget in Pocket オフ会 incmplt LT
Gadget in Pocket オフ会 incmplt LTYasushi ABE
 
Pepperを操縦してみた ~演劇からレースゲームまで~
Pepperを操縦してみた ~演劇からレースゲームまで~Pepperを操縦してみた ~演劇からレースゲームまで~
Pepperを操縦してみた ~演劇からレースゲームまで~Taisuke Ozaki
 
Qt名古屋勉強会へのお誘い(OSC名古屋2017LT)
Qt名古屋勉強会へのお誘い(OSC名古屋2017LT)Qt名古屋勉強会へのお誘い(OSC名古屋2017LT)
Qt名古屋勉強会へのお誘い(OSC名古屋2017LT)Naoki Matsumoto
 

Similar to 通信対戦ゲームを作った話 (20)

PYNQ祭りLT todotani
PYNQ祭りLT todotaniPYNQ祭りLT todotani
PYNQ祭りLT todotani
 
ChatGPTで面白い物語は作れるのか?
ChatGPTで面白い物語は作れるのか?ChatGPTで面白い物語は作れるのか?
ChatGPTで面白い物語は作れるのか?
 
GW躍進会報告
GW躍進会報告GW躍進会報告
GW躍進会報告
 
「明日からできる!面白ガジェットの作り方」 プロ生勉強会 第35回@DMM.comラボ
「明日からできる!面白ガジェットの作り方」 プロ生勉強会 第35回@DMM.comラボ 「明日からできる!面白ガジェットの作り方」 プロ生勉強会 第35回@DMM.comラボ
「明日からできる!面白ガジェットの作り方」 プロ生勉強会 第35回@DMM.comラボ
 
Seeing is Believing
Seeing is BelievingSeeing is Believing
Seeing is Believing
 
Kobe.py 勉強会 minecraft piスライド
Kobe.py 勉強会 minecraft piスライドKobe.py 勉強会 minecraft piスライド
Kobe.py 勉強会 minecraft piスライド
 
マウスを使わないでキーボードで快適に生活する方法(GNU Screen/tmux/byobu/awesome)
マウスを使わないでキーボードで快適に生活する方法(GNU Screen/tmux/byobu/awesome)マウスを使わないでキーボードで快適に生活する方法(GNU Screen/tmux/byobu/awesome)
マウスを使わないでキーボードで快適に生活する方法(GNU Screen/tmux/byobu/awesome)
 
mpld3でInteractiveデータ可視化
mpld3でInteractiveデータ可視化mpld3でInteractiveデータ可視化
mpld3でInteractiveデータ可視化
 
Cocos sharpでゲーム開発してみました
Cocos sharpでゲーム開発してみましたCocos sharpでゲーム開発してみました
Cocos sharpでゲーム開発してみました
 
ゲームの通信をつくる仕事はどうなるのだろう?
ゲームの通信をつくる仕事はどうなるのだろう?ゲームの通信をつくる仕事はどうなるのだろう?
ゲームの通信をつくる仕事はどうなるのだろう?
 
UnityでのLINQ活用例
UnityでのLINQ活用例UnityでのLINQ活用例
UnityでのLINQ活用例
 
PUN 2を使おう!
PUN 2を使おう!PUN 2を使おう!
PUN 2を使おう!
 
Quantum teleportation
Quantum teleportationQuantum teleportation
Quantum teleportation
 
カードゲームで学ぶテキストエディタ
カードゲームで学ぶテキストエディタカードゲームで学ぶテキストエディタ
カードゲームで学ぶテキストエディタ
 
Gadget in Pocket オフ会 incmplt LT
Gadget in Pocket オフ会 incmplt LTGadget in Pocket オフ会 incmplt LT
Gadget in Pocket オフ会 incmplt LT
 
NGK2023S ChatGPT
NGK2023S ChatGPTNGK2023S ChatGPT
NGK2023S ChatGPT
 
Pepperを操縦してみた ~演劇からレースゲームまで~
Pepperを操縦してみた ~演劇からレースゲームまで~Pepperを操縦してみた ~演劇からレースゲームまで~
Pepperを操縦してみた ~演劇からレースゲームまで~
 
Runtime c++editing
Runtime c++editingRuntime c++editing
Runtime c++editing
 
20160810-lt-cygwin
20160810-lt-cygwin20160810-lt-cygwin
20160810-lt-cygwin
 
Qt名古屋勉強会へのお誘い(OSC名古屋2017LT)
Qt名古屋勉強会へのお誘い(OSC名古屋2017LT)Qt名古屋勉強会へのお誘い(OSC名古屋2017LT)
Qt名古屋勉強会へのお誘い(OSC名古屋2017LT)
 

通信対戦ゲームを作った話