ゆずすこかまたま

技術的なことと、PCゲーム

infinifactoryのススメ

こんにちはtenmihiです。

この記事はプログラマーにオススメしたいゲーム紹介 Advent Calendar 2018 #3です。
前回は dennougorilla さんのゲーム紹介でした。

プログラマーにオススメするゲームということで私はinfinifactoryをオススメします。

Infinifactoryってこんなゲーム

本ゲームは、工場のコンベア加工作業を作ってブロックを加工・運搬するパズルゲームです。
Factorioのコンベアを用いた加工プロセスの組み立て + マインクラフトのようなボクセルサンドボックスを組み合わせたようなゲームとなっています。
ちなみにInfinifactoryの開発元はSpaceChemやSHENZHEN I/Oなども手がけているZachtronicsです。

f:id:tenmihi:20181202010950j:plain
ミサイル加工プロセス

ここがオススメ

  1. 他のユーザーの答えと自分の答えの差が分かるので最適化がアツい
  2. ストーリーがパズルを解く目標になる

他のユーザーの答えと自分の答えの差が分かるので最適化がアツい

ユーザーの数だけ答えがあるようなパズルゲームなので、当然答えによっては効率(速度、必要ブロック数)の良し悪しに違いが出ます。 この効率を表すパラメータが全ユーザーの答えをもとに統計されており、クリア時にその統計結果と比較してくれます。

f:id:tenmihi:20181202101745j:plain
cycles, blocks, footprintsの3つが比較できる

自分の答えがユーザー平均以下か、それとも上位に食い込むような素晴らしい答えかどうかが分かるわけです。 こういうところに競プロっぽさを感じるので、ハマる人はハマるんじゃないでしょうか?

また、Steamのコミュニティ作品にgifで自分の答えや加工プロセスを貼ってるユーザーもいます。 見てみると「なるほど」「よく考えついたな」の連続なのでこれもまた面白いです。

ストーリーがパズルを解くモチベにつながる

割とこの手のゲーム、面白くてもただパズルを解いていく単調さから飽きてしまうものも多いです。 その点本作は(軽いですが)ストーリーが存在するので、それがパズルを解くモチベにも繋がります。 (プログラマーというよりは全ユーザーへのオススメ理由です)

ストーリーを少し説明すると、主人公はエイリアンに使われている人間です。エイリアンから命令されたステージを解いていきます。 ところどころステージには失敗した他の人間(先人)の方々がいて、そのボイスログを聞くことができます。

f:id:tenmihi:20181202010857j:plain
コンテナの下敷きになって絶命した先人

この他にも単調にパズルをこなしていくだけだと思っているとおや?っという展開になっていきます。 自分もまだエンディングは拝めていないのでワクワクしながらパズルを解いてます。

おわりに

以上、短いですがInfinifactoryのオススメでした。

私はまだプレイ時間は8時間ほど。エイリアンから与えられた課題をひととおりクリアしたくらいなので先は長いといったところでしょうか。
Steam Workshopにも対応しているようで、まだまだ時間を溶かすことができそうです。

明日のプログラマーにオススメしたいゲーム紹介 Advent Calendar 2018 #3 記事はfal_rndさんです、よろしくお願いします。

【SCUM】マップとロケーション

SCUMのマップとマップに点在するロケーションについてです。

引用元
Steam Community :: Guide :: Scum Map w/ Towns, Police Stations, Points of Interest & More! https://steamuserimages-a.akamaihd.net/ugc/958592684336006559/0DE7CEC75220F21D4070F580F4C89C0DC7046825/

ゲーム内で閲覧できるマップに各ロケーションを書き入れたものが上の画像になります。

マップの説明

  • 白色文字で書かれているのが街
  • 水色文字で書かれているのが警察署が存在する街
  • オレンジ文字で書かれているのがPOI(特定のロケーション)
    • ダムや刑務所などユニークなロケーション
  • 赤点が地下ミリタリーバンカーが存在するロケーション
  • 薄い黒線で囲まれた正方形が1km四方なので、マップは12km四方

北東の地下ミリタリーバンカーに行ってみた

バンカーの外はMechがうろついてますが入ってしまえば安全です。 バンカー内は食料・武器ともに豊富で安定して揃えることができました。

是非、マップを参考に足を運んでみてはいかかでしょうか?

f:id:tenmihi:20180901234257j:plain

【SCUM】視野(FOV)を広げる

SCUMで視野(FOV)を広げる方法です

引用元
Increasing fov through .ini : SCUMgame

設定ファイルを開く

C:\Users\ユーザー名\AppData\Local\SCUM\Saved\Config\WindowsNoEditor に存在する Engine.iniを適当なテキストエディタで開きます。

AppData(隠しフォルダについて)

ご存知かと思いますがAppDataフォルダはデフォルトで隠しフォルダ扱いされているので、隠しフォルダも表示するように設定しておかないと見えません。

pc-karuma.net

設定ファイルを編集する

Engine.iniの最後に次の2行を付け加えて保存します。

[/script/engine.localplayer]
AspectRatioAxisConstraint=AspectRatio_MaintainYFOV

f:id:tenmihi:20180901231826p:plain

保存後にSCUMを起動するとディスプレイの大きさに沿ってFOVが調整されるようになり(?) 以前とは広い視野でプレイできるようになっていると思います

設定前

f:id:tenmihi:20180901231952j:plain

設定後

f:id:tenmihi:20180901232003j:plain

【SCUM】止血の方法、料理のやり方など基本的な遊び方について

steamで配信中のサバイバルゲーム「SCUM」で止血の方法、料理のやり方など基本的な遊び方についてです。

引用元
Little fAQ guide : SCUMgame https://i.imgur.com/SYHB3Qq.jpg

止血の方法

石のナイフでもなんでもいいので刃物を使うことで衣服をぼろきれ(rag)にすることができます。

手順は、服と刃物を左クリックで選択したあとに服を右クリックしてメニューを表示させ「Cut Into Rags」でぼろきれを作れます。

作ったボロ布を右クリックしてメニューを表示させ「Patch Wounds」で止血ができます。

着火の方法

止血のときと同様、着火したい対象(たき火など)と着火用のアイテムを選択した後に右クリックのメニューから「Light Fire」で火をつけることができます。

料理のやり方

お好みの材料で串(Small Skewer With Meat)を作ります。

着火の方法で火をつけたたき火と串を選択して、たき火を右クリックしてメニューを表示させ「Cook」で料理を始めます。

食べ物の耐久度について

食べ物には耐久度があります。

料理に使った串を見てみるとアイテムの下に緑の線またはオレンジ、赤の線が出ていると思いますがこれが耐久度になります。

耐久度が赤になると傷んでしまって食べれない状態になります。

缶の開け方

ほとんどの近接武器で缶を開けることができます。(なので、缶切りを用意せずとも缶を開けることができます)

開けたい缶詰と近接武器を選択したあと、缶詰を右クリックしてメニューを表示させ「Open」で缶詰を開けることができます。

DiscordにTwitchの配信を通知する「Couch Bot」の導入と設定

ゴール

  • 特定のTwitchチャンネルの配信開始をDiscordで通知する

前提

  • 通知したいDiscordサーバーの管理者権限をもっている
    Couch Bot招待済みで,BotコマンドのAdmin権限が付与されれば管理者でなくても設定はできます

導入手順

Couch BotをDiscordのサーバーに招待する

couchbot.ioから"GET COUCHBOT TODAY"をクリックして,Discordのサーバーを選んで招待する
招待できたら,テキストチャットで!cb pingして帰ってきたらOK f:id:tenmihi:20170903185724p:plain

設定

Admin権限の付与(サーバー管理者以外)

Bot Command List · dawgeth/CouchBot Wiki · GitHub
ここに記載のあるコマンドはCouch BotのAdmin権限がないと実行できないので,サーバーの管理者に!cb admin add @DiscordUsernameでadminリストに追加してもらいましょう.
!cb admin listで追加されていることが確認できればOK

ストリームの登録

!cb twitch add CHANNELで通知したいTwitchのチャンネルを設定できます
CHANNELには通知したいTwitchチャンネルのURLのhttps://www.twitch.tv/hogehogeでいうhogehogeの部分を指定します
!cb streamer listで追加されていればOK

通知の設定

通知を流すチャンネル

!cb channel live #DISCORDCHANNELNAMEで配信開始の通知をどのチャンネルに流すか設定できます
通常のテキストチャットと分けたい人は#livestreamとか新しいテキストチャンネル作って流すといいかもしれません

配信開始の通知を流すかどうか

!cb allow live true / falseで配信開始の通知を流すかどうか切り替えられます

通知でメンションを飛ばすかどうか

!cb allow mention true/falseでメンションを飛ばすかどうか切り替えられます
設定したチャンネルに@everyoneで飛んでくので注意

設定できたら

登録したTwitchチャンネルで配信が始まった際に,こんな風に通知が来れば成功
f:id:tenmihi:20170903185900p:plain

その他

Twitchだけでなく,YoutubeやMixerなどとも連携できます
詳しくはGithubの方にコマンドリストがあるのでこちらも参考に

github.com

よいDiscordライフを

SteamAPIでWorkshop Itemの詳細を取得する

GetPublishedFileDetailsを使えば Workshop のItemの詳細を取得することが出来ます.

APIドキュメントは以下
ISteamRemoteStorage Interface (Steamworks Documentation)

payloadに指定するpublishedfileids[0]とはなんなのか? これはWorkshopにアップロードされたアイテムのIDで,以下の例だと971653735がpublishedfileidになります.
https://steamcommunity.com/sharedfiles/filedetails/?id=971653735

idを指定して叩いてあげればこんな感じで詳細を取得できます.

{
    "response": {
        "result": 1,
        "resultcount": 1,
        "publishedfiledetails": [
            {
                "publishedfileid": "971653735",
                "result": 1,
                "creator": "76561198067216145",
                "creator_app_id": 571740,
                "consumer_app_id": 571740,
                "filename": "",
                "file_size": 5034927,
                "file_url": "",
                "hcontent_file": "8591794897085375969",
                "preview_url": "https://steamuserimages-a.akamaihd.net/ugc/836957960631748738/02BBE5847C95E4646B6E5311355920CE5A6718A2/",
                "hcontent_preview": "836957960631748738",
                "title": "Golf It With Your Friends ! - Ancient [18 Holes]",
                "description": "Golf With Your Friends Map rebuild in Golf It!\r\n\r\nIf u find any Bugs or Glitches let us know!\r\n\r\nIt contains 18 holes and the anticipated time per round is 5 minutes.\r\n\r\nObjects placed: 4500+\r\nTime needed to build: 9h\r\n\r\nMade by Heisenburrg, Daniklaus, Thom4$ & Jan",
                "time_created": 1499618722,
                "time_updated": 1499814875,
                "visibility": 0,
                "banned": 0,
                "ban_reason": "",
                "subscriptions": 936,
                "favorited": 5,
                "lifetime_subscriptions": 1013,
                "lifetime_favorited": 5,
                "views": 580,
                "tags": [
                    {
                        "tag": "Maps"
                    }
                ]
                
            }
        ]
        
    }
}