投稿

ゲームとITサービスの違い ~ゲーム固有の大変さと個人製作者の強み~

 現在自作ゲームをsteamで販売するため、レビュー中ですが、次のゲーム作成の計画をはじめました。そこで、ゲーム制作独特の苦しさと、個人製作者の強みに気づいたため、ゲームと、前職で行っていたITサービスの違いについて考えてみようと思います。 ITサービスの特徴 ~コアメカニクスを作る~ ITサービスは、ある作業を、自動化する物です。 一方、当たり前の話ですが、ITサービスを利用する利用者やその利用の経緯等は、我々が生活する世界の中に存在します。 例えばホテル予約サイトについて考えますと、それを使うお客さんはそこに至る経緯を持っています。例えば、友達とスキーをするために、そのスキー場のそばにあるホテルに泊まりたい。また、ホテル側も、自身のホテルの説明や価格、部屋や外観の写真を、自らサイトで登録します。 これらの経緯やホテルの素材、つまりサービスを取り巻く世界は、ITサービス製作者は用意する必要はなく、自然に存在します。 ゲームの特徴 ~コアメカニクスだけでなく、それを取り巻く世界を作る~ 一方ゲームは、プレイヤーが生活する世界そのものと、コアメカニクスの両方を作らなくてはなりません。コアメカニクスは、ITサービスに近い、使いまわしの効くシステムです。例えばゲーム中にホテル予約サイトを作るとしたら、それです。ゲーム内のさまざまなホテルを登録したり、ゲーム内のプレイヤーやNPCが、それを使ってホテルを予約できます。 ところがゲームの場合、コアメカニクスを取り巻く世界自体も作らなくてはなりません。プレイヤーのグラフィックや、予約サイトを見る場面、そこに至る経緯。そして、ホテルの外観や部屋の様子、値段など、すべてゲーム製作者が作らなくてはなりません。 ゲームは世界を作りこんで、ボリュームを出すのが大変 ゲームは、この世界を作る、という部分が大変です。バリエーションを大量に用意、世界を作りこむほど、ユーザーのゲームプレイ時間や満足度は増していきます。NPCやステージ、敵について、さまざまな種類の物を用意します。例えば面白い戦闘ルールを思いついて、そのコアメカニクスを作ったとしても、それで遊ぶための大量の種類のステージや敵が必要です。プログラムはある程度使いまわしの効くように作れますが、世界を構成する大量の絵、音、アニメーション等を作る必要があり、そのコストが非常に大きい...

自作ゲーム「YOKAI RETURN」が完成、販売しました!

イメージ
■自作ゲームが完成! 現在作成中の、自作の2Dソウルライクのゲームが完成しました!  以下steam、dlsiteで販売中です!良ければご購入ください!  ●DLsite    タイトル:YOKAI RETURN    価  格:1100 円    サークル:清盛  (dlsiteは18禁コンテンツが多いせいか、bloggerが  警告を出してしまい、リンクは貼れません。。この作品自体は全年齢向なのですが;) プレイヤーを切り替えることで、キャラクターの育成方針に個性を出しつつも、 様々な武器を使用できる、という特徴を持たせています。  2024年10月~4月に、ゲームエンジンgodotでどういったことができるのか、技術検証をしていました。 2025年5月~12月に、ゲームを作成していました。 ゲーム作成の期間は、およそ7か月だったことになります。 本ブログで紹介してきた内容は、このゲームの作成中に起きたトラブルシューティングの記録でした。  今後もゲームを作る予定なので、共有できそうな情報あり次第、記事を追加する予定です。  ■販売の手続きが大変! とりあえずdlsiteで販売  (2026.2.9:先頭記載の通り、現在はsteamでも発売中) 次は完成したゲームを販売したいです。 steamやitchi.ioで販売しようと思っていました。しかし、手続きがかなり大変ななようです。 特に、steamはドルでしか振込をしていただけないようで、ドルの預金口座、かつ、 ドルを受け取り可能な口座を作るところから、始めなくてはならないようで・・・。  年末ということもあり、口座作成は一旦保留。 steamやitchi.ioでの販売はいずれ行うとして、 とりあえず国内のdlsiteでの販売を目指します。dlsiteであれば、比較的手軽に手続きできるようです。  =>ドル受け取り口座は、Wise、という、旅行等で簡単に通貨変換できるサービスを使用しました。手数料が少ない、とのことで、便利かもしれません。USA以外の国の開発者は、良く利用しているようでした。 ■作ってみて感じたこと ・ボリュームを出すのは大変 これまでプレイヤーとして、20~100時間程度のプレイ時間は、ゲームとして当然のもの、と享受し...

itemlist, TextureRect) 画像のサイズを固定する

イメージ
itemlistで画像をitemとして表示する際、元の画像のサイズによって、大きさが変わってしまいます。しかし、アイテムの絵を作成する際、アイテムごとに絵の大きさが違ってしまうこともあるかもしれません。  例)左上の画像が大きく、他の5個の画像に比べ、大きくなってしまう 固定にしたい場合、itemlistsのインスペクターの、fixed icon scale、でサイズを記入することで、全てのアイテム画像が同じサイズになります。 例)以下で53pxに設定すると・・・  以下のように、画像の表示サイズが等しくなります。 また、単一の画像を表示するために、sprite2Dをこれまで使用していましたが、こちらも、同一のsprite2Dについて、画像の内容をゲーム上の操作に応じて切り替えることがあります。その場合も、画像のサイズにひっぱられて大きさが変わってしまいます。 大きさを合わせたい場合、sprite2Dではなく、TextureRect、を使うと、大きさを固定することができます。 例)以下のように、異なるサイズの画像(上は高解像度で大、下は低解像度で小)でも、texturerectに表示すれば、同じ大きさで表示することができる

aceprite)色変換のスクリプトをwindowsバッチで起動する

 前回、色変換をスクリプトで実行する方法を紹介しました。 ただ、あの方法だと、変換したいファイルを開き、スクリプトを実行、また次のファイルを開いて実行・・・、と、まだ手作業が多い状況でした。 そこで、windowsのバッチファイルからスクリプトを実行することで、以下のような処理をできるようにしてみます。 ①色変換したいacepriteファイルの入ったフォルダを指定 ②フォルダ内の全ファイルについて色変換を実行 以下バッチとスクリプトの内容です。 ■バッチファイルの内容 @echo off echo *** フォルダをドロップして下さい。*** set /p dir="" echo %dir% cd %dir% rem --以下スクリプトパス。使用したいスクリプトのパスを指定すること--------- set script_file="C:\Users\userA\Desktop\desktop\tool\aseprite\Aseprite-v1.3.14.4-x64-Portable\Aseprite-v1.3.14.4-x64\scripts\replace_color_test.lua" rem --選んだフォルダ内のasepriteファイルに対し、スクリプトを実行----------- setlocal enabledelayedexpansion for %%f in (*.aseprite) do ( set fname=%%f set fpath=%dir%\!fname! echo !fpath! C:\Users\userA\Desktop\desktop\tool\aseprite\Aseprite-v1.3.14.4-x64-Portable\Aseprite-v1.3.14.4-x64\Aseprite.exe -b --script-param param_fpath=!fpath! --script %script_file% ) echo 完了しました。 pause exit ■luaスクリプト --バッチからファイルのフルパスを取得 local param_fpath = app.params["param_fpath"] --aceprit...

aceprite)スクリプトで色を変換する

イメージ
  godotではありませんが、ゲームで使用するアニメーション用のドット絵を、acepriteというソフトで作っています。  元々、フルカラーで絵を作っていました。しかし、『都市伝説解体センター』、というゲームで、色を青と赤のみに絞り、その濃淡のみでドット絵を作って作っていたのに感銘を受け(美しく、かつ、色を決める手間がだいぶ省けます)、途中から青と黄色で作るようになりました。  しかし、途中まで作っていたフルカラーの絵の素材は膨大で、その一つ一つのacepriteのファイルについて、一個ずつ色を指定、変換していくのは、かなり大変です。 (同じ敵でも、方向やアクションごとにファイルを作っているため、同じ色変換でも、色を選択する作業が大変です) そこで、スクリプトで色の変換内容を事前に指定、実行できないか、試してみました。 スクリプトはluaというスクリプト言語で書く必要があります。ただ、何か特別な物をインストールする必要は無く、テキストファイルに書いたソースの拡張子を、luaにして、所定の場所に置くだけです。以下手順です。 ■スクリプトの配置方法 https://zenn.dev/ail/scraps/99f60dd6152801 ①以下、file⇒scripts⇒open script folder、をクリック、開いたフォルダにスクリプトファイルを置きます(スクリプトについては後で述べます) ②同様に、file⇒scripts⇒rescan scripts folder、をクリック、acepriteに配置したスクリプトを認識させます。 ③スクリプト名がaceprite内で表示されることを確認 (ここでは後で述べますが、replace_color、というこちらで付けたスクリプト名が表示されます、任意の名称です。①、②の時点では表示されませんが、以下のように、③の時点になると、file⇒scripts⇒replace_color、と表示されます。) ④replace color、をクリックすると、通常であれば、edit⇒replace color、で手動で行っていた色の置換が、自動で、スクリプト内で事前に指定した色について、できます。 ■スクリプトの書き方 以下、公式の記載を参照して書きました。 https://www.aseprite.org/api/com...

aceprite) 斜め30度の線をきれいに書く方法

イメージ
 godotではなく、ゲーム中のドット絵を描くための、acepriteというツールについて、です。isometoic(アイソメトリック)の視点で絵を描いているのですが、以下のように、縦:横=1:2、の線を引くことが多いです(30度の角度です)。 これを引く際、マウスでドラッグして引くのですが、角度が連続的に変わることもあり、若干1ドット分角度がずれる、等で、調整が面倒でした。 本日見つけたのですが、shiftを押しながらドラッグすると、0° ⇒ 30°(1:2) ⇒ 45°(1:1) ⇒ 60°(2:1)・・・、と、離散的に動くので、キレイな角度のみ選択させてくれます。 これでまた作業が楽になりそうです。

aceprite)ドット絵で、斜めの線をキレイに書く(余分な幅を持たせない)方法

イメージ
 godotとは関係ありませんが、acepriteというドット絵作成用のソフトがあり、それでゲーム内のアニメーションの絵を作成しています。 これまで、斜めの線を書くと、以下のように、はみ出るドットが自動でできて、幅が増えているように見える事がありました(以下は1ピクセル幅で書いた物)。 今日見つけたのですが、上部にpixcel-perfect、というチェックボックスがあり、これにチェックを入れて同様の線を引くと・・・ 以下のように、斜めの線がその通りに、はみ出ず、キレイに書けました。 これまで手ではみ出た部分を消して修正していたので、これは便利です、先に知っておきたかった・・・