千本ノック

継続は力なり

ゲーム開発ライブラリあれこれ ~その2~

前編ゲーム開発ライブラリあれこれ ~その1~の続きです。

今回のお品書き

  • TIC-80
  • LOWRES NX
  • Raylib
  • Phaser.io

TIC-80

fantasy computerとのこと。レトロ調ゲームをプレイ、開発するためのプラットフォーム。開発ツールを内蔵していたりするようです。開発言語はLua, Moonscript, JavaScript, Wren, Fennelとのこと。いくつか聞いたこともない言語が混じっていますね。不勉強なことを痛感します。詳しいスペックはこちらを見ていただきたいのですが、画面サイズや音数、ファイルサイズなどを見るとPICO-8に近いのかな?という印象です。(どちらが先発かは調べていないのでインスパイアされたなど順序間違えていたらすみません)。JavaScriptでもかけるというのは良いですね。Web系技術者には敷居が下がりそうです。

LowRes NX

レトロゲーム向けバーチャルゲームコンソールとのことです。開発言語はBasic(2nd generation)とのことです。こちらも環境でありツール群であるようです。Basicはよくわからないので食指が動かないのですがどうなんでしょうね?

Raylib

オープンソースのゲームライブラリです。railib自体はCで書かれたシンプルなライブラリのようですが、ゲーム開発に必要な様々なツールも揃っておりそれらと組み合わせることで様々なゲームを開発することができます。50を超える言語とバインドされているということです(バインドとは?と思いますが...)。ボクの場合はPythonが好きなのでraylib-pyというPythonからrailybの機能を呼び出せるバインディングライブラリを使う形になるようです。「50を超える言語とバインディング」と書きましたが、それぞれの言語のバインディングライブラリは対応しているraylibのバージョンが異なるので注意が必要です。

Phaser.io

JavaScript, TypeScriptで開発できる2Dゲームフレームワークです。ゲーム実装のお作法に慣れる必要があるとはいえ、開発言語がJS, TSとのことなのでWeb開発者にとっては参入しやすいかもしれません。API Documentationも揃っているので開発しやすそうです。ただし、2系と3系で変わる部分もあるのでネット上の記事はバージョンを意識しないといけなさそうです。

前回の投稿からだいぶ間があいてしまい、かつ非常にシンプルなものになってしまいました。これらのライブラリに対応しているデバイスがDevTermということになります。この中でボクはraylibが気になりました。単純に自分がPythonが好きで、Pythonでゲムを作りたいということがきっかけなのですが。今後は少しずつraylibとraylib-pyの紹介をしていきたいと思います。

※余談ですが、文体を敬体に変えました。正直まだ戸惑っています。こういったひとり語りのブログってどういった口調(?)が良いんでしょうね?

ゲーム開発ライブラリあれこれ ~その1~

昨年Indiegogoで出資したDevTermがついに届いた。 ページ下部の「OS, APPs & Development tools」というセクションに様々なアプリケーション、ライブラリロゴが掲載されている。ただ、どれがどういった特徴を持ったものかわからず途方に暮れてしまった。簡単にではあるがそれぞれの特徴を調べてみようと思う。

  • RetroArch
  • DOS Box
  • Godot
  • Love2D
  • PICO-8

RetroArch

"RetroArch is a frontend for emulators, game engines and media players."(RetroArchトップページより抜粋)。エミュレータのフロントエンドということだそうだ。ゲーム開発用ライブラリを探しているので現時点であまり関係ないかも。エミュレータ用フロントエンドとは?という場合はこちらの方の説明がわかりやすいかも。

DOSBox

名前の通りDOS環境のエミュレータらしい。なんだかサイトのデザインも古めかしい。こちらもエミュレータということで現時点ではあまり興味がない。

Godot

devtermのページ上ではGodotだったが"Godot Engine"が正しいのかな?ロゴはロボットのアイコンに”GODOT”だな...よくわからない。 環境でありIDEでありツール群でもあるみたいな。Unityみたいな感じだろうか。開発言語はVisualScript, C#, GDScriptなどとのこと。GDScriptはPythonに近いとのこと。僕は業務でPythonを使うことが多いので良いかもしれない。ただ、かなり機能が豊富そうで初期学習コストはかなり高いかもしれない。

Love2D

オープンソースの2Dゲーム開発用フレームワーク。開発言語はLuaだが、非公式にはいくつかのList系言語、Rustにも対応しているとのこと。Lua使ったことは無いが、ライブラリの開発も続いているようだし十分候補になりうるプロダクトだと思う。

PICO-8

fantasy consoleだそうだ。fantasy consoleとはなんぞや?というかたはfaq参照のこと。コンソールであり、ツール群であり、デザインカルチャーであり、コミュニティであり...つまり全てであるようなことが書いてある。エコシステムとかそういう感じだろうか? 開発言語はLua。ディスプレイサイズが128 * 128の16色、音は4音、カートリッジサイズは32Kまでのように色々と制約がある。レトロゲームの開発を目的とされているのだろうか。他にカートリッジデータをHTML5にエクスポートできる他、Windows, Mac, Linux用のバイナリも出力することができる。 本体(?)価格:$14.49

いくつかのエミュレータ、ライブラリを見てみた。ほかにもいくつかライブラリの記載があったので次回残りを見てみることにする。

オブジェクト指向UIデザイン - 1

これまで何度もUI設計してきたが独学だった。そこで、評価の高いUIデザインの書籍である『オブジェクト指向UIデザイン 使いやすいソフトウェアの原理』を読んでいくことにする。

オブジェクト指向UI、タスク指向UI

オブジェクト指向UI
- 名詞→動詞
- ナビゲーションはオブジェクト(名詞系)を手がかりにする
- あらゆる情報システム、特に作業者による探索や創育工夫が期待されるものについて有効

タスク指向UI
- 動詞→名詞
- まずタスクを選び、次に引数としてオブジェクトやパラメータを指定する
- オブジェクトを選択する必要がない場合や、提携の入力手続きだけを提供する場合にのみ有効

オブジェクト指向UIデザイン p.20より抜粋

思い返してみるとたしかにタスク指向UIの画面設計をしてきたように思う。なぜか? 業務要件、機能要件が「○○できること」と行為や動作によって記述されるからではないだろうか。それをそのまま設計に落とし込んでいては思考停止であると言われてしまうとぐうの音も出ないのだがそういうことなのだと思う。 p.30の言葉「仕事がソフトウェアを作るのではなく、ソフトウェアが仕事を作るのだと考えること。」この一言が心に刺さった。これまでの業務、タスクそのままソフトウェアにしてしまってはただのデジタル化でしかない。デジタルトランスフォーメーションとはデジタル化はもちろんのこと、デジタルの力でこれまでの事業のやり方を大きく変化させ効率化や創造性を向上させることなんだろう。まだ理解できていることは少ないがそういった意識のもと読み進めていきたい。

数年ぶりにブログを解説しました。

こんにちは。

数年ぶりにブログを開設しました。過去にもいくつかのサービスでブログをもっていたことがあるのですが、いずれも長続きせず閉鎖してきました。会社員としても一つ所に定着し打ち込むというよりも転職を繰り返してきた職歴です。まあ、そのお陰でマルチスキルやフルスタックと言われ業界で生き残ってこれたわけですが。そういった長続きせず移り気な人間なのですが、経てきた年数か人生経験からか不定期ですが日記を書くことが増えました。自分なりに思うことが増えてきたようです。また、読書趣味なこともありアウトプットよりもインプットが多かったのですが、アウトプットに対する熱量が年々増えてきているということもあります。

そこで1000ポストと言う目標を思いつきました。ブログ名も『千本ノック』としています。1日1ポスト毎日書いたとしても3年弱はかかります。過去を振り返ってみても3年続けられたものはそう多くありません。果たして何年かかるかわかりませんが日々書き綴っていきます。 千里の道も一歩からということで今日から始めていきたいと思います。

どうぞよろしくお願いいたします。