><https://twitter.com/orange_in_spacehttps://pawoo.net/@orange_in_space
ゲームと物理シミュレーション もっと見る
例として自由落下を考える。落ちる物体の速度 v=gt、位置 y=1/2gt^2。これをゲームプログラミングっぽく表現すると、
物体のデータ構造 [速度v,位置y]
1秒間に60回、以下の処理を繰り返す:y += v/60v += (g/60) * v ...(g: 重力加速度)位置yに物体を表示
これに「yが一定値を超えたらvの符号を逆転する」という処理を入れたら、床に衝突してバウンドするのが再現できたりとか。
話が脱線するけど、今回のオレンジのアドバイスと他の人のアドバイスのギャップって、「プログラミングを学ぶには、あらかじめ数学を学ばないと」と「数学なんて学んでなくてもプログラミングの学習は出来るよ!>< ベーマガ世代は漢字読めない子でもプログラミングしてたんだよ?><」ってギャップにも繋がってる気がする><
誤解を恐れず言うと、世の中のプログラミングで最も普通の言語がCとC++><
そういえばC++で作られたレースゲームとかフライトシムあるみたいね
ツクールやれとかUnity弄るといいよみたいなのは、ゲームを作れるようになる事こそが目的って発想のアドバイスかも感><
プログラミングできる人になりたいのかゲーム作りたいのかで見え方が違ってそう><(オレンジ的にはプログラミングできる人になる事(プログラミング関連の話を理解で来る人になる事)が目的だと思ってアドバイスした><)
えーと、ここまでの意見を総合すると
・その前にどんなゲームを作りたいか決めろ・使うツールも決めろ・C#がいいよ!・プログラミングよりも制作ツールの勉強しろ・ナビつき! つくってわかる はじめてゲームプログラミングをやろう・mod制作から始めよう・仕組みが知りたいだけなら本を読んだり、Fediverseで本職の人に聞けばいい
って感じかな?なんか、回答者によって想定しているゴールが全然違うので様々な回答が得られた(良いのかそれで?)
Switchのプログラミング入門のやつ、VTuberの配信でちょっと見ただけだけど、ほんとの入門向けにはいい感じとは思ったけど、ある程度工学的素養を持ってる人には易しすぎる気がしなくもない気がしなくもない><(?)
オレンジのアドバイスは、ベーマガ世代(1980年代から1990年代前半頃に低年齢からプログラミングを独学で学んだ人々)がたどった道を示してて、オレンジ以外の人はもっと最近のやる気がある人向け(?)のアドバイスっぽさ><
たぶんだけど、オレンジが想定してるのはごく入門レベルで「プログラミングそのものの感覚や楽しさを理解したら自分でさらに前に進むかも><」発想でアドバイスしてて、オレンジ以外の人は、直接的に本格的なゲーム開発に繋がる方向でアドバイスしてる感が・・・><
ガードレールや白線は道路の本質的価値ではないかもしれないが、それらの交通制御における重要性は計り知れない
型は情報や制御の構造を明確に認識するためのツールであると同時に、極めて強力なテストでもあるので、目的に対して本質的に必要かといえばそうでもないけど、同時にソースコードのきわめて重要な (場合によっては本質的な) 価値の一部ではある
型システム、超簡単に説明すると、例えば曜日って、月火水木金土日のいずれかじゃん?><海曜日とかカレー曜日は無い><例えば日時分秒の分って0から59じゃん><(あえて雑に言うと><;)10時65分とかは無い><どういう風にどういう形式でどういう範囲でデータを表現し、どのように扱うかを決めた物を型って言う><
曜日型であればカレーが入ってる心配をしなくていいし、カレーを入れてはいけない><型が無い、あるいは型がゆるい環境では、そのデータにどういったものが入ってくる可能性があるのかの制限が無い あるいはゆるくなってしまう><
型システム#とは
それで思い出したけど、昭和の低年齢向けBASIC入門書で、ランダムな数字をなんビット一致するかのヒントで当てるみたいなゲームもあった記憶ある><論理演算の入門がテーマだったかも><(記憶あやふや)
ランダムで生成した数字をノーヒントで当てるゲーム(完全にエスパー)
スロットマシンを作るの、例えば「とりあえず数字が3つ表示される物を作る」、「順番に止められるようにする」、「揃ったか判断するようにする」、「コインの数の概念(スコア)を導入する」、「効果音を出してみる」等々、小さいところから動く状態で遊びながら作っていける><
ゲーム知りたいけど作りたいゲームがない場合、とりあえず要素技術に手を出すのはありだと思う (3Dグラフィックス、並列計算とタスク管理、動的リソース管理、オーディオ、入力の受付と状態管理、ファイルI/Oと通信、などなど)
Pythonがダメというか、プログラミング初学者が型システムを理解できない環境で学ぶのは、型システムへの理解を遠回りさせまくる危険性が高すぎるのでダメ><
ていうか超簡単な入門として、スロットマシン(のようなもの)を作るのもありかも><初心者が超短期間で作れるし、少しずつ機能を追加していく形で作れる><
思考の /dev/null