「逆ポーランド記法」を含む日記 RSS

はてなキーワード: 逆ポーランド記法とは

2023-11-12

ゲーム感想 CHR$(143)

CHR$(143)

全ステージクリアSteam実績全解除)

プレイ時間 88時間全ステージクリアしたばかりの現在時間

あああーーーー、めっちゃしかったーーーー!

全クリして達成感に満ちあふれているが、この気持ちが収まる前に感想を書くぜー!

しかし、タイトル名の読み方がよくわからん。「キャラクターズ・ワン・フォースリー」でいいのか? ちなみに、ゲームタイトル画面では『Project CHR$(143)』表記となっている。

タイトル名の『CHR$(143)』だが、Amstradというイギリスメーカーから1984年販売されたCPC464というホームコンピューターパソコン?)のキャラクターコード143に四角形が割り振られていることが元ネタのようだ。レトロコンピューター元ネタにしてるだけあって、ゲーム画面全体もレトロ雰囲気に仕上がっているのも好きだ。

ゲームジャンルとしてはパズルゲームでいいはずだ。ちなみに、Steamでのジャンルは「インディー, シミュレーション」となっている。

Steamのストアページの類似品として、『Baba Is You』(説明不要の有名パズルゲーム)に、『Factorio』・『shapez』といった工場建設シミュレーションに、カイロソフトレトロ調シミュレーションゲームに、変態パズルゲームメーカー(誉め言葉)で知られるZachtronics社の『SHENZHEN I/O』などが並んでいる。

『CHR$(143)』の紹介文をSteamストアより引用する。

リッチやりがいのある物理ベースパズル/ロジック/建設/プログラミングゲーム!弾道学、流体力学熱力学化学反応、核反応をマスターし、オートメーションレンガを使い、構造物機械乗り物を作り、電力を生産し、パズルを解き、霧を突き破り、CHR$を倒そう!

https://store.steampowered.com/app/1695620/CHR143/

パズルゲームレトロ調ゲームが好きな私としては『CHR$(143)』のトレイラー動画上記の紹介文に心惹かれてプレイした次第だ。これがやっぱり面白かった。上記に挙げた他の類似品に匹敵する、あるいは凌駕するほどに面白かった。

ゲーム内容としては、箱庭系というよりもステージ攻略型のパズルであるゲーム内では各ステージレベル表記されているので、この感想文でもレベル表記する。

パズル難易度としてはかなり高い。それでも、チュートリアルなどの導入はしっかりしてるし理不尽さもないので、私にとっては時間をかけて考えれば自力クリアできる難易度だった。とはいえ、悩みに悩んで、日をまたいでようやくクリアしたレベルもある。

ちなみに最終レベルクリアSteamグローバル実績は1.6%である。これで難易度の高さが伝わるだろうか。

レベルの主な流れとしては、ブロックを作ったり掘ったり操作したりして目的を達成(レベルクリア)していくことにある。ブロックの一つ一つが物理演算する様は『Noita』らしさを感じた。レベルクリアについてだが、解法がガチガチに決まっているわけではない。時間制限があって急いで操作しなければいけないレベルもあり、レベルによってはアクション性が高かったり、シューティングゲーム要素があったりするのも楽しかった。

レトロゲームは昨今のゲームと比べてジャンルという枠組みにとらわれていない印象があるが、この『CHR$(143)』も同様だ。

ブロックを組み合わせたギミックはとても面白いが、その中でも特に好きなのは蒸気タービンによる発電だ。

ただ過熱蒸気をタービンに送るだけでは発電できず、冷却用の水も同時に必要となっている。タービンで熱交換されて、過熱蒸気はただの蒸気となり、水は温水になる。発電を継続させるためには、蒸気を常に加熱する仕組みと、温水を冷却塔で常に冷却する仕組みを構築する必要がある。蒸気よりも過熱蒸気の方が密度が小さいので上の方に行き、水よりも温水の方が密度が小さいので上の方に行く。こうしたブロック毎の密度の違いを利用してタービン発電を実装していく必要があるのだ。

このように、流体力学熱力学を反映したシミュレーションになっているのが、『CHR$(143)』の面白いところだ。

非常に頭を悩ませながらも面白かったのがプログラミングだ。AND・OR・NOTなどのブロック論理回路を実現できるだけではなく、CPUブロック存在する。そしてCPUに対して、このゲーム専用(たぶん)のプログラミング言語命令プログラムできるのだ。この言語がとても低レベル(低水準・低レイヤ意味で、決して侮蔑表現ではない)なのが面白い。逆ポーランド記法で数式を記述したり、goto文で条件分岐したりといった具合だ。言語仕様は大量にあり、pdfファイルでまとめられているほどの徹底ぶりだ。しかも、ゲーム中でも詳細はpdfファイルを参照するようにと求められるのだ。パズルゲームで、まさかプログラミング言語仕様書を読まされるとは思わなかった!

とはいえ言語仕様を全て理解する必要はないし、プログラミングゼロからコーディングする必要もない。プログラムサンプルとしてすでに作られた物をコピペで流用して必要な個所だけを書き加えたり修正したりすればいいし、仕様書も必要なところだけを読めばいいのだ。それはそれで、ある意味リアルプログラミングともいえるのだが……。

説明するのを忘れていたが、ゲーム全般日本語対応しているもの機械翻訳なので翻訳ガバガバだ。とはいえキー操作一つで英語表記に戻せるのでそんなに問題は無いし、翻訳ガバガバっぷりはそれはそれで味があっていいものだ。しかし、プログラミング言語仕様が描かれているpdfファイル英語オンリーなので、読み解くのに苦労した。とはいえ言語仕様を調べようとして英語説明しかなくて苦労するというのにも、これはまたリアルプログラミングだなぁと感じたものだ。

好きなレベルについても述べたいので、まずはレベルがどのように構成されているかから説明する。

チュートリアル的なレベルギミック説明からまりレベルを経る毎にギミックを応用させた解法が求められる。さらレベルを経るとこれまでの集大成的なレベルが登場して、それをクリアしたらまたチュートリアル的なレベルで新たなギミックが登場する。この繰り返しが『CHR$(143)』の大きな流れだ。

その中で私が好きなのは、やはり集大成的なレベルだ。集大成的なレベルは視界が狭まっており、一体何があるのだろうかと周囲を探索しながら進んでいくのが楽しかった。こうしたレベルクリアSteam実績解除の対象となっており、それにふさわしい達成感も与えてくれる。

そして最終レベルクリアしたのが、つい最近のことだ。この達成感を味わったことを書き残したくて、今この文章を書いているところだが、それももう終わりのようだ。

しかった。ありがとう、『CHR$(143)』!

2023-07-19

anond:20230719194621

電卓作れって言われたけど、意外と難しいぞ。JS を除けば、ライブラリ必須になるし。逆ポーランド記法だったらリスプインタプリタでいいかもしれんが。

2014-03-23

http://www.so-chan.sakura.ne.jp/?p=2276

いや、何言ってるの。

javascriptでグーチョキパーのボタンを押したらコンピュータも何かの手を出すジャンケンゲーム作れって言ったら作れるでしょ?

そりゃ「英語喋れません」って言ってる日本人のごとくだよ。

 

手を動かせ、作れる範囲で何かを作れ。

プログラムは工作なんだよ。本棚とか犬小屋を作ったことない人が、いくら一軒家の設計図の書き方を

学んでもなにも作れねえんだよ。

 

あと言わせてもらえれば「電卓」はまじめに作ろうとすると結構難しい課題だ。

よく考えるとわりと裏でごちゃごちゃとやってんだよ、あれは。

電卓」はまじめに作ろうとすると結構難しい課題だよ。よく考えるとわりと裏でごちゃごちゃとやってる、あれは。ググる逆ポーランド記法とか出てきてさら初心者を混乱させるし。

 
ログイン ユーザー登録
ようこそ ゲスト さん