仕事でプログラミングできるような優雅な身分でもなくなったし、ちょっと趣味でゲームプログラミングでもしてみるか。
ゲームプログラミング環境にはなにがあるのか調べてみよう。
Unity
今どきの小規模ゲーム開発で使われるゲームエンジンの代表。本格的な開発でもないのにUnreal Engineは無いだろう。
さわりだけならプログラミング無しである程度作れる。Unityが用意した舞台にオブジェクトを配置して、オブジェクトに自分で書いたコードをアタッチできる。
ゲームを作ることがゴールの人には素晴らしい。開発効率も最高だ。おれ向きではないということを除けば。
おれのゴールは
創世神になりたい
そのゲーム世界の法則は稚拙でも小規模でもいい、全ておれが考えて創りたい。
Unityでちょろっとゲームを作るのは、お釈迦様の手のひらで暴れまわる悟空のよう。
知らず知らずに、Unityが用意したベースを前提としてどう工夫するかの発想に引きずられそう(自分は)。それは自分の考える創世神ではなかった。世界の法則をつかさどる部分で、他者のプログラムに依存しちゃう。シーンやオブジェクトの仕組みがあらかじめ用意されてる時点ですでに。
Unityでは作れないゲームがあるわけではないし、単に「創世神なら根幹は自分で作らなきゃダメだろ」程度の話。
創世神ならOSもコンパイラも自分で作れって?そこは自分のゲーム世界の法則にあまり関係ないので気にしないのよ。
Cocos2d-x
スマホも含めた2Dゲームを作るならかなり良さげなフレームワーク。色々なゲームで使われているのも分かる。
と思ったら2015年が全盛期で、今はネイティブ向けとしてはあまり使われないか。この先各プラットフォームのアップデートにもついていけ無さそう。
Flutter+Flame
flutterはGoogleのSDK。命令型ではなくオブジェクト定義を作りこんでいく宣言型プログラミング。アプリ的UIが主体すぎる。使いづらい。
言語としてのDartは好印象。シンプルでC++やJavaに近い。
ゲーム開発用パッケージのFlameは発展途上で途中で変わりすぎるし情報の蓄積がないし古い情報が役に立たない。無理。
Godot
最近知った。Unityより2D寄りのゲームエンジンか。2Dゲームを作ることが目的の人には良さげ。
MonoGame
これがおれの思い描くゲームプログラミングだよ。
Xbox360(とWindows)が始まりなので、ゲーム進行と描画の分離の仕方とか、画面サイズ決め打ちで作るのに向いてるとか、Windowsライクな使い勝手とか、全てが心地よい。元Microsoft XNAなので情報も豊富。コミュニティも(英語だけど)活発。困ってもググればわかる。
ゲームエンジンではない。プログラマの肩代わりはしない。生産性は上がらない。でもゲームプログラミングを楽しむにはベストポジション。スマホやコンソール機、Linux、Macへの移植性も高い。(サポートしきれないし自分で移植はしないけど)
DirectX Tool Kit
MonoGameと同じ、XNAの後継者。こっちは本家Microsoft。
どっちでもいいけど、コミュニティーとか盛り上がってないし移植性も劣るしなー。
SDL 2.0
生きてたんかいワレ。
iPhoneもAndroidもまだ無いころ、Linuxで遊ぶならコレだった。
MonoGame OpenGL版の中身はこれをベースに利用してる(?)
他にもPygameがPython用SDLラッパだったり、今でも2Dゲームライブラリの基本なのね。
コメントは締め切りました。