Table of Contents
Airse Dev
開発者の個人的な考え
アプリの分離
ai.rseで作っていた一つのゲームは、カード機能をiosアプリに分離しました。ゲームのシンプルな実装を保ちつつ、UIや収益化の分離を図ります。
これをシンプルなカードを集めるゲームとし、集めたカードはアカウントに保存できる、という仕組みです。
また、しっかりしたUIを作るには、ueでは厳しいと感じました。そこで、ai.cardをios/webで作り、プレイヤーのステータス画面などをue web browserで表示することにしました。
[card](pay, UI) --> [at] --> [rse]
ゲーム開発で最初にやること
ゲーム開発の初期手順は、まずは「buildを通すこと、multi-platformに対応すること、store reviewを通すこと」これが一番最初にやるべきことだと思います。
その中で、どう作ればいいのかや、何を作ればいいのかが見えてきます。
buildが通らないものを作ってもどうしようもありません。実際の端末では重くて動かないものを作っても意味がない。ゲームをリリースしたいなら、storeのreviewが通らなければならないし、仮にこれが通らないなら、ゲームをリリースすることはできません。
通常の順序ではなく、その逆でやるのが正解です。
- 作りたいものを作る。しかし、buildは通らない、他のosでは動かない、動作が重い、動作が不安定、審査に通らないもの
+ 確実に動くもののみで構成されたシンプルで軽量な審査に通るもの
ゲーム開発で最初にやることは、「作りたいものを作る」ではなく、そのゲームで1つ自分が実現したいものを見極め、上記を完了させることだと思います。
完成させることが重要
新しく考えた開発の定義
私が最初に目標としたのは以下の3点です。リリース時のversionもこの目標を実現したものになります。通常のゲーム開発とは少し考え方が異なるかもしれません。
- ユーザーのアカウントにデータが保存されること
- アカウントのデータがゲームに反映されること
- 平面世界から惑星世界に基準を変更すること
アカウントを作成する際、様々な方法があります。例えば、既存のサービスからアカウントを作るためのボタンが用意されていることがあります。
Google Sign-In
これは、ログインサービスからemailなどを引き出し、それを用いて新しいアカウントを自身が運営するサービスで作成する処理が含まれています。つまり、自分のアカウントが増えます。
このほうがサービス運営者としては、アカウントを管理しやすいのですが、私は見えないアカウントが増えるのは、いちユーザーとして好ましく思っていません。
できる限り一つのアカウント、そして、運営ではなく、ユーザーが所有するデータとして保存できる形が良いと考えます。
ゲームは、具体的には2つの視点から考えたものになります。
- 今までにないものを作る
- 自分のゲームを作る
個人開発のゲーム作り、「面白い」を最優先にして本当にいいのでしょうか。面白いものは世の中に沢山あり、これはゲームに限りません。また、すべてのゲーム開発者は「面白い」ゲームを作ることを目指しています。
しかし、今の世の中、面白いだけでは、私自身、プレイする気が起きません。それが自分のアイデンティティに直結し、やったことが蓄積される仕組みがないと、なかなか続けられないと思います。
逆に、そういった仕組みがあると、簡単なことでも楽しく遊べたり、続けられたりするものです。
面白いことは、近年ハードルが上がりすぎていると感じます。このハードルを下げる仕組みや仕掛けが必要です。
私は、数少ない個人開発のゲームをプレイする人たちをターゲットにするのではなく、もっと広く、一般層にもプレイしてほしいと思いました。
私には好きなゲームがあります。しかし、「自分が大好きなOOのようなゲームを作る」では、ダメだと思います。それは既にあるものだからです。
自分のゲームにしかないものを作る。そこを目指すということです。自分が本当にやりたかったことはなんでしょう。自分の強みはなんでしょう。
面白くなくても、まず最初は「自分のゲームを作る」でよいと思います。
そして、単純な組み合わせで「面白さ」の実現を目指します。
ゲームアカウントについて
ゲームの開始にアカウントを求められ、しかも、作り方がわからないのは良くないと思いました。
この体験は良くないと考えたので、ゲームアカウントとしてsyu.isのpdsを開放しようと考えています。
これは、ゲームデータの整合性をチェックするserverに機能を加える形で実装しました。
しかし、色々と面倒事も予測されるため、非常に迷っているというのが正直なところ。これがゲームアカウントと言っても、atprotoのアカウントなので、色々と利用できるし、環境も整っています。ですが、やってることとしては、nostrのリレーサーバーの運用に似ていると思うので、こういうことはあまり特別なことではないのかもしれません。
最初は、専用コードだけ発行し、アカウント自体は私が管理することで、特定の機能のみアクセス可能な仕組みを構築しました。
ですが、このような独自実装は非常に良くない。方向性を変更しました。
とはいえ、本来はアカウント運用の負担を軽減するために外部アカウントを使えるようにしたのに、ゲーム運営側がその負担を負うことにもなるというのは、本来の利点(外部サービスの利用)を活かせていないといえるかもしれません。
ゲームはなかなか完成しない
この言葉の裏には色々な意味が隠されている。無駄を省き、要点だけをまとめます。まず、ゲームは完成させようと思えば完成させられます。AIに頼めば、すぐにでも完成します。しかし、そういう意味ではないということ。
なぜゲームは完成しないのか。それは、大きく分けると、面白さと継続、この2つの課題があるからです。
例えば、面白いゲームを作ったぞ、ということで、早速リリースするとしましょう。プレイして5分、面白かった。はい、おしまい。
これだけでも十分すごいと思いますが、しかし、本当に作りたかったのはその体験なのでしょうか。
私が作りたいのは、そういうゲームではなく継続的に遊べて面白いゲームとなります。
これを作るのが難しい。こうした仕組みを作るには、あれも必要、これも必要となり、必要なものが多すぎて、なかなか完成しないのです。
継続的に遊べて面白い仕組み
このゲームが次に目指すところをまとめます。
- アイテムとレベルアップ
- 属性反応
- チュートリアルと限界を見せる
まずプレイヤーはレベルアップの仕組みを理解します。NPCとの会話で、アイテムを取得すると、レベルが上がります。
次に、外に出ます。たくさんの、アイテムが散らばっています。それを集めて、レベル上げをします。
次に、属性反応を実装します。具体的には、属性攻撃をすると状態を付着し、その上に属性を当てると、ダメージが上がったり、効果が発生する仕組みです。
最後に、敵とのバトルのチュートリアルです。これは、その時だけアイのアカウント情報でキャラクターデータを上書きし、このゲームは強くなればここまでのことができる、と見せます。
実際、プレイヤーはそれを操作して、敵を撃破します。チュートリアルとしての解説をゲーム時間を止めならが、挟みます。プレイヤーは、空を飛び、ビームを弾きます。敵に当たると、アイは瞬間移動して、敵の真上に移動し、必殺技を放ちます。この攻撃は自動化です。プレイヤーがカードを持っていると使える技の一つ。敵に大ダメージを与え、消滅させたあと、ここでデータを戻します。レベルが低いと飛行時間も一瞬で終わるため、浮いていられずに地面に落下します。すべて、プレイヤーが操作可能範囲内です。
project
func
page
[ja]
project
asset
- Game Animation Sample Project
- Control Rig Sample
- Stack O Bot
- Nice Interaction System
- SoStylized
- Controller Support
plugin
platform
ref
© syui