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

Termfront: Ruby標準ライブラリだけで作るFPS

Avatar for S.H. S.H.
May 31, 2026
33

Termfront: Ruby標準ライブラリだけで作るFPS

関ケ原Ruby会議01

Avatar for S.H.

S.H.

May 31, 2026

More Decks by S.H.

Transcript

  1. FPS

  2. レイキャスト vs DDA レイキャスト(毎ピクセル) DDA(格子境界だけ) +---+---+---+---+ +---+---+---+---+ | | |

    |###| | | | |###| ### = 壁 +---+---+--*+---+ +---+---+---X---+ | | |** | | | | | /| | +---+--*+---+---+ +---+---X---+---+ | |** | | | | | /| | | +--*+---+---+---+ +---X---+---+---+ | P*| | | | | P/| | | | +---+---+---+---+ +---+---+---+---+ * を全部判定 → 遅い X(格子線)だけ → 速い
  3. 敵は楕円の式で描いてる 円より楕円のほうがセル比に乗りやすいため 楕円の式の組み合わせで目や体を描く def crawler(nx, ny) return "255;240;100" if ((nx-0.36)/0.063)**2

    + ((ny-0.28)/0.063)**2 <= 1 return "255;240;100" if ((nx-0.64)/0.063)**2 + ((ny-0.28)/0.063)**2 <= 1 return "220;140;30" if ((nx-0.5) /0.40)**2 + ((ny-0.40)/0.40)**2 <= 1 ... end
  4. 使用させていただいた音源 SRG774 — Dark Sci-Fi Audio Pack rubberduck — 50/60

    CC0 Sci-Fi SFX StumpyStrust — UI Sounds すべて opengameart.org の CC0 素材
  5. サーバーのTLS通信について Let’s Encryptで証明書を発行 VERIFY_PEERとホスト名の検証を行っている ctx = OpenSSL::SSL::SSLContext.new ctx.verify_mode = OpenSSL::SSL::VERIFY_PEER

    ctx.verify_hostname = true ctx.min_version = OpenSSL::SSL::TLS1_2_VERSION ctx.cert_store.set_default_paths @sock.hostname = host @sock.connect @sock.post_connection_check(host)