Grani Engineering Blog

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

ダンプ解析入門 - 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 分野ではメガネ型デバイスが多くブース展示されていました。その中でも特に…