Games::* - Perlで「ゲーム」しよう  尾形 鉄次 (OGATA Tetsuji)      Twitter: @xtetsuji   2013/3/9 Hokkaido.pm#9
自己紹介• 尾形 鉄次 (OGATA Tetsuji)• Twitter: @xtetsuji• Blog: http://post.tetsuji.jp/• 北海道河東郡音更町→東京都中野区(18-)• 得意技: mod_perl
今回は「ゲーム」の話   mod_perlの話じゃないよ
ゲームプログラマ歴0年が語るゲーム
今回「ゲーム」を「する」事を考えた
ゲーム「する」とは• Play - プレイする• Make - 作る・問題を提供する• Solve - 問題を解く• Create - 新しいゲームを創作する
CPAN Games::*• CPAN には Games::* という面白そうな パッケージ名前空間があります
CPAN Games::*
CPAN Games::*• ゲームの色々が収められた名前空間• Play/Make/Solveそれぞれあるっぽい
Acme and Games• Acme:: は寛容 • さながら「常夏のビーチ」のよう• Games:: も同様の場所になってほしい • 「砂金が取れる川辺」のように
Acme::* vs Games::* Acme:: 491dists / Games:: 180 dists
Games CPANデビュー• Games::* で CPAN Authorデビューする のも良いのでは?• PAUSE IDだけ取得しておいただけの CPAN Authorではない自分はそう思う• ゲームが解けて、みんなも嬉しい
なぜ今ゲーム?
なぜ今ゲーム?• 金が無い!• 金が無い!!•金が無い!!!• 小遣い稼ぎしたい
ゲームで小遣い稼ぎ• ゲームは金がかかるもの?• 「基本無料」だけの時間食いでは?• RMTとかダメだよ!!!• いや、そうではない「ゲーム」もある• 例えばペンシルパズルの懸賞問題
ペンシルパズル
数独(Sudoku)• 世界で大人気「数独(Sudoku)」• ペンシルパズルの代表的存在• 「数独」も株式会社ニコリの登録商標    です(ニコリは世界企業…)•    では「ナンプレ」とも呼ばれる
数独(Sudoku)•    縦列、横列、3×3領域     それぞれ1∼9までの数     字が1つずつ入る•    ヒントに従って空欄の     数字を埋める•    変則的な数独も多々    http://ja.wikipedia.org...
数独をPerlで解く• 手で愚直に解く?またまたご冗談を• まずはお約束のようにCPANモジュール を探してみる
数独をPerlで解く
数独をPerlで解く• CPANモジュール10個見つかった• モジュールによっては解けない数独も ある(品質はまちまち?)• 通常の9×9以外の変則的な数独には対応 していない場合がほとんど
数独をPerlで解く• 簡単そうに見えて意外に数独解法プロ グラムは難しい• 自分も1時間くらいで書けると取り組ん でみたものの、解けない数独があった• https://gist.github.com/xtetsuji/4770196
Google画像検索• 実はGoogle画像検索でも数独は解ける• これがすごい便利• 「Googleゴーグル」
Googleゴーグルで  数独を解く
数独は意外に難しい• 同じ数独問題でも、CPANモジュールで 解けるものと解けないものがまちまち• 自分でもあえて書き捨てで数独解法プ ログラムを書いてみたが結構難しい• Googleゴーグルも間違える事があった
数独は意外に難しいここでGoogleゴーグルも間違えている
スリザーリンク• ペンシルパズルの一つ• これもニコリ発• 個人的に数独より楽しいと感じている• 懸賞問題はほとんど無いけど
スリザーリンク Wikipediaの解説より
スリザーリンク• 0∼3の数字が書かれたセルがヒント• 数字はセルの周りに引かれる線の本数• 線は交差したりしてはいけない• 最終的には唯一の閉曲線を作ればOK
CPANで  スリザーリンク攻略• 無かった or 見つからなかった• 他のプログラムやオープンソースソフト でも見つからなかった• なら自分で作ってみるかと着手
Games::Slitherlink(仮)• 本当に未完成• スリザーリンクに懸賞的要素は皆無、 もはや数学的興味だけで活動中• 少しでも動く段階になったら公開予定?
こんなこともやった• 福引きサイトで連続で福引きを引く• ポイント払うんだから連続で引きたい• こういうときのWWW::Mechanize• でもMech力が足りずJavaScriptやっつけ
色々な「ゲーム」• ペンシルパズル• ボードゲーム・TRPG• コンシューマー・アーケード• ソーシャルゲーム• 我々にとってプログラム自体がゲーム?
批判と反• 純粋に手で解いている人より不公平? • 手で解く代わりにプログラム書く • 数学的な使命としては、個々の問題  を解く事よりも、問題全体を解く事  が興味深いと感じている
数学的使命• 例えば個別の二次方程式を解く • 概念の把握や計算の練習は絶対必要• 二次方程式の解の公式を導く • n次方程式への興味→ガロア理論• 概念全体を解くことは興味深い仕事
節度ある自動化を• 規約で違反とされている事は禁止 • MMORPGのボット問題 • ソーシャルゲームの裏技的なもの • …等々• ゲーム提供者の指示には従う
ソーシャルゲーム• Playの何がインセンティブか? • Playして優越感に浸る • Playして好きな画像や音声をゲット• Makeして一攫千金!
ソーシャルゲーム     画面はモバマスです
ソーシャルゲーム• 業界の動向を調べる意味でも色々Playす るのは大切だなーと最近感じた• 実際最近のソーシャルゲームは楽しい• これからも色んなゲームやりたい
Games:: に期待する事• 画像認識(OpenCV?): ゴーグルライクな• インタラクティブなゲーム(Curses?)• もっと複雑なペンシルパズルが解ける• ソーシャルゲームのテンプレ作成とか
Games::* でLet’s CPAN Author!
ご清聴ありがとうございました
Upcoming SlideShare
Loading in …5
×

Games::* - Perlで 「ゲーム」しよう #hokkaidopm

2,511 views

Published on

2013/3/9 に開催された Hokkaido.pm#9 で発表したトークのスライドです。

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
2,511
On SlideShare
0
From Embeds
0
Number of Embeds
1,068
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Games::* - Perlで 「ゲーム」しよう #hokkaidopm

  1. 1. Games::* - Perlで「ゲーム」しよう 尾形 鉄次 (OGATA Tetsuji) Twitter: @xtetsuji 2013/3/9 Hokkaido.pm#9
  2. 2. 自己紹介• 尾形 鉄次 (OGATA Tetsuji)• Twitter: @xtetsuji• Blog: http://post.tetsuji.jp/• 北海道河東郡音更町→東京都中野区(18-)• 得意技: mod_perl
  3. 3. 今回は「ゲーム」の話 mod_perlの話じゃないよ
  4. 4. ゲームプログラマ歴0年が語るゲーム
  5. 5. 今回「ゲーム」を「する」事を考えた
  6. 6. ゲーム「する」とは• Play - プレイする• Make - 作る・問題を提供する• Solve - 問題を解く• Create - 新しいゲームを創作する
  7. 7. CPAN Games::*• CPAN には Games::* という面白そうな パッケージ名前空間があります
  8. 8. CPAN Games::*
  9. 9. CPAN Games::*• ゲームの色々が収められた名前空間• Play/Make/Solveそれぞれあるっぽい
  10. 10. Acme and Games• Acme:: は寛容 • さながら「常夏のビーチ」のよう• Games:: も同様の場所になってほしい • 「砂金が取れる川辺」のように
  11. 11. Acme::* vs Games::* Acme:: 491dists / Games:: 180 dists
  12. 12. Games CPANデビュー• Games::* で CPAN Authorデビューする のも良いのでは?• PAUSE IDだけ取得しておいただけの CPAN Authorではない自分はそう思う• ゲームが解けて、みんなも嬉しい
  13. 13. なぜ今ゲーム?
  14. 14. なぜ今ゲーム?• 金が無い!• 金が無い!!•金が無い!!!• 小遣い稼ぎしたい
  15. 15. ゲームで小遣い稼ぎ• ゲームは金がかかるもの?• 「基本無料」だけの時間食いでは?• RMTとかダメだよ!!!• いや、そうではない「ゲーム」もある• 例えばペンシルパズルの懸賞問題
  16. 16. ペンシルパズル
  17. 17. 数独(Sudoku)• 世界で大人気「数独(Sudoku)」• ペンシルパズルの代表的存在• 「数独」も株式会社ニコリの登録商標 です(ニコリは世界企業…)• では「ナンプレ」とも呼ばれる
  18. 18. 数独(Sudoku)• 縦列、横列、3×3領域 それぞれ1∼9までの数 字が1つずつ入る• ヒントに従って空欄の 数字を埋める• 変則的な数独も多々 http://ja.wikipedia.org/wiki/%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:Sudoku-by-L2G-20050714.svg より
  19. 19. 数独をPerlで解く• 手で愚直に解く?またまたご冗談を• まずはお約束のようにCPANモジュール を探してみる
  20. 20. 数独をPerlで解く
  21. 21. 数独をPerlで解く• CPANモジュール10個見つかった• モジュールによっては解けない数独も ある(品質はまちまち?)• 通常の9×9以外の変則的な数独には対応 していない場合がほとんど
  22. 22. 数独をPerlで解く• 簡単そうに見えて意外に数独解法プロ グラムは難しい• 自分も1時間くらいで書けると取り組ん でみたものの、解けない数独があった• https://gist.github.com/xtetsuji/4770196
  23. 23. Google画像検索• 実はGoogle画像検索でも数独は解ける• これがすごい便利• 「Googleゴーグル」
  24. 24. Googleゴーグルで 数独を解く
  25. 25. 数独は意外に難しい• 同じ数独問題でも、CPANモジュールで 解けるものと解けないものがまちまち• 自分でもあえて書き捨てで数独解法プ ログラムを書いてみたが結構難しい• Googleゴーグルも間違える事があった
  26. 26. 数独は意外に難しいここでGoogleゴーグルも間違えている
  27. 27. スリザーリンク• ペンシルパズルの一つ• これもニコリ発• 個人的に数独より楽しいと感じている• 懸賞問題はほとんど無いけど
  28. 28. スリザーリンク Wikipediaの解説より
  29. 29. スリザーリンク• 0∼3の数字が書かれたセルがヒント• 数字はセルの周りに引かれる線の本数• 線は交差したりしてはいけない• 最終的には唯一の閉曲線を作ればOK
  30. 30. CPANで スリザーリンク攻略• 無かった or 見つからなかった• 他のプログラムやオープンソースソフト でも見つからなかった• なら自分で作ってみるかと着手
  31. 31. Games::Slitherlink(仮)• 本当に未完成• スリザーリンクに懸賞的要素は皆無、 もはや数学的興味だけで活動中• 少しでも動く段階になったら公開予定?
  32. 32. こんなこともやった• 福引きサイトで連続で福引きを引く• ポイント払うんだから連続で引きたい• こういうときのWWW::Mechanize• でもMech力が足りずJavaScriptやっつけ
  33. 33. 色々な「ゲーム」• ペンシルパズル• ボードゲーム・TRPG• コンシューマー・アーケード• ソーシャルゲーム• 我々にとってプログラム自体がゲーム?
  34. 34. 批判と反• 純粋に手で解いている人より不公平? • 手で解く代わりにプログラム書く • 数学的な使命としては、個々の問題 を解く事よりも、問題全体を解く事 が興味深いと感じている
  35. 35. 数学的使命• 例えば個別の二次方程式を解く • 概念の把握や計算の練習は絶対必要• 二次方程式の解の公式を導く • n次方程式への興味→ガロア理論• 概念全体を解くことは興味深い仕事
  36. 36. 節度ある自動化を• 規約で違反とされている事は禁止 • MMORPGのボット問題 • ソーシャルゲームの裏技的なもの • …等々• ゲーム提供者の指示には従う
  37. 37. ソーシャルゲーム• Playの何がインセンティブか? • Playして優越感に浸る • Playして好きな画像や音声をゲット• Makeして一攫千金!
  38. 38. ソーシャルゲーム 画面はモバマスです
  39. 39. ソーシャルゲーム• 業界の動向を調べる意味でも色々Playす るのは大切だなーと最近感じた• 実際最近のソーシャルゲームは楽しい• これからも色んなゲームやりたい
  40. 40. Games:: に期待する事• 画像認識(OpenCV?): ゴーグルライクな• インタラクティブなゲーム(Curses?)• もっと複雑なペンシルパズルが解ける• ソーシャルゲームのテンプレ作成とか
  41. 41. Games::* でLet’s CPAN Author!
  42. 42. ご清聴ありがとうございました

×