タグ

ブックマーク / developer.wonderpla.net (10)

  • 擬似乱数生成アルゴリズム「Xorshift」をC#で実装 - WonderPlanet DEVELOPER BLOG

    今回のエンジニアブログを担当する加賀です。 高速な擬似乱数生成アルゴリズムのXorshiftを紹介したいと思います。 今回のコードはVisual Studio 2010 Pro SP1、C# 3.5で確認しています。 Xorshiftとは Xorshiftとは、その名の通り、XOR(排他的論理和)とシフト演算のみを使用する乱数生成アルゴリズムです。 複雑な計算をしていないので、かなり高速に乱数を生成することが出来ます。 また、生成し続けて再び同じ数が出てくるまでの周期は2128-1と、精度も実用には悪くありません。 C# 実装例 public class Xorshift { // 内部メモリ private UInt32 x; private UInt32 y; private UInt32 z; private UInt32 w; public Xorshift () : this (

    擬似乱数生成アルゴリズム「Xorshift」をC#で実装 - WonderPlanet DEVELOPER BLOG
  • Unityプロジェクトのビルド環境改善 - WonderPlanet DEVELOPER BLOG

    アプリエンジニアの山下です。 プロダクト自体の改善はもちろんですが、開発環境を改善していくこともエンジニアの重要な仕事だと思います。 今回はUnityプロジェクトをビルドしストア提出用アプリ(ipa/apk)を作る上で 起こった問題とその解消方法についてまとめてみました。 ビルド作成時の問題 開発を進めていく上で、現行プロジェクトをビルドしてQAや開発に関わっているメンバーに配布することは多々あります。 しかし開発が進むにつれプロジェクトが膨らんでいき、ビルド手順の複雑化とビルド時間の増大が問題になってきました。 特に手順の複雑化は属人性を高め、ビルド職人がいないとビルドを作れない事態にまで及びました。 一時期ビルド手順書が作られましたが、日々の開発による手順の変化に対応できず、属人化を避けることはできませんでした。 Jenkins の導入 まず属人化解消のため、Jenkinsによる自動ビ

    Unityプロジェクトのビルド環境改善 - WonderPlanet DEVELOPER BLOG
  • 【Unity】AESでデータを暗号化 - WonderPlanet DEVELOPER BLOG

    リニューアル後、2エントリー目、担当の大橋です。 リニューアルに伴った特別なネタを持っているわけでもないので、いつものピンポイントなネタでお送りします。 Unityでデータを暗号化 Unityでなんらかのデータを保存するとき、PlayerPrefsを利用したり、 ファイルに書き込んだりすると思いますが、 ある程度の知識があるユーザーであれば、これらの保存したデータを 比較的簡単に見ることができてしまいます。 そのため、アプリを利用するユーザーには知られたくないデータを保存する場合、 そのデータを暗号化する必要があります。 ということで、今回はAESという暗号化方式でデータを暗号化する方法を取り上げようかと思います。 AESはアメリカ国立標準技術研究所(NIST)が新しい標準暗号として暗号方式を公募し、 Rijndaelという暗号方式がAESとして採用されました。 そういうこともあり、Uni

    【Unity】AESでデータを暗号化 - WonderPlanet DEVELOPER BLOG
  • iOSアプリをビルド無しで再署名の方法 - WonderPlanet DEVELOPER BLOG

    ブログを担当する戸田です。今回はiOSアプリ(iPAファイル)の再署名について紹介していきます。 iOSアプリの開発を行っていると「Apple Developer Program」の証明書にて有効期限が設定されているため、証明書の期限が切れてしまうとiOSアプリを利用することができなくなります。iOSアプリを再利用するには、証明書を更新後に再ビルドを行う必要があります。そのため、ビルドに時間が掛る場合やビルド環境がない場合でも行える方法になります。 iPAファイルを展開する。 「unzip」コマンドで、iPAファイル(sample.ipa)を展開します。 $ unzip sample.ipa Entitlementsファイルを作成 「codesign」コマンドから再署名に必要になるentitlementsファイルを作成します。 $ codesign -d --entitlements :-

    iOSアプリをビルド無しで再署名の方法 - WonderPlanet DEVELOPER BLOG
  • Unityのコルーチンの使い方をまとめてみた - WonderPlanet DEVELOPER BLOG

    今回のエンジニアブログは大橋が担当します。 初登場です。よろしくお願いします。 さて、Unityにはコルーチンの仕組みが標準搭載されています。 コルーチンを使うと、 「処理1」→「一定時間待つ」→「処理2」→「一定時間待つ」→「処理3」 のような一連の処理を1つの関数で直感的に書けます。 ここでは、コルーチンがどういったものかという詳細は割愛させてもらって、 実際の使い方をまとめたいと思います。 動作確認環境 Unity 4.5 C# コルーチンの書き方 コルーチンは、IEnumeratorを返す関数として実装します。 そして、StartCoroutineメソッドで実行します。 StartCoroutineの引数には、実行したいコルーチンの関数名を指定します。 public class Test : MonoBehaviour { void Start () { // コルーチンを実行 S

    Unityのコルーチンの使い方をまとめてみた - WonderPlanet DEVELOPER BLOG
  • iOSでRealmを触ってみよう! - WonderPlanet DEVELOPER BLOG

    今回のエンジニアブログを担当する村田です。 今回はモバイル向けデータベースとして今後熱くなりそうな 「Realm」を触ってみたいと思います。 Realmとは? SQLiteやCoreDataと同じモバイル向けのデータベースです。 エンジン部分はC++で実装されております。 特徴としては iOS(Objective-CとSwiftの両方)とAndroidをサポート SQLiteよりも高速 iOSでの比較 Androidでの比較 Apache 2.0 Licenseの元、オープンソースとして公開 Realmは現在β版としてリリースされており、バージョン1.0に向けて、機能追加・バグの修正などが行われております。β版ということでプロダクトに使う際は、APIが頻繁に変わるものだと心して使う必要がありそうです。 では、iOS版である「Realm Cocoa」に触れてみます。 今回の検証環境は以下のと

    iOSでRealmを触ってみよう! - WonderPlanet DEVELOPER BLOG
  • Androidで4k intro入門 - WonderPlanet DEVELOPER BLOG

    あけましておめでとうございます、エンジニアの成田です。年もよろしくお願いいたします! それでは早速ですが、今回のブログはdemosceneのintroという分野について紹介させて頂きます。 demosceneとは小さいサイズのプログラムを特徴とする非インタラクティブな映像(と場合によっては音楽も)作品を表示するコンピュータアート文化で、中でもintroはその実行ファイルサイズに4kバイトや64kバイトなどの上限を設けたサブカテゴリのことです。 例えば5年前の4k intro作品でこういうものがありました。 もの凄いですよね、このクオリティのものを4kのプログラムで書くというのですからもうエクストリーム・スポーツのようなものです。このElevatedはなんでも4kバイトの制限を超えるためにジオメトリのみならず、テクスチャやBGMを起動時に生成しているとか。 他にも「4k intro」などの

    Androidで4k intro入門 - WonderPlanet DEVELOPER BLOG
  • TegraデバイスでOpenGL ESプロファイリング - WonderPlanet DEVELOPER BLOG

    今回エンジニアブログを担当する小瀬です。 3D開発などを行っていると、GPU側の挙動が見えずデバッグに苦労する事があるかと思います。 XCodeにはGPUプロファイラが付いている事をご存知の方も多いかと思いますが、NVIDIA製のTegra2以降のGPU限定でAndroid上でもGPUプロファイリングができるPerfHUD ESをご紹介したいと思います。 ■導入方法 □ アカウント登録 まずツールキットをダウンロードするためには、NVIDIAの開発者サイトへ登録する必要があります。 以下のデベロッパーサイトの右上にある「Login」から「Create User Account」でアカウントを作成します。 https://developer.nvidia.com/ □ デベロッパープログラムへの登録 その後、アカウント画面から各種デベロッパープログラムに登録する事ができるようになります。Pe

    TegraデバイスでOpenGL ESプロファイリング - WonderPlanet DEVELOPER BLOG
  • Objective-CでAndroidアプリ開発 - WonderPlanet DEVELOPER BLOG

    今回のエンジニアブログ担当の山下です。 フルネイティブなアプリを作る場合、iOSではObjective-C、AndroidではJavaで書くのが一般的です。 OSが変わればAPIも変わりますし、そもそも記述する言語も変わってきます。 いろいろ勉強してみるのも為になりますが、一度書いただけでサクッといろんな環境で動いてくれたら、 開発がとても楽になると思います。 マルチプラットフォームなアプリを作る際、ゲームアプリだとcocos2d-xやUnityといった 選択肢がありますが、なじみの無い言語だったり、デバッグが大変だと感じる方も いらっしゃるのではないでしょうか。 そこでApportableというツールがあります。 これがなんと、iOSアプリのプロジェクトからAndroidアプリを力業で生成してしまうというものです。 UIKitを使ったアプリはもちろんのこと(なんとxibを使ってもOK)、

    Objective-CでAndroidアプリ開発 - WonderPlanet DEVELOPER BLOG
  • C系言語(C,C++,Objective-C,Java)で高階関数を使ってみる - WonderPlanet DEVELOPER BLOG

    はじめまして。エンジニアをしています、鷲見と申します。 今回は高階関数とラムダ式について書いてみようと思います。 高階関数とは 高階関数(こうかいかんすう,higher-order function)とは引数に関数を指定できたり、 戻り値として関数を返せる関数で、関数型言語などで使用されます※1。 高階関数を使用するメリットは、単純な関数を組み合わせることにより、 柔軟性の高いコードを書くことが出来るという点です。 高階関数の例として関数型言語Schemeのmap関数を見てみます。 map関数は、指定したリストのそれぞれの要素に対して同じ関数を適用する関数です。 例えばリストの要素を全て2乗したい場合は以下のように書くことができます。 ; xの2乗を返す関数を定義 (define (square x) (* x x)) ; リストの要素(1から5までの数値)を2乗する (map squar

    C系言語(C,C++,Objective-C,Java)で高階関数を使ってみる - WonderPlanet DEVELOPER BLOG
  • 1