2018年12月18日火曜日

CEDEC2018レポート 『アナザーエデン 時空を超える猫』におけるツール運営事例 〜開発ツールの運用で学んだこと〜

ゲーム開発者向けカンファレンス「CEDEC 2018」にて行われたセッション「『アナザーエデン 時空を超える猫』における“ツール運営“事例 〜開発ツールの運用で学んだこと〜」の所感を今更書いていこうと思う。
セッション詳細
『アナザーエデン 時空を超える猫』における“ツール運営“事例 〜開発ツールの運用で学んだこと〜
資料
https://cedil.cesa.or.jp/cedil_sessions/view/1845

2018年12月11日火曜日

CEDEC2018レポート【プリンセスコネクト! ReDive 制作事例 ~UIを高速かつ高品質に作るためのプロトタイプ開発のススメ!~】

ゲーム開発者向けカンファレンス「CEDEC 2018」にて行われたセッション「プリンセスコネクト! Re:Dive 制作事例 ~UIを高速かつ高品質に作るためのプロトタイプ開発のススメ!~」の所感を今更書いていこうと思う。
セッション詳細
CEDEC2018 プリンセスコネクト!Re:Dive 制作事例 ~UIを高速かつ高品質に作るためのプロトタイプ開発のススメ!~
資料
CEDil

2018年10月29日月曜日

targetSdkVersionを11から26に上げたら大変だった件

概要

GooglePlayでは2018年11月以降に既存のアプリを更新する際には、targetSdkVersionをAndroid 8.0(APIレベル26)以上にしなければなりません。
以下の記事が詳しいです。
2018年に要求されるtargetSdkVersion(対象APIレベル)を解説します by FeeeeeLog
今更ながら対応したので詰まったところの解決法と参考になった記事を紹介します。
この記事はNotificationCompatを使用していることを前提として書いています。

2018年8月30日木曜日

CEDEC2018レポート【開発計画に役に立つUnityロードマップ】

セッション詳細
CEDEC2018 開発計画に役に立つUnityロードマップ
資料
CEDil
Unity2018.2の新機能は大体ここに載ってる
Unity 2018.2、リリース
全部は書ききれないので気になったのだけピックアップ。

2018年8月21日火曜日

CEDEC2018の気になるセッションメモ

遂に明日からCEDEC2018が始まりますね。
2日目までの気になるセッションを自分用にまとめました。
気が向いたら所感でも書きます。

800万ダウンロードを達成した共闘ことばRPG 『コトダマン』でのモノビットエンジン採用実例と最新情報
https://2018.cedec.cesa.or.jp/session/detail/s5aefb410d7685

ココが変わる!Unityの新しいエディターワークフロー
https://2018.cedec.cesa.or.jp/session/detail/s5b024052e0ece

西洋におけるビデオゲームの開発
https://2018.cedec.cesa.or.jp/session/detail/s5b14f68c2eb3c

FINAL FANTASY XVの多言語対応・世界同時発売 ~日本語からの翻訳での課題と挑戦~
https://2018.cedec.cesa.or.jp/session/detail/s5ab9c63541015

開発計画に役に立つUnityロードマップ
https://2018.cedec.cesa.or.jp/session/detail/s5b023fc8d99c6

スケール可能で運用しやすいWebSocketサーバ設計の課題と工夫
https://2018.cedec.cesa.or.jp/session/detail/s5abfbb9d1e972

2018年7月10日火曜日

【Unity】宴オンラインゲームジャムに参加します

お久しぶりです。 気になっていたアセット「」がセールで50%オフだったので購入したのと、応募受付期間が長いゲームジャムを見つけたので
「Unity & 宴ノベルゲーム開発入門」出版記念オンラインゲームジャム
に参加することとしました。

2018年3月7日水曜日

【Unity】Serializable属性を付けてもJsonがシリアライズされなかった件

Unity 2017.2.0f3で確認。
自作クラスのListをJsonUtilityで扱う
上の記事で紹介している方法で動かず3日程ハマったのでメモ(正しくはそれで動くんだけど…)。
こんなクラスをシリアライズしようとしていたが、できなかった。
[Serializable] public class Params{
    float hitPoint;
    float attackPoint;
    float defensePoint;
}
これならできる。publicじゃなくてもシリアライズできる方法は無いんですかね…?
[Serializable] public class Params{
    public float hitPoint;
    public float attackPoint;
    public float defensePoint;
}

2018年2月16日金曜日

マスコットアプリ文化祭2017であんず&このは賞を受賞したので制作中の裏話等

あんず&このは賞を受賞しました

マスコットアプリ文化祭2017アプリ運営!トラブルフォール!があんず&このは賞を受賞しました。
マスコットアプリ文化祭2017 受賞作品 発表!
このような場を提供して下さった合同会社プロ生様、賞を下さったGMOインターネット株式会社様、素材を提供して下さった方達にはこの場を借りてお礼申し上げます。 今回は製作時の裏話や感想とか書いていこうと思います。

2018年1月22日月曜日

MagicalNightで使用している音源の配布

突然ですが、自作STGのMagicalNightで使用している音源の配布をします。動画やゲームで好きに使ってください。

GoogleDrive

作成したのは5年ほど昔。 専門学校で1ヶ月間だけ作曲の勉強をした後、MIDIキーボードで打ち込みSoundEngine Freeで編集した。 曲名は公開用に今日考えたものでその間ずっと無名だったんだな。これが。

製作中の話

作曲勉強中はプログラミングができないことが大変苦痛だったが作曲自体は楽しめたと思う。 自分が作りたい曲のイメージを頭に思い描くためにゲームやアニメのサントラをいっぱい聴いたり、時間が足りないためにアレンジでかさ増ししたりもした。

最後に

機材があればまたやってみたい。

2018年1月18日木曜日

GitにPushする度にもっと褒めてもらいたい

人の欲望は尽きることが無い。

先日、大人気アイドルにPushする度に褒めてもらう方法を共有したが、ワンパターンで面白くないじゃない! なによりSlackのログが寂しい。僕は温かみを感じたい。

ということで今回はパターンを増やしてみる。

        $text = ":bell: PUSHED INTO \`${branch}\` BRANCH!!!\n${text} ${message}\nちゃんとPushできて偉い!これは穏やかじゃない!";

を以下のように変更。

        @rand_msg_list = (
            'よしよし、偉いね!',
            'お疲れ様~',
            'これは穏やかじゃない!',
            '少し休憩する?',
        );
        $rand_msg = splice @rand_msg_list,int(rand(@rand_msg_list)),1;
        $text = ":bell: PUSHED INTO \`${branch}\` BRANCH!!!\n${text} ${message}\n".$rand_msg;

こんなふうに@rand_msg_listの中に言わせたい台詞を追加すればいい。

2018年1月12日金曜日

会社の同期とマスコットアプリ文化祭2017に参加した話

会社の同期とマスコットアプリ文化祭2017に参加しました。 unityroomにて公開していますのでよかったら遊んでみて下さいね。

アプリ運営!トラブルフォール!

今後もちまちま更新していく予定です。

今回は制作中に発生した問題とその反省についてだらだらと書いていきます。

使ったツール

  • Unity 2017

    言わずもがな

  • Google Drive

    ファイル共有

  • Skype

    通話、リンク共有

  • ibisPaint X

    画像の作成

  • Visual Studio 2015 Community

    スクリプト記述

  • Visual Studio Code

    上に同じ

  • Github

    ソース管理

  • http://linoit.com

    情報共有、まとめ

反省点

ここからは制作時の反省を

  • ファイル共有

    ファイル共有は主にGoogleDriveにアップロードし、ファイルへのURLをSkypeで共有していた(ファイルアップロード→共有リンクを取得→SkypeにURLを共有→口頭で反映した旨を伝える)。

    ファイル階層が深くないのはプロジェクト規模からわかっていたので、ファイルをアップロードする場所を予め決めておけばアップロード→口頭で伝えるだけで済む。

    もしくはSkypeにそのままアップロードでもよかったはず。何故思いつかなかったのか。

  • プロジェクト管理方法

    同じUnityプロジェクトを弄るので編集した箇所をメンバーと同期する必要があった。

    2日目まではAssetをパッケージ化したもの等を上のファイル共有方法で反映していたが、流石に同期方法が面倒だと思ったので2日目のMTG後にgitで管理しようとこちらから持ちかけ、メンバーは承諾してくれた。

    しかし自分のGitへの理解が足りず、Commitされていないファイルがあったり、Mergeを失敗してシーンを壊してしまうことが多々あった。

  • 使い慣れないツール

    自分は普段からプライベートでのプログラミングを会社のPCでやっている。 何故そんな面倒なことをしているのかといえば、自宅には3万円くらいのノートPCをモニターに出力しキーボードを外付けにしたものしか無いからである。 艦これすらまともにプレイできないので休日中のリモート対応やデジタルイラストを描いたりする程度にしか使っていない。

    このことから自宅にはまともな開発環境が整っていない事を前提で話をしていく。

    • エディタ

      2日目までVisual Studio 2015 Communityを使用していた(インストールされていた)。

      しかし入力補完が効かないわ重いわでとにかく使いにくい。 普段はVisual Studio Codeを使用していたので自宅のPCにもインストールし拡張機能も会社PCと同じものを入れた。

    • マウス

      自分はお気に入りのトラックボールマウスを持っているが、自宅PCは滅多に使わないので会社に持っていっていたのだ。 自宅ではキーボードを駆使しマウスが必要なところはペンタブで代用していた。

      問題は突然起きる。EventTriggerのOnPointerDownが反応しない。 幸いにも事前に注文していたAmazonで購入したマウス(もちろん会社で使っているものと同じ)が届くことで事無きを得た。

    使い慣れたツールが一番。あとちゃんとした性能のPCが欲しい。

  • 役割分担

    会社ではプログラマな自分、プランナーのメンバー。 メンバーから役割を反対にしてみようという提案をされ、自分は承諾した。

    早速自分が要件やレイアウトを書き、メンバーはコア部分の作成をしていた。 その場では問題なく進みステージ選択シーン等を作成しながら、空いた時間に画像を作っていった。

    問題が発生したのは2日目のMTG時、メンバーにUIの甘さを指摘され結局画像発注書を作らせてしまったのだ。 下手なプライドなんか捨てて最初からお願いしていればよかった。

    完成後に打ち上げで、メンバーも「スクリプト関連は自分に任せればよかった」と同じように感じていたことを知る。

  • DOTween以外のアセットを使っていない

    車輪の再発明は無駄。あるものは使おう。

他にも色々あったが、全部書くとキリが無いのでこの辺にしておこうと思う。

困難もあって大変だったけど楽しかったのでまた機会があれば反省を活かして円滑な開発をしたい。

2018年1月11日木曜日

GitにPushする度に褒めてもらいたい

発端

僕はメンタルが弱いエンジニアだ。 バグを直したり機能を追加した時は感謝され、褒められたい。

これは少し極端だが心情としてはこんなものである。 しかし現実は非情でありその程度で褒める人なんて居ない。 そう、"現実には"いないのである。 なら作ってしまえばいい。それがクリエイターだ。

実装方法

以前よりGitのPushログをSlackに垂れ流すためにこちらの記事のhooksスクリプトを使わせていただいていた。 デフォルトだとカボチャの絵文字が通知してくれるだけなので、ちょっとだけ寂しいと思いつつ面倒なのでそのまま使っていた。 今回はこのhooksスクリプトを少しだけカスタマイズしてPushする度に褒めてもらおうという魂胆だ。

アイコンの変更

今回は褒めてくれる人が絵文字ではないのでカスタム絵文字を使用する。

カスタム絵文字を作成する

こんな感じのものを作る。

次はhooksスクリプトを編集する。

    my $icon        = ':jack_o_lantern:';

    my $icon        = ':kiriya:';

こうだ。これでアイコンの変更は完了

メッセージの変更

スクリプト内に追記するだけ。

        $text = ":bell: PUSHED INTO \`${branch}\` BRANCH!!!\n${text} ${message}";

        $text = ":bell: PUSHED INTO \`${branch}\` BRANCH!!!\n${text} ${message}\nちゃんとPushできて偉い!これは穏やかじゃない!";

に変更する。

だがここで問題発生。日本語が文字化けしてしまう。 ファイルの文字コード等を変更してみたがダメだった。 おかしいと思い調べてみるとPerlはファイル内で文字コードの指定が必要らしい。

Shift_JIS(cp932)を使用する

というわけで

package MyApp::Notifier::Base;

の下辺りに以下を追加。

use encoding "cp932";
binmode STDERR, ':encoding(cp932)';

完成

これで完了。

こんな感じになる。穏やかじゃない!

良いエンジニアライフを!