アドフリくん

こんにちは、kazです。

現在開発中のゲームで、ヒントを見たときに動画リワードを出そうということで、アドフリくんSDKを入れたけどこれがまた全然うまくいかない。

これが最初のエラー

長いっ!
とりあえずエラー内容を見ていく…

stderr[
Uncaught translation error: java.lang.IllegalArgumentException: already added: Landroid/support/v4/accessibilityservice/AccessibilityServiceInfoCompat;

already addedということは同じものが複数ありますよ。ということっぽいので
とりあえずandroid-support-v4を削除してビルドしてみる

stderr[
Uncaught translation error: java.lang.IllegalArgumentException: already added: Lcom/google/android/gms/ads/identifier/AdvertisingIdClient;

またか!
今度は別の場所で同じエラーが出たので…
google-play-servicesを削除

これで無事にビルドできました。
文字にするとあっという間だけど解決するの大変だった…

「ユーザ目線」のゲーム開発

yukiです。
現在、弊社新作ゲームアプリとして脱出ゲームを開発しております。

今回のゲームは少人数のチーム体制で、企画から練ったものになりますが、
ゲームの仕様決めに関して、えらく苦戦したのでそのお話をしたいと思います。

ゲームというのは、業務などで使うプログラムと違って、
実用性を追求したものではありません。
業務システムのように、何かを実現するために作るというのではなく、
ただ楽しむもの、面白がるためのものが、ゲームです。

ゲーム開発をするとき、ゲームの「面白さ」を考えていくわけですが、
いくら考えても、チーム内で練っていってもしっくり来なくて、悩んでました。

今思えば、考え方が間違ってたんです。
その頃の自分含むチームメンバーは「自分にとって面白いゲーム」をアイデアとして出そうとしていました。

「面白さ」というのは、主観的なものですので、意見や認識が合わないのは当然のことです。

要するに、「ユーザ目線」というのが圧倒的に欠如していたんですね。
だから、考えれば考えるほどゲームのコンセプトがブレていく。

ゲームは、自分のために作るものじゃなくて、ユーザのために作るものです。
そのゲームはどう面白いのか、誰を面白がらせるものなのか。
ターゲットを見据えなければ、ゲームは開発者の独りよがりなものでしか無くなります。

こういう感覚を得られたのは、いい経験になりました。
とても大切なことを学べたと思います。

日々Unity勉強

初めまして、kazです。

現在Unityを使った、新作のアプリの開発に携わらせてもらいまして、その中で気になったことについて書いていこうかと思います。

 

最初はUnityの衝突判定についての話です。
衝突判定とはなんぞや?という方はブロック崩しを連想するとわかりやすいと思います。
ボールがブロックに当たった時にブロックが消える、ブロック崩しなので当たり前ですが、これも衝突判定があってこその処理になります。

 

Unityでの衝突判定は、オブジェクトにRigidbodyとcolliderのコンポーネントと処理を書いたスクリプトをアタッチするだけ、衝突させるだけならスクリプトもいらないんでめちゃくちゃ簡単ですね。
 

 

Rigidbodyはもちろんcolliderも色々便利で、見えない判定というものも作ったりできます。

colliderのInspectorにある『Is Trigger』の項目をtrueにすると物理演算がされない、つまりオブジェクトをすり抜けるけど衝突判定が取れる状態にできるんです。
これを利用してプレイヤーが特定の位置に到達(衝突)した時にイベントが発生する等のゲームのギミック作りも簡単です。
ただ注意点もあって、この衝突時に呼び出されるコールバックはOnTriggerになるのでOnCollisionでは何も起こりません!(実体験)
ついついやってしまうので気をつけねば・・・

 

またつまづいたこと、気になったこと等あったらあげていきます。
ではまた

「脱出ゲーム」クラス設計の話

はじめまして。yukiと申します。

現在、弊社新作アプリとして、「脱出ゲーム」を開発しております。
その開発状況らしきものを当ブログにて発信していこうと思っています。
今回はクラス設計のお話です。

脱出ゲームでは
「画面上で何らかのオブジェクトをタップした時に何らかのアクションが起こる」
というのが、ゲームの最も基本的な動作となります。

そこで「オブジェクトがタップされた時に呼び出されるスクリプト(以下DefaultController)」を作り、
すべてのスクリプトを「DefaultController」から呼び出されるように、実装をすることに。
そしてタップされ得るすべてのオブジェクトに「DefaultController」を仕込みます。

例えば、アイテムを管理するスクリプト「ItemController」を呼びたい時に、
オブジェクトから直接「ItemController」を呼ぶのではなく、
DefaultController」を介して「ItemController」を呼び出すようにします。

そうすることで、スクリプトの役割が明確になり、実装しやすく
またスクリプトごとにUpdate関数が呼ばれることがなくなるので、動作が軽くなる(かもしれない)。

まだシステム共通部分の実装でしかないので、
本当に動作が軽くなるのかは疑わしいですし、この設計を貫けるのかもわかりません。
何せUnityを触ったことも初めてなら、ゲーム開発に関わることも初めてなので!

ということで、何かの参考になる、というわけではありませんが、
ゲーム開発のとっかかりとしてこういう設計思想でスクリプトを作り始めたよ、というお話でした。

Unity勉強会しました!

本日ブログを担当いたします中川です!

先日1月22日、弊社サプライドと株式会社GeexさんとでUnity勉強会を致しました!

内容としましては、敵を避けて、ジャンプしてゴール地点を目指す3Dアクションゲームを約4時間で制作していただきました^^

image3

image1

 

 

 

 

 

 

 

 

主に具体的なワークショップ内容としましては、

  • Unityの基礎知識の説明
  • オブジェクトの配置
  • プレイヤーのスクリプト制御
  • ナビゲーションを使った移動AI制御

です!

講師は私、中川が担当したのですが皆さん私なんかよりもエンジニア歴が長くて凄いプレッシャーでした><

勉強会サムネ

体験会を終えて、皆さんから「楽しかったです!」「これならゲーム作れそう」などと、感想をいただき、自信を持ってくれたみたいなのでとても良かったです!

 

私のワークショップは「楽しさをモットーに!」をやっておりますのでもし興味がある方がいましたらお気軽にUnity勉強会のご依頼をお待ちしております!

皆さんも是非Unityで楽しくゲーム開発をしてみませんか?

我々は全力でそのお手伝いをいたしますのでどうぞよろしくお願いいたします^^

もしよろしければこちらにお問い合わせくださいませ!

勉強会のついてのご要望はこちらから!

 

最後に受講してくださった株式会社Geexさんとの集合写真です!

image1

皆様ご参加くださり、ありがとうございました!