イクチオカップ

24時間パズルルームからの脱出

https://github.com/Attsu-dev/24h-puzzle-room

GitHub

C#

Unity

仲間と協力し、つぎつぎと出題されるパズルを解きまくれ!

Attsu

今崎瑛彩

推しアイデア

スクリプト生成による大量の問題に、マルチプレイで立ち向かう!

作った背景

脱出ゲームが好きなら、誰しも「24時間閉じ込められたい」と思ったことがあるはず!!!あるよね!!!!!

推し技術

Unity公式ライブラリを駆使したマルチプレイ環境/少し複雑なスケルトンパズルの生成アルゴリズム

プロジェクト詳細

概要

「…おや、目が覚めたようですね。」 「ここはあなたの『謎解きがしたい!』という欲求が生んだ電脳世界。」 「あなたにはここで、24時間パズルを解き続けていただきます。」 周りには3つのパズル。それぞれに制限時間がついているようだ。 「一つでも制限時間内に解けなかったら…どうなるのでしょうねぇ。」

注1:部屋からは自由に出入りできます。電脳世界なので。 注2:一人で24時間やると眠いしきついので、お友達を使いましょう。

使用技術

ゲームクライアント

  • Unity
  • C#

使用ライブラリ

  • Netcode for GameObjects
  • Relay

オンライン接続

今回オンライン通信ができるようにしましたがそれらに使ったサービスが上記使用ライブラリにある

  • Netcode for GameObjects
  • Relay

Netcode for GameObjects

こちらで初めにローカル通信を確立しました。 記事や動画もたくさん上がっているので作りたい方がいれば調べてみてください。 これはUnity公式が提供しているサービスで,プロジェクトに導入し,多少プログラムを書けばローカル通信を行うことができます。

Relay

こちらでオンライン通信を確立しました。 多少記事があると思います。 こちらもUnity公式が提供しているサービスで,開発者側がログインすれば一定以下であれば無料でサーバーを提供してくれてそこに接続することでオンライン接続を可能にしています。 これを使う前提に上記のNetcode for GameObjectsがあり,これを使用しないとRelayのみでは使用できないはずです。

問題制作

辞書について

簡単な日本語の単語辞書が欲しかったので、enigma studioさんのイラスト辞書Lv.1 (4276語)をお借りしました。

問題タイプ1:アナグラムパズル

image 解き方:ひらがなを並べ替えて言葉にする。 作り方:ランダムに単語を選んでシャッフルする。 答え:メガホン

問題タイプ2:ひらがなダイヤル

image
解き方:すべてのひらがなを五十音表上で前後のどちらかに動かし言葉にする。例えば、「こ」の前は「け」で「こ」の後は「さ」。 作り方:ランダムに単語を選んで、それぞれの文字コードを±1するだけかと思ったら、「あ」の次が「ぁ」だったり「か」の次が「が」だったりするので難しい。多少if文でゴリ押した。 答え:かんぱい

問題タイプ3:スケルトンパズル

image 解き方:空欄に合うようにリストの単語を埋める。 作り方:

  1. 最初の単語を辞書からランダムに選び、ランダムな位置に配置する。
  2. 2つ目以降の単語を配置するときは、ランダムに選んだ数百単語について、すべての配置を試し、既に配置された文字となるべく多く重なるような単語と配置のペアを求める。
  3. 以下のように単語を埋めたとき、水色のマスには横方向の単語は重ねられず、赤色のマスには方向を問わず文字を入れられない。方向ごとに2次元bool配列をつくり、文字を埋められるマスを管理した。 image 答え:バー

Attsu

@Attsu