しがないエンジニアのブログ

技術的な内容をメモ代わりにつらつら

[Unite2019] 「禍つヴァールハイト」最大100人同時プレイ!モバイルオンラインゲームの実装テクニック

動画・スライド:https://learning.unity3d.jp/3345/ 平井 佑樹 KLab株式会社 稲田 真吾 KLab株式会社 西那 康志 KLab株式会社 学んだ知見 100人同時接続を実現するために オブジェクトの再利用(newを抑える) 同期ずれ 重複した通知は最後の値のみ適用 ア…

[Unite2019] Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~

動画・スライド:https://learning.unity3d.jp/3341/ 小端 みより 株式会社ミクシィ 学んだ知見 Unityサーバを利用することで、 クライアントエンジニアでもサーバ構築が可能 c#で実装できる Unity機能が使える(Animation, Physics, AIなど) プロファイラ…

[Unite2019] 大量のアセットも怖くない!~HTTP/2による高速な通信の実装例~

動画・スライド:https://learning.unity3d.jp/3330/ 竹原 涼 株式会社セガゲームス 山田 英伸 株式会社セガゲームス 学んだ知見 結論:HTTP/2でのダウンロードがおすすめ 講演概要 HTTP/2特徴 stream多重化(TCP) HTTP/1.1は6コネクションくらい HTTP/2は100…

[Unite2019] 『SINoALICE -シノアリス- 』〜 それは最速のゲーム起動 〜

動画・スライド:なし 中原 雄一 株式会社ポケラボ 学んだ知見 ゲーム開始時のロードが重い(データ量が多い、数が多い)場合は、 必要な場面で随時ダウンロードするようにするとよい 起動の高速化 開発のサイクル高速化 API通信料金の削減 UXを工夫すること…

[Unite2019] Google Cloud for Games 〜オープンソースからマネージドサービスへ〜

動画・スライド:なし ハムディ サミール グーグル・クラウド・ジャパン合同会社 ※ スライドが公開されてないためメモ書き程度の内容になっています 学んだ知見 agones k8sを活用したサービスの場合スケールアウトをより負担なくできる open match リアルタ…

[Unite2019] AWS for Unity Developers

動画・スライド:https://learning.unity3d.jp/3248/ 下田 純也 アマゾンウェブサービスジャパン株式会社 Fan Liang アマゾンウェブサービスジャパン株式会社 学んだ知見 1.ビルド時間の調査 アセットバンドルビルド プロセスを並列化してビルドが効果大 ゲ…

[Unite2019] Game Server Services ではじめる サーバー開発運用しないゲーム開発

動画・スライド:https://learning.unity3d.jp/3241/ 丹羽 一智 Game Server Services 株式会社 学んだ知見 Game Server Services(GS2)が目指すもの → 汎用ゲームサーバー 初期費用・運用費用なし 料金は0.02円/API 秒間10万アクセスにも耐えられる SINoALIC…

[Unite2019] 中の人がいない!? 音声対話型AIサービスを使ったバーチャルキャラクターの作り方

動画・スライド:https://learning.unity3d.jp/3235/ 秋永 和計 株式会社NTTドコモ 尾崎 竜二 だるまジャパン合同会社 北川 正義 だるまジャパン合同会社 AI セバスちゃん 学んだ知見 音声認識、自然言語処理、音声合成をすべて内部で行うことで 中の人がい…

[Unite2019] Unityで手軽に使えるAIエンジンailia SDK

動画・スライド:なし 品部 仁志 株式会社アクセル 学んだ知見 ailia SDKを利用することでクロスプラットフォームでのMLモデル開発が可能 モデルをエッジ機器(PC、スマートフォン)に保持できるため、 ネットワークに接続していなくてもモデルの利用が可能 …

[Unite2019] レポートリンクまとめ

今年もUniteに参加したので講演のレポートを上げようと思います 去年のはこちら turgure.hatenablog.com 公式サイト:Unite Tokyo 2019 - Unity DAY1 Unityで手軽に使えるAIエンジンailia SDK 中の人がいない!? 音声対話型AIサービスを使ったバーチャルキ…

mysqlのストレージエンジンの種類について

mysqlのengineってなんだろうと思ったのでまとめてみた。 現在使っているのはInnoDBというものだが、実はいろいろ種類があるらしい。 mysql> show engines; +--------------------+---------+-------------------------------------------------------------…

XMLHttpRequestと後継のfetch APIについて

XMLHttpRequest XMLHttpRequestは、urlを指定してリクエストを送信することができる機能である。 基本的な使い方は以下の様になっている const xhr = new XMLHttpRequest(); xhr.open('GET', 'http://~~~'); xhr.send(); xhr.onload = () => { console.log(x…

javascriptのPromiseやasync/awaitについて

Promise Promiseはjs側で用意されている非同期処理である。 Promise.resolve().then(() => { console.log('1'); return '1'; }).then((result) => { console.log('2'); return result + '2'; }).then((result) => { console.log('3'); return result + '3'; …

mysqlで指定したtableを削除する方法

mysql -h ホスト名 -u ユーザ名 -pパスワード -D test_database -e 'show tables' -s | egrep 'test' | xargs -I '@@' echo mysql -h ホスト名 -u ユーザ名 -pパスワード -D "test_database -e 'DROP TABLE @@'" 参考 mysql - MySQLでテーブルを全て、または…

キャッシュについてのあれこれ

弊プロジェクトでは3種類のキャッシュを利用していて、違いがわからなかったので調査したものをまとめました memcached key-value store型のキャッシュ 主にRDBMSにおけるクエリの結果などを保存しておく 揮発性が高い? from: http://gihyo.jp/dev/feature/…

twitterのOAuth認証ではまったこと

最近twitter APIを使ってOAuth認証しようとしたら、以下のようなエラーが出てハマった。 Callback URL not approved for this client application. これは、callback URLが間違ってるよみたいなこと 2018.6.13以降はちゃんと対応させないとだめになった なの…

Google Cloud Messaging(GCM)からFirebase Cloud Messaging(FCM)への移行(android)

GCM/FCMとは GCMとは、android端末のpush通知をサポートするクラウドサービスのこと しかし、GCMは2019.4.11でサポートが完全に停止する そのかわり、googleは新しくFCMの利用を呼びかけている またFCMはandroidだけでなく、iOSもサポート対応のクロスプラッ…

claspを使ったGoogle App Scriptのローカル開発・自動コンパイル

claspとは claspは、Google App Script(GAS)をローカル環境で開発するためのgoogle製ツールである ローカルで作業できる一番のメリットは、やはりgitとの連携が可能になることだろう しかし、gasはES6には対応しておらず、イマドキのjsのコーディングスタイ…

babelを使ったjavascriptの自動コンパイル

Babel ECMAScript2015 (ES6)やECMAScript7などで書かれたソースコードを一般的なブラウザがサポートしているECMAScript5の形式に出力することができます。 つまり、新しい言語仕様を昔の仕様に落としてトランスコンパイルしてくれるコンパイラ セットアップ …

Node.jsとかnpmについての基礎的な部分

Node.jsとは Node.jsとは、サーバサイド用のjavascript シングルスレッドとか、ノンブロッキングI/Oとか、細かいところは省く(というかそこまで理解してない) じゃあクライアントサイド用のjavascriptは?といえば、それが今まで使ってきていたjsなのだろ…

はてなブログのサイドバーを横に表示する part2

前回の記事で、うまくいかなかったので、その2 gridを使った書き方 #content-inner { display: grid; grid-template-columns: 800px 1fr; } でok ただ、IE(とEdge)に対応させるためには以下のように修正しなければならなかった #content-inner { display: …

はてなブログのサイドバーを横に表示する

【追記 2018/08/16】 次の記事で書いた方法がいいと思います。 この記事で書いた方法だと、ブログtopページでは正常に表示されましたが、 各記事のページに行くとレイアウトが崩れてしまっていました。 プレビューがおかしくなるのも同じ原因でした。 下の参…

gmailで特定のメールのurlを取得する

このメール見て!ってことをやりたかったので 1 . 対象のメールを開く 2 . ポップアップする 3 . URLのth=xxxのth以下のidをコピー 4 . URLをhttps://mail.google.com/mail/u/0/#inbox/xxx (xxxはコピーしたid)にする このリンクを貼り付ければ対象のメール…

androidのpermission

android 6.0から、インストール時にまとめてpermissionを許可する方式から、最初は何も許可せずに使うタイミングで許可を求めさせる方式に変わった。 それについてのpermissionの求め方についてのメモ private final int REQUEST_CODE_WRITE_EXTERNAL_STORAG…

androidでアプリの再起動を行う

AlarmManagerを使うとうまくいった Intent intent = getIntent(); PendingIntent appStarter = PendingIntent.getActivity(getApplicationContext(), 0, intent, PendingIntent.FLAG_ONE_SHOT); AlarmManager alarmManager = (AlarmManager)getSystemService…

gradleやsdkのバージョンアップに伴う変更

以下のようにバージョンアップをしたので、その時の変更点をメモ バージョン変更 gradle 2.2.1 -> 4.4 gradle plugin 1.3.0 -> 3.1.3 buildToolsVersion 23.0.0 -> 28.0.1 変更点 gradleとgradle pluginの対応 最新版にするならandroid studioがよしなにやっ…

.ideaフォルダの.gitignore

調べる機会があったのでここにまとめておきます .ideaフォルダはandroid studioの設定について記述されたもので、ほぼ自動生成されます チーム開発する際には、いくつか共有するのを推奨するファイルもあるため、自分が最終的に作った.ideaに関するignoreに…

はてなブログで数式を表示させる

色々調べても全然わからんかったのでここにメモ 自分の場合は「プレビューしたときに一瞬だけ表示されて消える」という現象だった。 おそらくフォーマットは合っているのだが、 「消える」という部分に対する解決方法の記事がなかった。 解決策としては、「…

[Unite2018] Unityにおける疎結合設計 ~UIへの適用事例から学ぶ、テクニックとメリット~

公式サイト http://events.unity3d.jp/unitetokyo2018/session-lineup.html#session84 講演者 Florian Andreas Gantzert (KLab株式会社) SlideShare https://www.slideshare.net/UnityTechnologiesJapan002/unite-2018-tokyounity-ui 概要 UI 結合 UIアゲイ…

[Unite2018] Unity 2D機能のアップデートとその周辺

公式サイト http://events.unity3d.jp/unitetokyo2018/session-lineup.html#session79 講演者 山村 達彦 (ユニティ・テクノロジーズ・ジャパン合同会社) 京野 光平 a.k.a. ntny (ユニティ・テクノロジーズ・ジャパン合同会社) SlideShare https://www.slides…