2018年07月09日

SmileBASIC か pygames か Love2D か

 先日坊とプログラミングの話になった。坊の同級生に、自作ゲームを作っている子がいるらしい。詳細はよくわからないのだが、「QRコードを見せて『みんなも遊んでみてください』と言っていた」とのことなので、たぶんプチコンじゃないかと思う。

 坊も自分でやってみたいらしい。先日自分で Scratch で作った落ちものゲームを見せてくれた。ずっと前にゲーム作りを少し教えてあげた時のプログラムを元にしたものだが、いろいろアイデアが盛り込まれてなかなか面白かった。こうなると、「Scratch の次はどうする?」問題が切実になってくる。

 SmileBASIC は、「Scratch の次の言語」としては、よい選択肢だと思うんですよ。「複数の値を返す関数/手続き」の構文に少しクセがあるぐらいで、他はオーソドックスな構文になっている。最大の問題点は、ハードウェアの制約がきついこと。うちには任天堂のゲーム機はないから、プチコンは使えない。パソコンミニの SmileBASIC に期待していたのだが、実際に手にしてみると、完全に「閉じた」世界になっていることは思いのほかストレスだった。SmileBASIC 相当の処理系が Windows/Mac/Linux のデスクトップで使えるようになれば、よい選択肢になると思うんだけどね。(そう思って DarumaBASIC を作り始めたんだけど、ライブラリを実装するところでエネルギーが切れてしまった…)

 言語自体の将来性を考えると、やっぱり Python なのかな、とも思えてくる。そこで、pygame を Mac にインストールして、少しいじってみた。しかし、どうも Python は「Scratch の次」としてはハードルが高すぎる気がする。ライブラリが充実しすぎていて、何かやりたいときに「どこを探せば欲しい情報が見つかるのか」がわかりにくい。できることがあまり多すぎると、どこから手をつければいいかわからなくなってしまう。これは初心者にはつらい。

 となると、Love2D は悪くない選択ではないかと思えてきた。Love2D の言語は Luajit で、言語としての将来性には若干不安があるけれども、個人ベースで自作ゲームを作る程度の目的なら、さほど問題にはならないだろう。Luajit/Lua は小さい言語なので、「できることが多すぎてわけがわからない」という状況にはなりにくい。個人的には、ループを再開する continue がないのと配列の添字が 1 から始まるのがどうにも好きになれないのだが、その他はまあ普通の構文だと思う。

 Love2D の日本語の書籍って、たぶん存在しないよね? とりあえず、当サイトで書きかけの「LÖVE (Love2D) プログラミング」を、印刷しやすいように編集し直した。これをプリントアウトして、とりあえず動かしてみるところからスタートかな?

Posted at 2018年07月09日 00:16:14
email.png