HASHITO.BIZ
GAME

サンドワーム砂を掘り進む横スクロールアクション(無料・ブラウザ)

砂を掘り進む横スクロールアクションです。1粒ずつ計算した砂漠を、モンゴリアンデスワームになって横切ります。掘った坑道はふちが締まって残り、潜れば速いが体のまわりしか見えず、飛び出せば見渡せるが弾道でしか動けない。太れば強く、細ければすき間を抜けられます。

距離 0m 最大体長 12 0/5 スタミナ 100 撃破 0 時間 0.0 最高 0

サンドワーム

終わりのない砂漠で土と餌を食べ、どこまで大きくなれるか競います。土40粒ごとに尾からフンを出し、敵を噛んで倒すと餌が落ちます。

自分 餌(5個で1節・近くは吸着) 自分より小さい敵 自分より大きい敵 カメ・鳥・奇虫(弱点を噛む) フン(土40粒ごと) ゆるい砂(落ちる) 締まった砂(坑道の壁・18秒で乾く) 水(掘れない・溺れる) 根(噛み切る) 岩(掘れない)

エンドレスルール

    潜行・水中・地上でできることの違い

    砂地にあるもの

    体の太さと、尻尾を切ること

    敵ワームとの決着

    遊び方 — 掘って、食べて、どこまでも育つ

    あなたは止まれないモンゴリアンデスワームです。砂漠は右へ進むたびに新しく生成され、面の切り替わりやゴールはありません。土を40粒掘るたびに尾からフンを出し、近くへ吸い寄せられる餌を5個集めると1節成長します。距離と体長が伸びるほど敵が増え、最大体長・距離・撃破数・生存時間が記録になります。

    1. 曲がる:左右キー(A・Dキーでも可)か、画面下の「左へ曲がる」「右へ曲がる」を押します。押しっぱなしで曲がり続けます。盤面を指やマウスでなぞると、その点の方向へ頭が向きます。
    2. 加速する:上キーかスペース、または「加速」ボタンです。砂の中でしか効きません。スタミナを使い、砂の中にいるあいだだけ回復します。
    3. 餌を集める:青い餌は頭から3マス以内へ入ると吸い寄せられ、5個で1節伸びます。画面から餌がなくなった状態が続くと進行方向へ補充されます。
    4. 敵に噛みつく:噛みつくボタンかX・Fキーを使います。カメは背後か下側、鳥は上側、奇虫はフンで止めるか正面が弱点です。倒すと種類に応じて餌を1〜3個落とします。
    5. 尻尾を切る:Sキー(または「尻尾を切る」)で3節を捨てると、細く速くなります。捨てた節はその場に幼虫として残るので、あとで食べ直せます。岩の櫛の細い穴を抜けたいときに使います。
    6. 水と根をよける:砂の中の水の袋に入ると掘れず、息が続きません。根は掘れないので噛み切ります。どちらも回り込めますが、そのぶん時間がかかります。
    7. その場で待つ:前へ進まずに同じところをうろついていると、4秒ほどで空から砂が降りはじめ、7秒に1匹の割で幼虫も落ちてきます。掘った坑道は18秒で乾いて閉じるので、居座るあいだも盤面は動き続けます。
    8. 進み続ける:右端へ近づくと地形が循環し、新しい砂漠と敵が追加されます。体長は論理上伸び続けますが、描画する節数には上限があるため長時間遊んでも処理量は増え続けません。

    潜っているときと、地上に出ているとき

    このゲームの中心は砂の中と外で、できることがまるごと入れ替わることです。どちらが強いという話ではなく、得られるものが違います。

    砂の中(潜行)
    掘りながら一定の速さで進み続けます。向きは自在に変えられ、加速も効き、スタミナも回復します。そのかわり、見えるのは体のまわりの円のなかだけです。円の外にいる敵ワームは、位置がぼんやりした赤いにじみとしてしか分かりません。にじみが大きく濃いほど相手が近く、大きい相手です。前が見えないまま速く進む、というのが潜行の手ざわりです。
    水の中
    掘れないので通り道が残りません。向きは砂の中と同じくらい変えられますが、加速は効かず、浮力でゆっくり水面へ押し戻されます。息が続かないのでスタミナが減り続け、尽きると節を失っていきます。敵ワームも水を嫌うので、短いあいだなら追手をまく場所として使えます。
    地上・空中
    砂から飛び出すと、その瞬間の速度をそのままに放物線を描きます。加速はできず、向きも空気を噛むぶんだけしか変えられません。実質、飛び出す前に決めた方向へ飛ぶだけです。そのかわり画面全体が明るくなり、砂の中に潜んでいる敵と幼虫の位置が透けて見えます。次にどこへ潜るか、どの敵を避けるかを決めるのはこの数秒です。

    結果として、上手い進み方は「潜って距離を稼ぐ → 浅く跳ねて周りを見る → また潜る」の繰り返しになります。ずっと潜っていると、自分より大きい敵の真横に飛び込んで2節持っていかれます。ずっと跳ねていると、前へ進む速さが出ないうえ、着地のたびに勢いを失います。

    砂は1粒ずつ落ちている

    砂は絵ではなく、1粒ずつ独立して動くセルオートマトンです。毎回すべての粒について、次の順で行き先を試します。

    1. 真下が空いていれば落ちる。
    2. 真下がふさがっていて、斜め下と、その横の両方が空いていれば、そちらへ滑る。左右どちらも空いていればランダムに選ぶ。
    3. どちらも駄目ならその場に留まる。

    「横だけへ動く」規則をわざと入れていません。入れると、平らな床に載った1粒が永久に左右へ滑り続けます(落ちられないので毎回横へ移り、いつまでも止まらない)。この2条件だけにしておくと、粒は必ず下向きに進むか止まるかのどちらかになり、山は自然に一定の傾きで落ち着きます。斜めへ滑るときに「横も空いていること」を求めているのは、粒が壁の角の斜めのすき間をすり抜けて、閉じたくぼみへ潜り込むのを防ぐためです。

    掘った坑道が残る理由

    砂を粒として落とす作りのままだと、掘った穴は次の瞬間に必ず埋まります。天井の砂は下が空いた瞬間に落ちるので、通った跡は残りません。実際に最初はそうなっていて、進んだそばから背後が塞がり、砂を掘って進んでいる実感がまったく出ませんでした。

    そこで、掘るときに穴のふちの砂を「締まった砂」に変えています。ワームが体で壁を押し固めながら進む、という理屈です。締まった砂は落ちないので、坑道は掘った形のまま残ります。掘ることはできるので、あとから坑道を広げることも、他のワームの坑道を潰すこともできます。締まった砂はゆるい砂より暗く赤みの少ない色で描いてあるので、どこが自分の掘った跡なのかが見て分かります

    この一手で、砂の中に自分の巣が育っていきます。行き止まりまで掘ってから引き返す、幼虫のあるところまで一本道を通しておく、敵に追われたら自分の坑道へ逃げ込んで速度を出す、といった遊びは、坑道が残るから成り立ちます。だけは掘れず落ちもしません。谷の壁や岩の櫛は岩でできているので、そこは回り込むか飛び越えるしかありません。

    坑道は乾いて閉じる

    ただし、締まった砂を永久に残すわけにはいきません。1面ぶん掘った跡がぜんぶ空洞のまま積み上がると、盤面は砂漠ではなく坑道の網になってしまい、砂を掘りのけて進んでいる感じが消えます。そこで、掘ってから18秒たった締まった砂は乾いてゆるい砂に戻ります。戻ったあとは天井の砂が落ちてくるので、坑道は自然に塞がります。閉じ方をわざわざ書いてはいません。ゆるい砂に戻すだけで、あとは砂の計算が形を決めます。

    18秒という長さは実測して決めました。掘った直後の坑道の空きマスを0.5秒ごとに数えると、96マスが18秒目まで1マスも減らず、18.5秒で93、19秒で55、20秒で50、21秒で0になります。つまり丸18秒はそのまま残り、そこから3秒かけて崩れて閉じます。

    • 短すぎてはいけない:潜行の速さは毎秒118ピクセルなので、18秒は2,124ピクセルぶん掘り進む時間、画面3.3枚ぶんにあたります。1画面ぶん(5.4秒)で消えてしまうと、背後を振り返ったときにはもう塞がっていて、坑道が残る意味がありません。
    • 長すぎてもいけない:1ステージはおおむね60〜120秒です。寿命をステージの長さに近づけると、結局ぜんぶ残るのと同じことになります。その5分の1に収めました。
    • 通り直した道は閉じない:坑道をもう一度通ると、そのとき壁が締め直されて寿命が戻ります。行き来している幹線と、居座っている部屋は乾きません。「通らなくなった道から順に閉じていく」という形になります。

    乾きを見に行くのは0.25秒に1回だけです。72,000マスぜんぶを見ますが、毎フレームやると掘っていないときでも毎回72,000マスを走ることになるので、間隔を空けています。地形が最初から持っている締まった砂(水の袋を包んでいる殻)には寿命が付いていないので、そちらは掘り当てるまで乾きません。

    居座ると空から砂と幼虫が降ってくる

    坑道が閉じるようになっても、掘ったぶんの砂そのものは消えたままです。同じ場所に居続けると砂は減る一方で、しまいには掘るものが無くなります。そこで、同じ場所に居座っているあいだだけ、空から砂が降ってきます。4秒でぱらぱらと降りはじめ、12秒で最大(毎秒34粒)になります。前へ150ピクセル進むと止まるので、掘り進んでいるあいだは1粒も降りません。掘っている最中に降らせると、通したばかりの入口が上から塞がって理不尽になるうえ、そもそも困っているのは「居座ったとき」だからです。

    効き目も実測しました。ステージの頭で5秒まっすぐ掘り進んでから、同じ場所で90秒回り続けたときの、盤面のゆるい砂の数です。

    • 開始 45,600マス → 掘り進んで21秒後に41,950マスまで減る
    • そこから増えに転じて40秒で42,600マスまで戻る
    • 以後95秒まで42,000前後で横ばい(減り続けない)

    内訳は、掘って消したマスが4,225、空から降ってきた粒が1,972、乾いてゆるい砂に戻ったマスが2,084です。降る砂と、乾いて戻る坑道の壁の2つで、掘ったぶんをほぼ埋め合わせています。降る量は「掘って空になる速さ」の半分にしてあります(掘っているあいだ空になるのは毎秒65マスほど)。同じにしてしまうと掘っても盤面が減らず、砂を掘りのけている手ごたえが消えます。

    砂だけでは、居座りは「損をしない」だけで得にはなりません。そこで7秒に1匹、幼虫も風に乗って降ってきます。落ちてくる途中でも食べられるので、砂から跳び出して空中で捕ることもできます。上の実測では95秒で8匹が降ってきました。巣穴に入るのに必要な体長が足りないとき、探し回るかわりにその場で待つという選択肢が生まれます。

    降ってきた砂が坑道を埋めてしまわないかも確かめました。埋まりません。坑道の天井は締まった砂なので、上から落ちてきた砂はそこで止まって地表に積もります(実測でも、雨を降らせ続けたまま18秒目まで坑道の空きマスは1マスも減りませんでした)。ただし地表に口が開いている縦穴だけは別で、そこからは砂が流れ込みます。潜り口をそのままにして待っていると入口が埋まる、というのはそれらしい振る舞いなので、そのままにしてあります。

    谷の上にだけは降らせていません。谷は「掘って渡れない・飛び越えるか、潜って回り込む」ための地形なので、居座っているだけで砂が溜まって埋まると、その選択そのものが消えてしまうからです。

    太さは体長で決まる

    体長が増えると、体は太くなります。太いと掘る穴も当たり判定も大きくなるので、噛み合いに強く、根を噛み切るのも速くなります。そのかわり掘る速さが落ち、岩の櫛に空いた穴を抜けられなくなります

    岩の櫛は、地表から岩盤まで立った岩の壁に、3つだけ穴が空いているものです。穴の高さは8ピクセル・12ピクセル・16ピクセルの3種類で、通れるかどうかは体の太さで決まります。抜けられないときは、砂から飛び出して壁を跳び越えるか、尻尾を切って細くなるかのどちらかです。

    尻尾を切ると3節を失って細く速くなり、しばらく速さが上乗せされます。捨てた節はその場に幼虫として残るので、あとで食べ直せます。ただし敵にも食べられます。巣穴に入るには必要な体長まで太る必要があるので、細くなるのは通り抜けのため、太るのはクリアのためという往復がそのまま遊びになります。

    水と根

    砂の中には水の袋が埋まっています。まわりを締まった砂の殻が包んでいるので、掘り当てるまでは砂に紛れて見えません。掘り当てると水が坑道へ流れ出し、せっかく通した道が使えなくなります。水の中では穴が掘れないので通り道が残らず、息も続かないのでスタミナが減り続け、尽きると節を失っていきます。そのかわり敵ワームも水を嫌うので、追われたときの短い逃げ場になります。渡るか、回り込むか、追手をまくために飛び込むかを、そのつど選ぶことになります。

    砂は水に沈みます。水の上に砂が落ちると砂と水が入れ替わるので、坑道へ流れ込んだ水の上に砂を崩せば、水を押し下げて道を通し直せます。

    は地表の草から水の袋へ下りている筋です。掘れないので噛み切るしかなく、切る速さは体長で決まります。細いワームは根の目のすき間をすり抜け、太いワームは正面から噛み切る、と役割が分かれます。そして根はまわりの砂を支えています。切ると支えを失った砂が落ちてくるので、根の下で切ると自分ごと埋まります。根のまわりには幼虫が集まっているので、いちばん食べでのある場所が、いちばん時間のかかる場所になっています。

    体節はどうつながっているか

    体は節を鎖のように並べたもので、動かしているのは頭だけです。頭が進んだあと、2番目の節を「頭との距離がちょうど節の長さになる位置」まで引き寄せ、3番目を2番目へ、というように尻尾まで順に引き寄せます。伸び縮みしない鎖なので、体がゴムのように伸びることが原理的に起きません

    バネで引き合わせる方法(このサイトの「パーティクルお絵かき」のイモムシがそれです)もあり、そちらは体がしなって生き物らしく揺れます。ただしバネはバネ定数と減衰と時間刻みの噛み合わせを外すと振動が増幅して画面外へ飛ぶので、当たり判定に体を使うこのゲームでは、調整のいらない鎖のほうを採りました。生き物らしさは、描くときに進行方向と直角へ小さな波を足して出しています。

    敵ワームとの決着は体長で決まる

    敵も同じモンゴリアンデスワームです。武器も特殊能力も無いので、決着は体長どちらが後ろを取ったかの2つだけで付きます。

    • 頭が相手の胴に触れた:噛みついた側が1節伸び、噛まれた側が2節失います。体長に関係なく成立するので、大きい相手でも背後から食べられます
    • 頭どうしが正面からぶつかった:体長の大きいほうが1節伸び、小さいほうが2節失います。同じ長さなら互いに弾かれ、何も起きません。
    • 体長が4節を切った:そのワームは死にます。敵なら消え、自分ならそのステージのやり直しです。

    敵は自分の体長を見ています。自分より小さければ追いかけてきて、大きければ逃げます。つまり育てば追われなくなるかわりに、逃げる相手を追いかけて食べるのが難しくなります。そして体長が増えるほど掘る速さは落ちます(12節を基準に、1節ごとに約1.4%遅くなり、最大で4割ほど遅くなります)。伸ばしすぎると、小さくてすばしこい敵に背後を取られます。巣穴に必要な体長ちょうどで駆け抜けるのがいちばん速い、というのがこのゲームの答えの1つです。

    敵の色はすべて赤系で、体長が大きいほど濃く太くなります。自分は青です。色相ではなく濃さで強さを表しているので、赤の見分けが付きにくい人でも、太さと明るさで相手の大きさが読めます。

    ステージの作られ方

    地形はステージ番号から決まる種で毎回同じように作られます(同じステージなら何度やり直しても同じ砂漠です)。地表の高さはいくつかの波を重ねて決め、そこへ岩の塊と、砂の中の空洞をばらまきます。ステージ2以降にはが現れます。谷の壁は岩なので掘って渡れず、勢いを付けて飛び越えるしかありません。落ちてしまっても、谷の下のほうは砂なので、崩れてきた砂の斜面を掘って抜けられます。

    ステージが進むと、巣穴へ入るのに必要な体長が増え、敵の数と大きさも増えます。5ステージ目までは名前の付いた砂漠で、その先は「深層」として同じ規則で無限に続きます。

    強化は1ステージに1回だけ

    強化はステージをクリアしたときにだけ、3つの案から1つ選びます。1ステージはおおむね1分から2分なので、強化の間隔もそのくらいです。細かい強化が数秒ごとに降ってくると、何が効いているのか分からなくなるので、回数を絞って1回の重みを出すようにしています。取った強化と、その結果いまいくつになっているかは、盤面の下にずっと出しています。

    重さについて

    砂の格子は720×100=72,000マスありますが、毎回すべてを計算しているわけではありません。前回なにかが動いた列と、掘った列の隣だけを次の回で計算します。掘っていないところの砂はもう落ち着いているので、計算しても何も起きないからです。ブラウザで実測したところ、ふつうに掘っているあいだ「動いている列」は5〜23本(画面に見えている160本のうち)で、砂の更新は1回あたり0.02〜0.20ミリ秒でした。全部の列を毎回見ると同じ処理が30倍以上になります。

    描画は、砂を1マス1ピクセルの画像として組み立ててから4倍に拡大しています。マスを1つずつ塗ると画面内だけで16,000回の描画命令になり、実測で6ミリ秒近くかかりましたが、この作りなら0.23〜0.62ミリ秒で済みます。1フレーム全体(計算+描画)は0.25〜0.75ミリ秒で、60分の1秒(16.7ミリ秒)の予算に対して20倍以上の余裕があります。

    敵ワームの上限を8匹にしているのは重さのためではありません。1匹ぶんの計算は0.05ミリ秒に満たないので、増やしても数字はほとんど動きません。潜行中に同時に読み取れる「にじみ」の数が理由で、これ以上増やすと赤いにじみが重なって、どこに何匹いるのかが分からなくなります。地形の生成は1面あたり20ミリ秒ほどかかりますが、ステージの切り替わりに1回だけなので、遊んでいる最中の重さには効きません。

    坑道が残るようになったぶん、砂が動く量はむしろ減っています。掘ったふちが締まった砂に変わって落ちなくなるので、崩れる砂は坑道の外側だけになるからです。

    空から砂が降っているあいだは、そのぶん動いている列が増えます。同じ手送りのしかけで測って比べると、雨が降っていないときの「動いている列」は1〜31本で計算に0.11〜0.41ミリ秒、雨が最大のときは53〜81本0.49〜0.72ミリ秒でした。増えるのは砂の計算だけで、描画の時間は変わりません(画面に映っているマスの数は同じだからです)。60分の1秒(16.7ミリ秒)の予算に対しては、どちらも桁が2つ違います。坑道の乾きは0.25秒に1回だけ72,000マスを見に行くもので、1フレームあたりに均すと数えるほどでもありません。

    よくある質問

    サンドワームはどうやって遊びますか?
    操作は曲がることと加速することの2つだけです。左右キー(またはA・Dキー、画面下の左右ボタン)で進む向きを少しずつ変え、上キーかスペース(加速ボタン)で加速します。砂の中では自分から止まれず、必ず前へ進み続けます。画面は左から右へ流れ、右端の巣穴へ必要な体長で潜り込むとステージクリアです。盤面を指でなぞると、その方向へ頭が向くので、スマートフォンでは指1本でも遊べます。
    砂に潜っているときと地上に出ているときで何が違いますか?
    潜っているあいだは砂を掘りながら速く進み、思った方向へ自在に曲がれ、スタミナも回復します。そのかわり見えるのは体のまわりの円のなかだけで、少し離れた敵は赤いにじみとしてしか分かりません。砂から飛び出すと、重力にしたがった弾道になり、加速はできず向きもごくわずかしか変えられません。そのかわり画面全体が明るくなり、砂の中に潜んでいる敵ワームと幼虫の位置が透けて見えます。速く進みたいなら潜り、先の様子を知りたいなら飛び出す、という使い分けになります。
    敵のワームとはどうやって決着を付けますか?
    同族なので勝敗は体長で決まります。自分の頭が相手の胴に触れると噛みつけて、相手から2節を奪って自分が1節伸びます。逆に相手の頭が自分の胴に触れると同じことをやられます。つまり後ろを取ったほうが勝ちです。頭どうしが正面からぶつかったときは体長の大きいほうが勝ち、同じ長さなら互いに弾かれて何も起きません。体長が4節を切ったワームは死にます。大きいほど強いかわりに掘る速さは落ちるので、伸ばしすぎると小さい敵に背後を取られます。
    砂はどう動きますか?掘った穴はどうなりますか?
    砂は1粒ずつ独立した粒として計算しています。毎回、真下が空いていれば落ち、真下がふさがっていて斜め下と横の両方が空いていればそちらへ滑ります。横だけへ動くことはないので、平らな床に載った粒はそこで止まります。掘った穴はしばらく残ります。掘るときに穴のふちの砂が体で押し固められて締まった砂に変わり、締まった砂は落ちないからです。締まった砂も掘れるので、あとから坑道を広げることも、他のワームの坑道を潰すこともできます。ただし締まった砂は18秒で乾いてゆるい砂に戻るので、通らなくなった坑道は21秒ほどで塞がります。通り直した道は締め直されるので閉じません。掘っていないゆるい砂のほうは、下が空けば落ちて山になり、山は一定の傾き(安息角)で落ち着きます。
    同じ場所に居座ると砂が無くなりませんか?
    無くなりません。前へ進まないまま4秒たつと空から砂が降りはじめ、12秒で最大(毎秒34粒)になって地表に積もります。実測では、5秒掘り進んでから同じ場所で回り続けると、盤面のゆるい砂は45,600マスから21秒後に41,950マスまで減ったあと42,600マスへ戻り、以後95秒まで42,000前後で横ばいでした。掘ったぶんは、降ってくる砂と、乾いてゆるい砂に戻る坑道の壁の2つで埋め合わされます。前へ150ピクセル進むと雨は止まるので、掘り進んでいるあいだは1粒も降りません。7秒に1匹は幼虫も降ってくるので、体長が足りないときはその場で待つという手も使えます。
    体の太さは何に影響しますか?尻尾は何のために切りますか?
    体長が増えるほど体は太くなり、掘る穴も当たり判定も大きくなります。太いと噛み合いに強く、根を噛み切るのも速いかわりに、掘る速さが落ち、岩の櫛に空いた穴(8ピクセル・12ピクセル・16ピクセル)を抜けられなくなります。Sキー(または尻尾を切るボタン)で3節を捨てると細く速くなり、1.4秒のあいだ速さが1.45倍になります。捨てた節はその場に幼虫として残るので、あとで食べ直せます。ただし敵にも食べられます。巣穴に入るには必要な体長まで太る必要があるので、細くなるのは通り抜けのため、太るのはクリアのためという使い分けになります。
    水と根は何をしますか?
    水は砂の中の袋に溜まっていて、まわりを締まった砂の殻が包んでいます。掘り当てると坑道へ流れ出して通り道を塞ぎます。水の中では穴が掘れず、息が続かないのでスタミナが毎秒30減り、尽きると2秒ごとに1節ずつ失います。そのかわり敵ワームも水を嫌うので、短いあいだなら逃げ場になります。根は地表の草から水の袋へ下りている筋で、掘れないので噛み切るしかありません。切る速さは体長で決まります。根はまわりの砂を支えているので、切ると上の砂が落ちてきます。根のまわりには幼虫が集まっているので、いちばん食べでのある場所がいちばん時間のかかる場所になります。
    体を伸ばすにはどうすればよいですか?
    砂の中に埋まっている青い幼虫を食べると1節伸びます。幼虫は時間がたつと少しずつ湧き直すので、体長が足りなくなって詰むことはありません。もう1つの方法が敵ワームへの噛みつきで、こちらは1回につき1節伸びます。ステージの入口では毎回12節から始まり、巣穴へ入るのに必要な体長はステージが進むほど増えます。
    強化はどのくらいの間隔で手に入りますか?
    ステージを1つクリアするたびに3つの案から1つだけ選べます。1ステージはおおむね1分から2分なので、強化が来るのもその間隔です。掘る速さ、曲がりやすさ、スタミナ、感じ取れる範囲、噛みついたときに奪う節、空中での効きの6種類があり、選んだ強化はゲームを続けているあいだずっと残ります。体長だけはステージごとに12節へ戻ります。
    データは保存・送信されますか?
    最高到達ステージと最高スコアだけを、お使いのブラウザのlocalStorageに保存します。遊んでいる途中の地形は保存しません。処理はすべてブラウザ内で完結し、外部サーバーへの送信は一切行いません。