続・「ゲーム作りのはじめかた Unityで覚える企画からレベルデザインまで」読んでる
以前の記事:「ゲーム作りのはじめかた Unityで覚える企画からレベルデザインまで」読んでる
最近は年で一番忙しい時期で、徹夜とかやってたからあんまり何もできてない。
徹夜で仕事とか初めての経験で、絶望と達成感を味わった。
それはそうと、時間の取れるときは前にも書いたこの本の内容を頑張って理解してる。この本2つ目のパズルゲームの所までしか読んでない(コラムは先に全部読んだ)。
SBクリエイティブ
売り上げランキング: 60,222
あいつもこいつも見たことない動き
普段僕はPHPとJavaScriptを使ってプログラムを書いてるんだけど、特殊なことをしない限り使うメソッドや全体の構成なんかは似たようなものになってくる。
それはWebサイトやWebサービスというものに必要な物がある程度決まっているから。例えばデータベースがあって検索窓があって、コンタクトフォームがあって…というような。こういう基本的な構成や動きを知っていれば、いざサイトを作る時の枠組みとして役に立ってくれる。
ゲーム制作にもゲーム制作の基本的な構成、動きがある。
ジャンルによって変わってくるとは思うけど、例えば今やっている3マッチパズルゲームならゲーム全体の中にブロックを司るクラスがいて、そいつがゲームの進行を管理している。動きも「ブロックをスライドさせる(入れ替える)」「ブロックが縦横につながってるかを計算する」「ブロックが落ちる」などの普段からよく見る動きがある。
これらをいざ作ろうとして本を読んでたけど、もう見たことない動きばっかりで(^q^)???ってなった。
ブロックが落ちるだけなのになんで移動だけじゃないの?とか、ブロックをスライドさせる時に場所と一緒に色も入れ替えたら意味無いじゃんとか思ってた。結論的にこれらの謎の複雑な動きは、入れ替えようと落ちようと、ブロックの座標を初期状態から変えないための措置だった。それが分かるまでに結構時間がかかった。
このように、ちょっとした動きでも今まで見たことがない書き方がされていて混乱すると同時に非常に勉強になる。ちなみにブロックが3つ揃ってるかの計算など、普通におーなるほどーと思うところもあった。
まだ分からない所もたくさんある
途中にこのような部分がある。
float rate = this.step_timer / slide_time; rate = Mathf.Min(rate, 1.0f); rate = Mathf.Sin(rate*Mathf.PI / 2.0f); this.position_offset = Vector3.Lerp(this.position_offset_initial, Vector3.zero, rate);
難しいので今はわからなくても大丈夫ですという感じで書かれていて、確かに難しそうな計算をしている。三角関数とか出てくるし。だけどこれを使う章の最後まで、この計算がどういうものなのか書かれていなかった。
多分this.position_offset_initial
から0になるまでスムーズに移動するんだと思っている。せめてどう動くかだけでも書かれていれば(ヽ’ω`)
でも8割ぐらいの部分は理解出来ていると思う。いや、6割ぐらいか。
自分のゲームを作りたい
これから自分のアイデアを詰め込むために試行錯誤に入る。ゆっくりやろうと思う。
でもそのためには新しい概念をゲームに登場させなくてはいけなくて、はたしてどこから呼び出したらいいものか分からずにいる。そのモノ自体もどう書けばいいやらで、先は長そう。多分ここで紹介する前にどっかで詰みそうな予感。でもなるだけ頑張ります。
SBクリエイティブ
売り上げランキング: 60,222