素振りブログ。

一般でスピーチできる話の素振りのはずなのに、無理な話がほとんどのブログ。

プログラムの話

2021年07月19日 17時56分37秒 | 日記
今週のDr.STONEで、プログラムの話出てましたけど。

マシン語っていうの、多分C言語とは違うんだろうなぁ。

C言語は中学の時、パソコンにハマってたときに覚えた思い出がありますわ。

オリジナルゲーム作りにハマったんですな。
家にパソコンがあったので(白黒でカラーじゃなかったんですけどね)
それでシューティングゲームもどきを作って遊んでたな。

簡単にするのとクリア不能にするのは楽なんですけど、ちょうどよく難しくするのが難しいのよね。
いや、ホントに。

プログラムっていうとなんか難しく聞こえるかもしれませんけど。
私がやってたの、YES/NOの繰り返しと、IFの繰り返し。

ビーム砲のから発射されたビームの座標が、敵のコアの座標と合致した? YES→得点

こんな感じで。構造自体はワケわかって見て見ると単純。

普段ファミコンで何気なくやってるゲームを、プログラムで再現しようとすると、すごい行数のプログラムになって。
素人だと、ガワはそれっぽくても内容的には全然で、近づけようと四苦八苦したり。(弾速速くしたい、敵の攻撃をランダムにしたい、等)

面白かったんですけどね。

それが、いつのまにかC言語ってものを聞かなくなってしまって。
今のようなパソコンになってしまった。

多分、今の方がゲーム作るの楽なんじゃないかと思うんですけどね。
でも、昔一生懸命覚えたものが死語的なものになってる、というのは少し寂しいものがありますな。


5 コメント

コメント日が  古い順  |   新しい順
Unknown (cametan_42)
2021-07-21 08:16:17
> マシン語っていうの、多分C言語とは違うんだろうなぁ。

違いますね。
こんなのです。↓

0x0000000000401130
0x0000000000401131
0x0000000000401134
0x0000000000401138
0x000000000040113f
0x0000000000401149
0x000000000040114e
0x0000000000401150
0x0000000000401153
0x0000000000401155
0x0000000000401159
0x000000000040115a

/* C言語でいわゆるHello, Worldプログラムを書いてみて、そいつをコンパイルした実行ファイルを覗くとこういう数値羅列(この例では16進数表示)になってて、これがマシン語/機械語。
なお、アセンブリ言語とマシン語を混同するケースが多いが、この2つは厳密に言うと全然違う。
なお、このマシン語はIntel CPU向け。 */

> C言語は中学の時、パソコンにハマってたときに覚えた思い出がありますわ。

おお、凄い。
僕は初回遭遇時には挫折しました(笑)。

> それが、いつのまにかC言語ってものを聞かなくなってしまって。

いやいや、立派に現役ですよ。
Linuxって言う僕が使ってるPCのOSはC言語で書かれています。
ちなみにWindowsはC++、MacはObjective Cと言うC言語亜種が使われていますね。
また、今のWindowsのアプリケーション開発用言語はC#と言う、これもC系のプログラミング言語が主流です。
と言うわけで、(必ずしもC言語そのものではないですが)Cを冠したCの子孫はいまだにアチコチで使われてます(ちなみに今のプレステのゲームやNintendo SwitchのゲームなんかはC++で書かれてる例が多いと思う)。
なお、レトロゲームだと、例えばシューティングゲームなんかは当時はCでも「遅い」って思われてて、アセンブリ言語でプログラム書いてた方が多いんじゃないかな。
スーファミ時代、「C言語を使った」あんまり当時無かった例として有名なのは、Mother 2のプログラムでしょうね。これが当時凄く珍しかったC言語でのプログラムと言われています(任天堂の故・岩田社長が開発難航してた状態でヘルプに入って、C言語での開発に切り替えたんじゃなかったかな)。

あとは、C言語は今は「プログラミング言語を書くプログラミング言語」として使われてる例も多く、例えば昨今人気のPython、日本発のオブジェクト指向言語Ruby、とか、現存するプログラミング言語の98%くらいは「C言語で作られてる」って言って良いんじゃないでしょうか。

> 多分、今の方がゲーム作るの楽なんじゃないかと思うんですけどね。

アセンブリ直打ちじゃなくなった、って意味だとラクにはなってますね。少なくともゲーム機では。
ただし、それでもC/C++止まりですね。

例: 任天堂の募集要項
https://www.nintendo.co.jp/jobs/career/kyoto_sec2.html

プログラミング言語では主にC/C++の経験、と言うのが要求されてますね。

> 昔一生懸命覚えたものが死語的なものになってる

と言うわけで、バリバリ現役なんで心配せんでください(笑)。
返信する
なるほど…… (XX)
2021-07-21 12:13:26
>C言語

おお、まだ現役なんですね。
パソコン触ってて「プリント」だとか「ラン」だとか聞かなくなったんで、もう使われて無いのかなと勝手に思ってましたw
まだ、見えないところで現役なんですね。

自分は学校の図書館にC言語の本があったのと、家に「はるみのゲームライブラリ」ってタイトルの、プログラマーがC言語で作った簡単なゲームのプログラムを書いた本があったので、そこから独学で学んだんですよね。
特に、実例示してくれてて、その実例の詳細をC言語の本で理解できたのが理解をはやめたと思うのですよ。

まあ、マジモンのゲームと比較したら「しょうもない」の一言なゲームだったんですが、らしいものが出来たときは嬉しかったですw

あと、勝手に死語的なものになってるのかと残念に思ってましたけど。

よくよく考えたら。

そのときに培った「プログラムを組む」って考え方。
現在はExcelの関数を使った計算プログラムやら、マクロ組むのに役立ってるんで。
別に無駄にもなって無いですわw
返信する
Unknown (cametan_42)
2021-07-21 14:30:18
> パソコン触ってて「プリント」だとか「ラン」だとか聞かなくなったんで、もう使われて無いのかなと勝手に思ってましたw

基本的には、プリントとかラン、はBASIC言語のブツですねぇ。
BASICは確かに使われなくなって久しいですね。
マイクロソフトのVisual Basicとか、ExcelとかWordに搭載されてるVisual Basic for Application(VBA)が唯一実用されてるBASICですよね。

現在では一応、公式にはBASICはISO(国際標準化規格)でFullBASICとして定義されてます(MicrosoftのVB及びVBAはこれには準拠していない独自実装です)。
が、殆ど処理系が無いのが実情で、日本の十進BASICは世界でも例を見ないISO FullBASIC準拠の実装です。

十進BASIC(仮):
https://hp.vector.co.jp/authors/VA008683/


> 「はるみのゲームライブラリ」ってタイトルの、プログラマーがC言語で作った簡単なゲームのプログラムを書いた本

調べてみたんですが、多分これ、BASICの本じゃないかなぁ・・・・・・。分かんないけど。
PC-8001用じゃないですかねぇ。元々C言語は16bitのコンピュータで動かす事を念頭に開発されてて、無いわけじゃないけど、もしNEC PC-8001だとすれば、C言語だとあまりメジャーじゃなかったかなぁ・・・8bitマシンですし。
あとですね、実はC言語標準仕様だと画像とか使えないんですよ(笑)。原則文字だらけの文字しか表示出来ないプログラムしか作れませんし(もちろん、独自仕様拡張とか、あるいは特殊なライブラリを用いれば出来ますが)。
反面、BASICだと、ポータビリティはないですが、当時のパソコンだと絵だ音楽だ何でもござれですんで。その辺が当時のBASIC人気の理由です。

> マジモンのゲームと比較したら「しょうもない」の一言なゲームだったんですが、らしいものが出来たときは嬉しかったですw

いや、出来るだけ凄いですよ。
僕なら挫折しますね(笑)。C言語さえ継続的に挫折中ですし(笑)。

> 現在はExcelの関数を使った計算プログラムやら、マクロ組むのに役立ってる

そうですね、VBA(Visual Basic for Application)はまさしくBASICなんで、過去BASICやってたなら比較的分かりやすいかも。
返信する
にゃるほど…… (XX)
2021-07-21 17:44:23
自分がC言語と思ってたものは、正確にはC言語じゃなかったと。<ベーシック言語
んー、まぁ、独学だからなぁ;

そういやファミコンにもファミリーベーシックとかいうのがありましたわな。
あっちもベーシック言語でゲームが作れたのかなぁ?(パソコン弄りを始めた頃、興味がありました)
返信する
Unknown (cametan_42)
2021-07-21 22:34:57
ハドソン製のBASIC言語ですね。 > ファミリーベーシック
返信する

コメントを投稿