Unity覚書 二次配列のマップ

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class MAP : MonoBehaviour
{
public GameObject kabe;
public GameObject jimen;
public GameObject st;
int[,] map = new int[,] {
{ 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
{ 1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,1},
{ 1,1,1,0,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1},
{ 1,0,0,0,1,0,1,0,0,0,0,0,1,1,1,1,1,1,0,0,0,1,0,1},
{ 1,0,1,0,1,0,1,0,1,1,1,0,1,1,1,1,1,1,0,1,1,1,0,1},
{ 1,0,1,0,0,0,0,0,1,0,1,0,1,1,1,1,0,0,0,1,0,0,0,1},
{ 1,0,1,1,1,1,1,0,1,0,1,0,0,1,1,1,0,1,1,1,1,1,1,1},
{ 1,0,1,1,1,1,1,0,1,0,1,1,0,0,0,0,0,1,0,1,1,1,1,1},
{ 1,0,1,1,1,1,1,0,0,0,1,1,1,0,1,1,1,1,0,1,1,1,1,1},
{ 1,0,1,0,1,0,0,0,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1},
{ 1,0,0,0,1,0,1,0,1,0,1,0,1,1,1,1,1,1,0,1,1,1,1,1},
{ 1,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,1,0,1,1,1,1,1},
{ 1,0,0,0,1,0,1,0,1,0,1,0,1,1,1,1,1,1,0,1,1,1,1,1},
{ 1,1,1,0,1,0,1,0,0,0,0,0,1,1,1,1,1,1,0,1,1,1,1,1},
{ 1,0,0,0,0,0,1,1,1,1,1,0,1,1,1,1,1,1,0,1,1,1,1,1},
{ 1,0,1,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1},
{ 1,0,0,0,1,0,1,1,1,0,1,1,1,1,0,1,1,1,1,1,1,1,0,1},
{ 1,1,1,0,1,1,1,1,1,0,1,1,1,1,0,1,1,1,1,1,1,1,0,1},
{ 1,1,1,0,0,0,0,0,0,0,1,1,1,1,0,1,1,1,1,1,1,1,0,1},
{ 1,1,1,1,1,1,1,1,1,0,1,1,1,1,0,1,1,1,1,1,1,1,0,1},
{ 1,0,0,0,0,1,0,0,0,0,0,0,1,1,2,1,1,1,1,1,0,0,0,1},
{ 1,0,1,1,1,1,0,1,1,1,1,0,1,1,1,1,1,1,1,1,0,1,1,1},
{ 1,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1},
{ 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
};
// Start is called before the first frame update
void Start()
{
for (int i= 0;i< 24; i++){
for (int j = 0; j < 24; j++)
{
if (map[i,j] ==0) { Instantiate(jimen, new Vector3(i * 1, 0, j * 1), transform.rotation); }
if (map[i,j] ==1) { Instantiate(kabe, new Vector3(i * 1, 1, j * 1), transform.rotation); }
if (map[i, j]==2) { Instantiate(st, new Vector3(i * 1, 0, j * 1), transform.rotation); }
}
}
}
// Update is called once per frame
void Update()
{
}
}
ラストオブアス2をクリアした感想(ネタバレ注意)
※ネタバレ注意です。クリア後に読むことをオススメ。
自分なりの妄想を含んだ感想です。
敵側にも、色々事情があって、想い合う仲間がいる。
血が通った、同じ人間なのだ。
そういうのを徹底した結果がこんな恐ろしいゲームになってしまった。
敵は悪者ではないが、どうしても憎いし許せない。ぶっ殺してやる。
そういうゲームだった。
エリーもアビーもお互いの大切に想う仲間が殺されて、憎しみを増幅させるたびに、周囲の誰かが死んでいく。
エリー側に感情移入してるので、どちらかというとエリーを応援していたので、中盤以降アビーに主人公交代することに面食らったし、ショックだった。
アビー視点でスタートすると、エリーに仲間たちが殺されていくのを見せつけられる。最終的には、エリーと対峙し、エリーを倒す方向に話が進む。
ここが、自分の中でモヤモヤしたポイントでした。
主人公の目的と、プレイヤーの目的が一致しなくなるのだ。
アビー操作をミスして、ゲームオーバーになった時、これが結末でもいいのでは? という考えが頭をよぎる。
エンディングを迎えるよりも、あるタイミングでアビーが命を落としてくれたほうが、マシな結末になるのだ。
でもゲームは進めたい。
ゲームを進めたいので、アビー視点で、エリーを倒さなきゃいけない。
何でプレイヤーにエリーを殴らせてるんだろう?
訳が分からない。
再びエリーに主人公交代したときは、安心したが、これはこれで複雑な気持ちになった。
この頃にはアビーは憎い相手ではあるけど、悪者ではないということに気付いてしまうからだ。
もしも、アビーが極悪人だったなら、喜んで復讐に進めるのに。
それをわかってのことか、エリーはアビーに対して不思議な行動をとる。
放っておけば死ぬ状況のアビーの命を救い出し、それから決闘を申し込むのだ。
決闘を申し込んでおいて最後トドメを刺せるタイミングになって、中断する。
ジョエルに対して放った「許せないけど、許したい」という言葉がここに重なってくる。
面白かったかと聞かれると、答えに迷うゲームだが、遊んでよかったゲームではある。
ジョエルとエリーに感情移入していたので、ふたりには幸せになって欲しかったが、そういうゲームではなかった。特効薬を見つけてハッピエンド、そういうのだったらいいなと思ったが、そんなお花畑な考えはすぐに吹き飛ぶ内容でした。
3が出ることがあれば買いたいが、さらに過酷な内容のゲームになりそうで怖いな。
ゲーム完成できない病からの脱出
頭に浮かんだゲームは神ゲーなのに、実際に作ろうとすると形にならない。
実力以上のことをやろうとしてたんだなと冷静になって考えた。
長編の超大作も作りたいが、コンパクトでカジュアルに遊べるゲームも合間に作って経験値稼ぎをしようと思ったのが6月の初めでした。
で、作ってみた。
神経衰弱にRPGの要素を加え、インド風味にした内容のゲームです。
3分ぐらいで遊べます。
今はなき「神経衰弱塔」っていうブラウザゲームの影響を強く受けて作ったものです。

ここで反省会。
ちょっとしたブラウザゲームを作るのにも一か月掛かってしまった。
作るスピードが遅いかもしれない。
思いついたアイディアはすぐに形にして、どんどんリリースするのを目標にしたい。
とはいえ、自分はゲーム作っているのに完成できない人間じゃないかと不安が膨らんでいたのが、その呪縛を解くことができたってのは収穫でした。
今はまだ、超凄いゲームは作れていないけれど、いつか超凄いゲームが作れるはずだと信じて、頑張ります。
千里の道も一歩から。
少しづつ進んでいけばいいんだと思いました。
マジックザギャザリングに差別問題の余波
少し昔に「ちびくろサンボ」という絵本があった。
絵本の内容は、虎が何故かバターになるというシュールな話で、差別的な表現はない。ただ、サンボという表現は、良くない言葉だったらしく、それに抗議が起こり、この絵本は世界から消えた。
そんなエピソードがあったことを、ぼんやりと思い出した。
その時と、似たようなことがさっき起こったからだ。
マジックザギャザリングというカードゲームで、7枚のカードが消滅することになった。
その理由が、差別的な表現があるカードだったからだそうだ。
どんなカードが禁止になったのか、どの部分がアレだったのか気になったので調べてみた。
※テキストはWikiから引用

Invoke Prejudice (青)(青)(青)(青)
エンチャント
対戦相手1人が、あなたがコントロールするクリーチャーと共通する色を持たないクリーチャー呪文を唱えるたび、そのプレイヤーが(X)を支払わないかぎり、その呪文を打ち消す。Xはそれの点数で見たマナ・コストである。

Cleanse (2)(白)(白)
ソーサリー
すべての黒のクリーチャーを破壊する。

Stone-Throwing Devils (黒)
クリーチャー — デビル(Devil)
先制攻撃1/1

Jihad (白)(白)(白)
エンチャント
Jihadが戦場に出るに際し、色1色と対戦相手1人を選ぶ。
選ばれたプレイヤーが選ばれた色のトークンでないパーマネントをコントロールしているかぎり、白のクリーチャーは+2/+1の修整を受ける。
選ばれたプレイヤーが選ばれた色のトークンでないパーマネントをコントロールしていないとき、Jihadを生け贄に捧げる。

Imprison (黒)
エンチャント — オーラ(Aura)
エンチャント(クリーチャー)
プレイヤーが、エンチャントされているクリーチャーの、その起動コストに(T)を含むマナ能力でない能力を起動するたび、あなたは(1)を支払ってもよい。そうした場合、その能力を打ち消す。そうしなかった場合、Imprisonを破壊する。
エンチャントされているクリーチャーが攻撃かブロックするたび、あなたは(1)を支払ってもよい。そうした場合、そのクリーチャーをタップし、戦闘から取り除く。この戦闘でそれによってのみブロックされていた、それがブロックしていたクリーチャーはブロックされていない状態になる。そうしなかった場合、Imprisonを破壊する。

Crusade / 十字軍 (白)(白)
エンチャント
白のクリーチャーは+1/+1の修整を受ける。
ざっと効果に目を通してみると、自分の色を有利にし、別の色を不利な状況にするものという共通点は見られる。
でもそれが理由だとすると、そういう類のカードはこの7枚に留まらず、大体のカードがそうなる。
あとマジックザギャザリングには5色の色があり、白は秩序と正義。
黒は狂気と死という、そもそものコンセプトカラーがあり、黒は邪悪な色という前提がある。それが、差別問題に触れるというなら、このゲーム自体の存続が危うい。
他のゲームではどうだろう。
属性を色で分けるものはあるが、闇属性は紫色が多かったりする。
配慮があってそうなってるわけではないと思うが、黒を避けるのであれば紫が妥当である。
結論。
いつ個人のゲームにも余波がくるかわからないので先手を打った方が良い。
個人でゲームを作る人は、エルフやゴブリンにも人権があることも思いをはせながら、闇属性に該当する魔法や技は、紫にしとくのがいいと思った。