Upgrade to Pro — share decks privately, control downloads, hide ads and more …

プログラマ向けゲームを作る技術

 プログラマ向けゲームを作る技術

Misoca 秋のLT大会でのLT資料です。

Programming Partyあるリポジトリからの脱出の制作を踏まえ、どうやってこれらのゲームを作ったかや、楽しんでもらうためにどのようなことを考えたかなどを紹介しました。

kokuyouwind

October 10, 2019
Tweet

More Decks by kokuyouwind

Other Decks in Programming

Transcript

  1. プログラマ向けゲームを 作る技術 黒曜(@kokuyouwind)

  2. $ whoami 黒曜 @kokuyouwind 株式会社Misoca Rails/SRE エンジニア

  3. 技術書典 https://techbookfest.org/event/tbf07

  4. 技術書典

  5. Programming Party

  6. Programming Party カードを使ってプログラム仕様を決定し、 プログラミングするゲーム 毎回違う仕様が⽣成される 設計⼒・瞬発⼒・仕様の読解⼒ 相互レビューして良いコードに投票 コミュニケーションゲームの側⾯

  7. あるリポジトリからの脱出 https://github.com/kokuyouwind/escape-from-the-repository

  8. あるリポジトリからの脱出 GitHub を使った脱出ゲーム(Web 謎) コマンドラインでコマンドを打って 謎解きをすすめる 「歴史を書き換えて謎を解く」体験 エンジニアの知識を使った謎解き 原作ものの謎解きに似た⽂脈共有

  9. プログラマ向けゲームを どうやって作るか? ( 技術の話はほとんどない)

  10. ゲーミングできそうな テーマを⾒つける

  11. ゲーミングできそうなテーマ FizzBuzz はいろんなアレンジが加えられる 割り切れる条件に使う数を変える 出⼒する⽂字列を変える 条件の種類を増やす ⼊⼒値を負の値に拡張する etc...

  12. ゲーミングできそうなテーマ ゲーム⾃体のルールが変わっていくことを ゲームにしたら⾯⽩そう? e.g. : ルール追加⼤富豪 単純な基本仕様に追加仕様が積み重なる Programming Party

  13. ゲーミングできそうなテーマ Git の「歴史改変」⾃体がゲームっぽい コミットを組み替えて正しい歴史にする 「間違った歴史に閉じ込められる」のは 脱出ゲームの設定にありそう GitHub でWeb 謎が配布できそう あるリポジトリからの脱出

  14. プレイヤー層を想定する

  15. プレイヤー層を想定する どういった層をターゲットにするか そもそもニッチなので、絞りすぎると 誰にも遊んでもらえない ターゲットを広くするほど 使えるネタに制約がかかる ⾔語を絞らず初級者想定くらいが無難?

  16. ⼩さな課題で⾁付けする

  17. ⼩さな課題で⾁付けする 適切な難易度の⼩さな課題を作る ⼩さな成功体験による動機づけ 知識を活かせると楽しい いろいろなネタを使う 中⾼レベルの数学、パズル エンジニアの基礎知識

  18. ⼩さな課題で⾁付けする

  19. ⼩さな課題で⾁付けする

  20. マクロヒープモックフラグ コンパイラマージクロージャ クイックテクノロジーアセンブラ インタプリタバブルクラス 整列の次を読め ⼩さな課題で⾁付けする

  21. マクロヒープモックフラグ コンパイラマージクロージャ クイックテクノロジーアセンブラ インタプリタバブルクラス 整列の次を読め ⼩さな課題で⾁付けする

  22. ちょっとした技術の話

  23. ちょっとした技術の話 「正答」を⼊れたときだけ出⼒を得られる 謎解きではよくあるやつ 単なる暗号化・復号化でよさそう 複数の「正答」に別の出⼒を出したい 同じ謎を複数回解くのもよくある どうやる?

  24. ちょっとした技術の話 $ cat key invalid $ ./run.sh error: invalid key

    $ echo 'key1' > key $ ./run.sh これは正しいkey です $ echo 'key2' > key $ ./run.sh これは別の正しいkey です
  25. ちょっとした技術の話 #!/bin/sh cd `dirname $0` file=$(md5sum key | cut -c

    1) openssl aes-256-cbc -d -in data/$f -pass file:key
  26. ちょっとした技術の話

  27. 組み合わせでちょっと 変わったことができる ( シェル芸感)

  28. まとめ 身近なものをテーマにして掘り下げる 想定層に合った⼩さな課題で⾁付けする ニッチなゲーム考えるのも楽しいよ Programming Party Replay Book 頒布中 BOOTH

    で売ってます( 宣伝)