Grani Engineering Blog

株式会社グラニはC#を中心として、ASP.NET、Unity、VR開発を行っています。

メモリダンプから.NETのメモリ状態を探りたい

こんにちは、@mayukiです。 以前、このブログにてダンプ解析入門 - Visual Studioでの可視化によるC#トラブルシューティングというスタックオーバーフローのような問題を調査する方法について触れましたが、今回はダンプを元にメモリ周りの状態を見ていく方…

String.InternによるUnityでの省メモリ化ハック

CTOの河合(@neuecc)です。常駐メモリは一ミリでも削りたい……!と思いつつも、それなりに富豪に使ってしまっていて削るのに四苦八苦な日々ですが、削れる箇所はテクスチャなどリソース系だけではない。C#側のマネージドなリソースもまた、それなりに確保して…

ダンプ解析入門 - Visual Studioでの可視化によるC#トラブルシューティング

CTOの河合(@neuecc)です。ある日のこと、アプリケーションが突然死!しょうがないのでサーバーに入ってイベントビューアーを見るとそこには…… 何の役にも立たない情報が並んでいるのであった。こんなんじゃ原因も分からず、どう対処もできない! という時に…

LINQPadでAWS APIを5倍理解する

こんにちは。インフラ部の齋藤(@sri_1128)です。 今回はAWSのAPIを扱うときにLINQPadを使うと何かと便利です。 という話をしたいと思います。 AWS APIの便利さと複雑さ 普段、Windows環境でAWSのAPIを叩くときには、CUIで扱う場合にはAWS Tools for Windows …

C#でTypeをキーにしたDictionaryのパフォーマンス比較と最速コードの実装

C#

CTOの河合(@neuecc)です。今回はパフォーマンス比較もそうなのですが、どちらかというと、それを具体的な例にして、マイクロベンチマークの測り方の説明をしたいと思っています。その具体的な例、題材なのですが、特に動的コード生成においては、Typeをキー…

MessagePack for C#に見るC#でのバイナリの読み方と最適化法

CTOの河合(@neuecc)です。今回は、2017年3月3日に行った社内での資料を公開します。 Binary Reading in C# from Yoshifumi Kawai グラニでは、そして最新作の黒騎士と白の魔王では、私の開発したMessagePack for C#を全面的に採用しています。採用範囲は、ク…

リアルタイム通信におけるC# - async-awaitによるサーバーサイドゲームループ

CTOの河合(@neuecc)です。Game Tech Session ~AWS Summit Tokyo 2017~にて「『黒騎士と白の魔王』の gRPC による HTTP/2 API/ストリーミング通信の実践」と題して登壇しました。参加いただいたみなさま、ありがとうございます。 4 月にリリースした「黒騎…

黒騎士と白の魔王を支えるDatadogを使ったモニタリング

はじめまして。開発部のid:guitarrapc_tech です。 今回、黒騎士と白の魔王を例にモニタリングをどのようにしているのか、どのように考えてサービス監視を行っているのか紹介したいと思います。

Prime31 Ver2.17以降のStoreKitプラグインを利用したiOS課金実装(レシートの取扱について)

はじめまして!アプリケーション開発部の長内です。 突然ですが、UnityでiOSアプリ内課金を実装するとしたら何を利用しますか? Unity5.3以降であればUnity IAPを検討する方もいるでしょう。 Unity IAPであれば、iOS App Store や GooglePlay だけでなく Win…

黒騎士と白の魔王におけるMessagePack-CSharpのUnionの活用事例

こんにちは、アプリケーション部の松田(@kimika127)です。 今回はMessagePack-CSharpのUnionを活用した事例をご紹介します。 MessagePack-CSharpそのものについては neue cc - C#(.NET, .NET Core, Unity, Xamarin)用の新しい高速なMessagePack実装 こちらに…

黒騎士と白の魔王のキャラクターの作りについて

こんにちは、アプリケーション部の松田(@kimika127)です。 Unite 2017 Tokyo講演「「黒騎士と白の魔王」にみるC#で統一したサーバー/クライアント開発と現実的なUniRx使いこなし術」 - Grani Engineering Blog 先日のUnite 2017 Tokyoでも弊社CTOの河合が触…

iOSで音楽を聴いているときにゲームの音楽を止める

こんにちは、開発部の@mayukiです。 今回はUnityでのゲーム音楽の再生とバックグラウンドアプリケーションによる音楽の再生のお話です。 ゲームの音楽とバックグラウンドの音楽、二つの音楽はなぜぶつかり合うのか ゲームではゲーム固有の音楽が流れるのが一…

Unite 2017 Tokyo講演「「黒騎士と白の魔王」にみるC#で統一したサーバー/クライアント開発と現実的なUniRx使いこなし術」

CTOの河合です。Unite 2017 Tokyoにて、 「黒騎士と白の魔王」にみるC#で統一したサーバー/クライアント開発と現実的なUniRx使いこなし術 という講演を行いました。 【Unite 2017 Tokyo】「黒騎士と白の魔王」にみるC#で統一したサーバー/クライアント開発と…

C# 7.0 が使えるようになったので ValueTuple を活用してみた

C#

アプリケーション部の田口(@t_tetsuzin)です。 社内では数少ないF#erとして潜伏中です。 待ちに待った VisualStudio2017 がリリースされましたね! Graniではさっそく C# 7.0 を本番環境に投入しています。 そんな待望の C# 7.0 で使えるようになった新機能…

Google 翻訳 Premium (ニューラルネットワーク適用版) を .NET SDK で使えるようにする方法

C#

こんにちは!VR 部の鈴木 (@xin9le) です。前回 (と言ってももう 1 か月も前ですが…) 私が所属する Grani VR Studio の Project Sonata というサービスについて紹介させていただきました。Project Sonata にはリアルタイム音声翻訳機能が搭載されているので…

Grani VR Studio が「Project Sonata」を発表しました

こんにちは!VR 部の鈴木 (@xin9le) です。本日、私が所属する Grani VR Studio が Project Sonata というサービスを発表しました!このアナウンスができて、開発チーム一同大変に嬉しく思っています。今日はそんな Project Sonata について簡単にご紹介させ…

HoloLens の実機デプロイに失敗する衝撃の理由とその回避方法

こんにちは!VR 部の鈴木 (@xin9le) です。最近 VR 部では Microsoft HoloLens を使った Unity アプリケーションの調査/研究も積極的に行っているのですが、その中でデプロイ周りでハマッたことがあったので、それについてご紹介しようと思います。 とある条…

グラニ x カヤック合同勉強会レポート。ネイティブ開発をテーマに gRPC, Unity, アセット管理, GitLFS について

CTOの河合です。 2/24(金)に面白法人カヤックさんと合同で、弊社の休憩/セミナースペースにて勉強会を開催しました! カヤックさんには以前にもお越しいただいて、その時はVRがテーマだったので、今回はネイティブアプリケーション開発をテーマに、特に弊社…

C#のswitch文のコンパイラ最適化について

C#

CTOの河合(@neuecc)です。グラニもエンジニアブログはじめました!グラニの中心的テクノロジーであるC#関連は元より、Unity関連やUniRx、最近力を入れているVR関連についての情報を色々と発信していけたらと思っています。私自身は、思いたったときが書き時…

CES2017でみた独自コントローラと一人称移動ゲーム

CES2017では、昨年に引き続き各ブースでVR関連製品が展示されていました。目立ったものでも、ワイヤレスPC、ヘッドマウントディスプレイ、センサー、サウンドだけにとどまらず、OLEDなどの部品に至るまで多種多様な広がりを見せています。 今回は私が特に注…

Room-Scale Mobile VR の可能性

2017/1/5 ~ 2017/1/8 に米国ラスベガスにて開催された CES 2017。世界最大の家電見本市と言うのは本当で、非常に多くの製品やデバイスの展示がなされていました。その中でも特に気になったもののひとつが Room-Scale Mobile VR として LYRobotix が展示して…

CES で出展されていた AR メガネから感じる AR の未来

年始の 2017/1/5 ~ 2017/1/8 に米国ラスベガスで開催された CES 2017 では、前回に引き続き今回も VR / AR が一大トピックとして取り上げられていました。個人的に注目していた AR 分野ではメガネ型デバイスが多くブース展示されていました。その中でも特に…