投稿

ラベル(書籍)が付いた投稿を表示しています

Beginning Android Games(Android ゲームプログラミング A to Z)その 2

イメージ
前回の記事 その 1 の続き。 前回は本( libGDX の創始者である Mario Zechner 氏の著書“ Beginning Android Games ”(邦題は『 Android ゲームプログラミング A to Z 』))の 7 章の内容がベースだったが、今回は 8 章の内容がベースになる。 7 章では OpenGL ES 1.x そのものの使い方の解説(インプット)に主眼があったのに対して、8 章では「OpenGL そのもの」というよりは、いよいよ「OpenGL を使って」様々なグラフィックス表現を実現する、アウトプットの段階になる。 前回の記事では、Mario Zechner 氏のサンプルプログラムと同じ結果を実現するために、最近の Android プログラミングの事情に合わせて、Kotlin と最新の Android API をベースとし、さらに OpenGL は 2.0 に準拠するため自前のシェーダーを用意して、自分流のサンプルプログラムとライブラリーを構築した。 Game クラスと Screen クラスの構造、そして OpenGL をグラフィックスエンジンとして使用するための GLSurfaceView.Renderer クラスを用意し、その他のファイル入出力やサウンド、タッチ入力などの部分は、Android の API をそのまま使えばいいだけじゃないかということで、サンプルプログラム化、ライブラリー化の対象外としていた。 しかし、8 章では、タッチ入力をサンプルプログラムで使用するので、これだけはどうにかしなければならない。もちろん、Android プログラミングのタッチ入力に熟達している人ならば問題ないが、タッチイベントは独特のノウハウがあるので、普通はかなり面倒な代物である。本の 8 章のサンプルプログラムの側では、3 〜 6 章の過程で用意したライブラリーのタッチハンドラーがあり、そのタッチハンドラーから得られるイベントによって動作するように記述されているので、タッチ入力に関しては、この 8 章の個々のサンプルプログラムで直接扱うよりは、相当するタッチハンドラー用のクラスを用意して対応するのが無難である。 TouchHandler( 本家 ):本はかなり古い時代の Android API を基準としてい

Beginning Android Games(Android ゲームプログラミング A to Z)その 1

イメージ
Android を始めとするマルチプラットフォームの Java 用ゲーム開発フレームワーク libGDX の創始者である Mario Zechner 氏の著書“ Beginning Android Games ”(邦題は『 Android ゲームプログラミング A to Z 』)だが、原著は 3 版が 2016 年、初版の日本語訳版は 2011 年に出版されたきりであり、いずれにしても、最新の Android API からは隔絶した内容のものとなってしまっている。 初版は 10 年を経過(!)しているので、Android API 以外の内容にも古さは否めないが、とはいえ原著の 3 版にしても、ごく一部の Android API に関する部分を 2016 年の時点に合わせて修正したのみで、本の構成内容自体は全く更新されていない。特に、初版の時点では、OpenGL ES の 2.0 が出始めたばかりで普及しておらず、OpenGL ES 1.x を対象にしたのはわかるが、版を重ねても、OpenGL 2.0 以降に対応させてはいない。1.x と 2.0 以降では大きな違いがあるので、そこを変えるとなると大幅な書き直しになってしまうからだろう。また、本を読む初心者にとっても、2.0 以降のプログラマブルシェーダーについての学習のハードルが加わることになり、Android ゲーム開発全般をテーマとする本書のスケールを上回ることになる。 この本の良さはそういった Android プログラミングで直接使える技術の情報源として以外の部分にあるので、依然として一読の価値ある本だと思う。Amazon ではほとんど送料だけみたいな価格で古本が売られていたりするので、興味が湧いたら是非、一冊入手してみることをお勧めする。 自己流ゲームライブラリーの構築 本書を参考にして、自分流のゲームライブラリーを構築してみようと思う。最新の Android API 対応は当然として、その他の要点は次の通り: 2D OpenGL ES 2.0+ Kotlin プラットフォームは Android 専用とし、インターフェース化してマルチプラットフォーム化を意識した設計にするようなことはしない。例えば、ファイル入出力なども、直接 Android API を駆使し、ゲ

インディゲームサバイバルガイド(一條貴彰)

電ファミニコゲーマーの記事「 Q.ゲーム作りで生きていくために必要なことは? A.まず今の学業や仕事を無計画に辞めないこと。「ゲームを作って生きていく」ための指南書『インディーゲーム・サバイバルガイド』は、「サステナブルにゲーム制作を継続していく」ことに重きを置いた、非常に現実的かつ実践的な必読書だった 」で興味を持ち、その話題の本、一條貴彰『 インディゲームサバイバルガイド 』(技術評論社、2021-11-30)を手に取り、読了した。 1 〜 2 章あたりはそれなりに興味深い内容だった。 3 章以降は、何というか、基本的にパッケージ販売でマネタイズする、まあ王道といえば王道のインディゲーム開発のパターンの人向けの路線なので、Android アプリの広告(+アプリ内課金)を主力にしたい自分のような人間にはやや縁遠い話だった気がする。有料ゲームを販売したい人にとっては、「スマホ -> Steam -> Switch 等のコンシューマー」という流れは黄金パターンなのだろうと思う。その人たちにとっては、スマホゲームは所詮「腰掛け」みたいなもので。もちろん、筆者の一條さん自身もスマホ開発を経験しているし、スマホゲームについても一定のページが割かれており、対談にもスマホを主力にしている開発者が登場している。しかし、基本的に、Steam を踏み台にしてコンシューマーに進出することを最終目的としている人たち向けの熱意に満ちた構成だと思った。 1: 誰でもゲームを全世界へ販売できる時代 「インディゲーム」を“インディーズゲーム”と呼ぶのは恥ずかしい(Linux を“リナックス”と呼ぶようなものか?) itch.io discord.gg/asobu 2: ゲームを「完成させる」ために必要なこと ZIP 圧縮バックアップは NG? (p46) mojimo.jp/game fonts.google.com kotori-voice.jp worldend.illucalab.com/privacy_policy.html www.j-ba.or.jp/category/broadcasting/jba101033 thoseawesomeguys.com/prompts github