#じゃべめも

じゃべめも棚卸し

早苗さんゲーの学び

バリアエフェクト

エフェクトにパーティクルシステムとポリゴンを交えると、Colorのα制御だけでは対応するのが難しくなるので、 エフェクトスタート、エフェクト終了はアニメーションで制御したほうが応用が利くっぽい effect_start, effect_enabled, effect_disabled, effect_end 4つを用意する

ただし、フェード使った演出はやりたいので、専用のシェーダを何か作った方が良いかもしれない・・・

弾幕ロジック制御に使う弾に、寿命を持たせる場合に、経過秒も管理できるようになってると良い

残りの寿命で振る舞いを変える事ができるので、弾の消失演出ができる。

// 経過秒を使った寿命管理
public float lifespan;
public float age;
public virtual void Start () {
  Destroy(this.gameObject, lifeTime);
}
public void LateUpdate() {
  this.flameTime += Time.deltaTime;
}

GoogleFirebaseメモ

Googleのサーバーレスアーキテクチャ 基本的にAjaxAPIを叩いて、いろいろやってもらう感じ

Hosting

静的資産のホスティング、サーバーが必要そうなもの(DBアクセスとか)は全部サーバーレスで良いから、HTMLとJSとCSSだけ配信すれば良いよねって意識を感じる

RealtimeDatabase

AjaxでアクセスできるRedis

Authentication

Googleに認証周りを委譲する。 認証方式(プロバイダ)は

(サーバーを用意しての)自前で認証機構を用意して、ログインされたことをFirebaseに伝えることもできる。

見栄え周りは、HTMLにフック用divを用意しておいて、そのセレクタAPIに渡すと、ログイン画面に書き換えてくれる。 ログインの成否は、APIからのコールバックを受けるやり口と、ログイン成功時の遷移先を予めAPIに伝えておく事ができる。

VSCode Extension

editor

vscode-icons

ファイルリストにアイコンを表示する

Bookmarks

エディタにブックマーク機能を付与

ブックマークは Win: Ctrl+Alt+K Mac: Command+Option+K

Ctrl+P > bookmark hogehoge でブックマークした物に対するコマンド

Google Search

エディタからGoogle検索。検索結果だけならVSCodeの中で開く

Bracket Pair Colorizer

対応するかっこを色分け


Git

Git History (git log)

Gitの履歴をVsCodeから確認 よく使うのはgit view file historyでファイルの履歴を確認する

GitLens

sourcetreeとだいだい同じことが出来るようになる

Git Project Manager

Gitプロジェクトのフォルダ開くのが楽になる Mac: Option+Command+N


markdown

Paste URL

マークダウンでURLを貼り付けた時に、ページタイトルを取ってくる Win: Ctrl+Alt+P Mac: ^+Option+P

Markdown Preview Enhanced

マークダウンのプレビューをいい感じにする Ctrl+K -> V

markdownlint

マークダウンのLint


Language Supports

  • Slim
  • Sass
  • Better Haml
  • Vagrant
  • C#
  • Debugger for Unity
  • Docker
  • DotENV
  • erb
  • HTML Snippets
  • Ruby

Ruby/Rails

endwise

自動でendを書いてくれる

Ruby Symbols

メソッド一覧表示機能をRubyでも使えるようにする Win: Ctrl+SHIFT+O Mac: Command+SHIF+O

solargraph

rubyのインテリセンス 事前にVSCodeと同じ実行環境でgem install solargraphをする必要がある。

solargraphのインストールミス

brew docter で警告が出るようなら対象のヘッダファイルを消す必要がある。

solargraphでrubyのintelisenceを効かせようとしたらsolargraphのgem installができない
ログ見るとopensslが無い -> gem install opensslしたらビルドできない
brew側で brew install opensslしてもビルドできない
opensslはどうもeventengineが要求しているようなので、単体インストールを試すもダメ
ビルド環境が悪いと睨む
rbenv経由で、使っているruby2.5.0を再インストール、したらビルドできない。(usign64_t型が無い言われれる)
rbenvのアップグレードを試すもビルドできない。

llvmを入れろと指示があったので試したら成功
rbenvのアップデートを実施
2.5.0を再インストールするも、longlong型が無い言われる。
macのgccを新しそうなやつに差し替え、てもだめ

brew doctor で警告が出まくっている
その中に
  /usr/local/include/stdbool.h
  /usr/local/include/stdint.h
辺りが混じっているので、消し込んでいく

できた・・・
C言語のバージョンアップで追加されたかた情報が、古いヘッダファイルで取り消されていた模様。

Rails

Rails向けのナビゲーションなど 同一Modelに関するファイルの一覧(UserModel表示中にUsersControllerの検索など) Win: Alt + . Mac: Opt + .


Others

codic

エディタ内でcodicを使ったメソッド名作成(和英)

Excel Viewer

CSVファイルを表形式で見れる

VSNotes

VSCodeにメモ用の固定ワークスペースを登録できる感じ。 Grepできないのが残念。Git連携っぽい設定があるが・・・?

rubotyを使ったdiscordbot作り

discordデベロッパポータルでアプリの登録

rubyで簡単discordbot - Qiita

rubotyの作成

r7kamura/ruboty ykzts/ruboty-discord 基本的にはgemの宣言と環境変数への代入だけ 開発環境用にdotenv入れるのも良い

ボットの起動はbundle exec rubotyまたはbundle exec ruboty --dotenv

作成した資産はgithubにPushしておく

herokuへのデプロイ

herokuで自動的にスリープしないようにProcfileを作成する。 HerokuのProcfileの役割 - あかんわ ワーカープロセスとして立ち上げておくので、記述内容はこれ

worker: bundle exec ruboty

heroku上でアプリを一つ用意して、上記で作成したgithubリポジトリと連携させておく(Deploy -> Deployment method) また、合わせて環境変数を用意しておく(Settings -> Config Vars)

独自拡張用rubotyプラグインの作成

Ruboty の Plugin のつくりかた #ruboty - Qiita 上述のruboty本体とは別リポジトリで作成する。 作成したgemをrubotyで読み込ませて利用する。 アップデートした場合は、ruboty側でbundle updateすると、Gemfile.lockが更新されるので再度Pushする。

CKEditor

テキストエディタの共同編集機能はどのように実装されているのか

WYSIWYGエディタについて、CAP定理のうちA+Pを取る時のノウハウだそうな。 CKEditorのサービスを使えば、GoogleDocみたいな共同編集機能を実装できるそうな。 Overview - CKEditor 5 Documentation

CAP定理

CAP定理 - Wikipedia CRDT (Conflict-free Replicated Data Type)を15分で説明してみる - Qiita

分散システム(プロセス同士がネットワークを介して協調するというシステム)において

  • Partition Tolerance: ネットワークが故障しても
  • Consistency: データの整合性をもって
  • Availability: 読み書きが常にできる

というウマイ話は、どうやっても無理という定理

具体例

  • C+A:ネットワークが故障しない限り、整合性をもって読み書きができるシステム 一般的な関係データベース、LDAPNFS など
  • A+P:ネットワークが故障しても、読み書きができる Amazon SimpleDBApache Cassandra - Wikipedia(NoSQL系) 、DNS や HTTP キャッシュなども該当
  • C+P:ネットワークが故障しても一貫性を保つ(ただし使えなくなる) Apache HBase - Wikipedia

Unityのリソース読み込み

今更誰も教えてくれない、Unityにおけるリソース読み込みについての基礎知識 - Qiita

Unityにおけるリソース読み込みのバリエーション

  • Resources.Load
    • 簡易な方法
  • StreamingAssetsからのロード
    • リソースを無変換で保持してくれる
  • AssetDatabase.LoadAssetAtPath
    • Resourcesフォルダ以外の物も読み込める(エディタ専用)
  • AssetBundle.LoadAsset
    • ネットワークに置ける

スマホアクションゲーム雑感

スマホゲーをあれこれやってみて

スマホでアクションゲームの可能性を探して

書く流れ: 一つ一つ書いてる頭の良さは持ち合わせていないので、おおよそカテゴリに分けて書く

縦スクロール

  • Wall Kickers 三角飛びで上に向かうランゲーム。 空中ジャンプで向きを反転できる。 たまに横スクロール面が出てきて、気分をリフレッシュできる。
  • Tower Fortress - Apps on Google Play まっとうなアクションゲーム。これがやたら難しい。 左右移動とジャンプとショットの4アクション。あと壁蹴り。 横にしか撃てないのに敵が上から攻めてくる理不尽。
  • Once Upon a Tower - Apps on Google Play フリック移動のミスタードリラー。 敵への攻撃もフリック。 回避にフリック入力を使うのはよく見かけるけれど、このゲームは全操作がフリックなので、反射的に入力するのが難しい。3面に行けない
  • Cavefall - Apps on Google Play 落下しながら左右の壁を渡るランゲーム 壁を飛び移る時に攻撃判定が出る感じ。もっぱら壁に生えてるトゲを避けるゲーム。 また、空中でジャンプすると向きを変えられる。 反射神経ゲーだけど操作はタップだけなので結構遊べる。 感心したのがクリア条件がランダムで出てくるノートを集めることで、 下手でもひたすらコンテニューしていればステージが解放されていく。やさしい
  • 塔をかける少女~かけあがり殲滅アクション - Apps on Google Play Cavefallを丁度上下反転して、ゲーム速度を遅くした感じ。 対面の壁へジャンプ中にタップするとその場でショットが打てる。アクションというより変則STGみたいなゲーム感。 ショットを打ち続けると息切れして操作が利かなくなるので、頃合いを見て切り上げるHit&Awayなセンスが要る

横スクロール

  • Metal Shooter: Run and Gun - Apps on Google Play スマホ向け2Dアクションとしてはいい線行っている気がする。 全体的にゲームテンポが遅くて、敵の3Way弾でもう難しく感じる難易度、オート射撃もあってかなり遊びやすい。 このゲームテンポは、敵の弾が自機より遅いことに由来しているのかも。 強化要素があって、お金をつかって強化すると敵が倒しやすくなる。 ただ、ライフがやたら低いので、意外とよく死ぬ。1ステージが長くて、クリアできていないのも・・・・ 最近、狭い足場を飛び移るパートが出てきたので、難易度自体は結構高いのかもしれない
  • Yの冒険R - Apps on Google Play 死にゲー。なんというか、コンテニュー時に広告を見せるため、ゲーセン時代の難易度調整が生き返っていることを思わせた。
  • Shadow of Death: Dark Knight Stickman Fighting - Apps on Google Play ソシャゲRPGのゲームパートを横スクロールにした感じ。メイプルとかラテールみたい。 でもこの内容なら指一本で遊びたい気はする。
  • レッドサイレン:宇宙防衛(Red Siren: Space Defense) - Google Play のアプリ アクションなのかはちょっと不明。プレイヤーはジョイスティックによる移動と特殊武器の利用を操作、基本攻撃攻撃は自動照準。 武器が自動照準なので、レベル上げのモチベーションが上がる。MOBAやMORPGと同じジャンルかもしれない 目標が拠点を守る事なので、あまり強くないと、右へ左へと忙しく飛び回る事になる。
  • Sword Of Xolan - Apps on Google Play 妙に遊びやすい近接戦アクションゲー。メトロイドヴァニア、らしい。 敵の挙動に学びが多すぎてもうちょっと深堀したいレベル。 ただ、収集要素?の捕まった人が居る隠し部屋がノーヒントで、探すには片っ端から壁に向かって体当たりを繰り返すのが微妙
  • Super Cat Tales 2: Cute Cat Adventure - Apps on Google Play 左右移動ボタンだけで、ジャンプ、壁登り、三角飛びを実装してるスマホ操作極地みたいなゲーム。猫も可愛い。 まだ操作に慣れてないので、難しい動きしようとするとたどたどしいが、ジャンプからの三角飛びをキメると楽しい。 敵のギミックが未知数なので、もうちょっと深堀したい。
  • Ninja Arashi - Apps on Google Play Shadow of Dethと同じ影絵系デザインのアクションゲーム。しかしやたらステージの絵作りが奇麗で、Shadow of Dethが遊べなくなる。3~4ステージで色んな背景オブジェクトを惜しみなく出してくるのが恐ろしい。 ゲームの内容的には、スピード感の割にやたら難易度が低く感じる。

横ランゲーム

  • Super Dashy Knight - Google Play のアプリ 左サイドタップでジャンプ、右サイドタップでダッシュ攻撃。 思い切ったボタンの大きさに関心する。 ただ、壁に横から当たると一発ミスなのがシビアすぎて難しい あるいは壁と壁の間隔が狭すぎるか。。。 どうも糸通しゲームのニュアンスを感じる
  • 消滅都市2 公式サイト ランゲームフォーマットのパズドラ。 ステージにいろんな色の玉が落ちてるのでたくさん拾うと攻撃できる。
  • NinjAwesome - Apps on Google Play 左サイドでジャンプ、右サイドでショット、下フリックでスライディングや落下攻撃 こっちは壁にぶつかっても死なないけど、その分地形が複雑。 ショットにゲージが設定されていて、撃ちまくれないのが悲しい。 あとスライディングでしか壊せない壁の、スライディング入力タイミングが分からん なんかこう惜しい感じ
  • ダッシュでバトル - Apps on Google Play RPG要素のあるランゲーム。RPG要素は繰り返しプレイを要求するだけの要素に思える。 グリップなどのステータスの意味が分かればまた違うのかもしれない。
  • 新チャリ走DX - Google Play のアプリ 個人的にランゲームといえばチャリ走のイメージ。ずいぶん垢抜けたなぁ
  • WonderCat Adventures - Apps on Google Play ランゲームなのか少し悩む。 プレイヤーはジャンプしかできないけど、基本足場が動くので、結果的にランゲーム。 ドンキーのトロッコ面みたいな。 おかげで、動く足場みたいな、ジャンプするタイミングを計るギミックが使えて、普通のランゲームより遊びやすい。 あと、ガイド用クリスタルの配置がなんか独特。

見下ろし

MOBA

  • #コンパス 戦闘摂理解析システム | スマホゲーム 3DアクションのMOBA やたら操作しにくいけど、相手を射程に入れたら自動攻撃ってシステムは好きかもしれない MAP構成がMOBAというよりFPSっぽい 攻撃スキルがガチャなので、P2Wの色を感じる。マッチングでなんとかなるのかしら
  • Mobile Legends: Bang Bang - Apps on Google Play 現状勝ててるからなんだけど、スマホMOBAに可能性を感じる程度には面白い 装備購入順を事前に設定したり、自動ターゲットの優先順位やマップの広さやら、良い塩梅にスマホ向けにアレンジされてる気がする。 レッドサイレンでもそうだけど、自動攻撃システムは可能性感じる

ミニゲーム

これは・・・記録する意味あるのだろうか

左右タップゲー

プレイ感がらいが~らいが~♪を思い出すので好き - Stick Fight: Shadow Warrior - Apps on Google Play - Dragon Storm - Apps on Google Play

ジャンプゲー

BeatStomperがRezっぽい演出でカッコイイ。基本タイミングを計るゲームなので、優しくなったランゲームみたいなプレイ感 - Beat Stomper - Apps on Google Play - Jelly Jump - Apps on Google Play - Helix Jump - Apps on Google Play