タグ

ブックマーク / codezine.jp (10)

  • 誰でも無償で利用可能になった、ゲームエンジン「Unreal Engine 4」入門 ~概要とゲーム作りのはじめの一歩

    はじめに ここ最近、Unreal Engine 4(以下、UE4)というゲームエンジンの名前を、ゲーム開発系の記事などで目にする機会が増えてきました。最近では、ストリートファイターVや鉄拳7などの有名格闘ゲームゲームエンジンとして採用されたというプレスリリースも記憶に新しいところです。 このようにプロが利用するUE4ですが、法人のみならず個人でも利用できます。つまり、みなさんが遊んでいるゲームの開発環境と全く同じ環境で、個人がゲーム制作できるのです。このようなことは、以前では到底考えられませんでした。 ここでは、UE4の特徴や、ゲームの作成方法、その後の学習方法までを解説していきます。なお、ここでは、Windows版のUnreal Engine 4.7.3をベースに解説します。 対象読者 3Dゲームを開発してみたい方 3Dグラフィックスを簡単に構築してみたい方 Unreal Engine

    誰でも無償で利用可能になった、ゲームエンジン「Unreal Engine 4」入門 ~概要とゲーム作りのはじめの一歩
  • 速習 Unity 2Dゲーム開発 ~第1回 Unity 2D機能の基礎

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    速習 Unity 2Dゲーム開発 ~第1回 Unity 2D機能の基礎
  • 今からでも遅くない JMSを学ぼう!(前編) 非同期通信の世界へようこそ (1/6):CodeZine(コードジン)

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    今からでも遅くない JMSを学ぼう!(前編) 非同期通信の世界へようこそ (1/6):CodeZine(コードジン)
  • 安全なシグナルハンドラを実装するには ――C/C++セキュアコーディング入門(4)

    UNIXなどPOSIX準拠のOSでは、割り込みや例外を抽象化した「シグナル」と呼ばれる仕組みを用いてプロセスに(非)同期イベントが通知されますが、シグナルハンドラで行える処理には制約があり、これを無視したコードを書くと脆弱性につながる恐れがあります。今回はシグナルハンドラの制約に関するルールを見てみましょう。 シグナルハンドラの制約 UNIXなどPOSIX準拠のOSでは、割り込みや例外を抽象化した「シグナル」と呼ばれる仕組みを用いてプロセスに(非)同期イベントが通知されます。ユーザが[Ctrl]-[C]キーを押してプログラムを中断しようとしたり(SIGINT)、整数オーバーフローが発生したり(SIGFPE)すると、それらのイベントに対応するシグナルがカーネルからプロセスに対して通知されるのです。プログラマは、これらのシグナルを受信した時に特定の動作を行わせる「シグナルハンドラ」を書くことが

    安全なシグナルハンドラを実装するには ――C/C++セキュアコーディング入門(4)
  • 高速な算術圧縮を実現する「Range Coder」

    はじめに 記事では、全体のサイズが最小となる算術圧縮を高速に実現するRange Coder(以下RC)を紹介します。 算術圧縮は、各文字の出現確率が分かっている場合にそのデータを最小長で表現可能な符号法です。各文字に固定の符号を割り当てるHuffman法とは違い、符号化を状態更新とみなし、すべての文字を符号し終わった後の状態を保存することで符号化を実現します。これにより1文字単位の符号長を1bitより細かく調整することが可能となります。 算術符号は圧縮率が高い反面、ビット単位の演算処理が大量に発生するため、符号化、復号化ともにHuffman符号に比べ遅いという問題点があります。今回紹介するRCは、算術符号の処理をバイト単位で行うことで高速な処理を可能にします。 また、算術圧縮については概要から説明します。 対象読者 C++の利用者を対象としています。データ圧縮の基礎を知っていることが望ま

    高速な算術圧縮を実現する「Range Coder」
  • 高速かつ省メモリなbit vector「sucBV」を作る

    はじめに 大規模なデータを扱うアプリケーションでは、速度とともに作業領域量も大きな問題となります。作業領域がメインメモリに収まらない場合、スワッピングが発生し、大幅な速度低下につながります。そのため近年、データ構造は高速なだけでなく、作業領域量が小さいことも求められています。今回紹介するデータ構造は「操作付きbit vector(SUCcinct Bit Vector:sucBV)」です。sucBVは、圧縮索引やSuccinct Data Structureなど、データをコンパクトに表現する際に重要なデータ構造です。STLのvector<bool>と同様に、bit列情報B[0....n-1]を保存します。このbit列情報は前もって与えられ、変更が無いことを前提とします。sucBVは、次の二つの操作を定数時間でサポートします。 rank(p,bit)――B[0...p]中のbit(bitは1

    高速かつ省メモリなbit vector「sucBV」を作る
  • 高速かつ省メモリで文字列を扱うデータ構造「wavelet tree」

    はじめに 大規模なデータを扱うアプリケーションでは、速度とともに作業領域量も大きな問題となります。作業領域がメインメモリに収まらない場合、スワッピングが発生し、大幅な速度低下につながります。そのため近年、データ構造は高速なだけでなく、作業領域量が小さいことも求められています。今回紹介するのは2003年に提案されたデータ構造、wavelet tree(以下「WT」と表記)です。WTは圧縮索引やSuccinct Data Structureなど、データをコンパクトに表現する際に重要なデータ構造です。WTは文字列T[0...n-1]が与えられた時、次の2つの操作を定数時間でサポートします。 rank(p, c)――T[0...p]中のcの出現回数を返す select(i, c)――(i+1)番目のcの位置を返す WTの作業領域量は、文字列をそのまま保存した時の約2倍程度です。 対象読者 C++

    高速かつ省メモリで文字列を扱うデータ構造「wavelet tree」
  • Hadoop、hBaseで構築する大規模分散データ処理システム

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    Hadoop、hBaseで構築する大規模分散データ処理システム
  • pthreadについて(概要・生成):CodeZine

    はじめに スレッド(thread)は、代表的な非同期処理の仕組みの1つで、例えるならプロセスの中で動くプロセスという感じで、軽量プロセス(lightweight process)と呼ばれたりもします。pthreadはPOSIXが仕様化したスレッドモデルで、POSIX仕様を満たしているOS間では基的には移植が可能ですが、個人的な感想では、主にUNIX系OSで使用されているようです。 大変便利なんですが、しかし複数のスレッドを矛盾無く動かす事はとても難しく、またデバックも困難で、作りを誤ると環境次第で動きが違ったりします。有用な実装方法はネット上でもそれ程見当たらず、も少ないうえに英文を強引に訳してるだけの古いばかりで、なかなか理解が困難だと思います。 当レポートはpthreadに関する調査・試行錯誤した結果、躓きやすい箇所、実装依存と思われる箇所等、独断と偏見と誤解とたくさんのサンプル

  • Hadoop、hBaseで構築する大規模分散データ処理システム:CodeZine

    はじめに この連載では、大規模分散計算フレームワーク「Hadoop」と、その上につくられた大規模分散データベース「hBase」の仕組みと簡単なサンプルアプリケーションを紹介します。HadoopとhBaseは、Googleの基盤ソフトウェアのオープンソースクローンです。機能やコンセプトについては、Googleが発表している学術論文に依っています。 これらの学術論文によると、Googleでは大規模分散ファイルシステム「Google File System」、大規模分散計算フレームワーク「MapReduce」、大規模分散データベース「BigTable」、分散ロックサービス「Chubby」という4つのインフラソフトウェアが使われています。 図1にGoogleの基盤技術間の依存関係、そしてそれに対応するOSSの対応関係を示しました。まずは対応するGoogleの基盤技術それぞれの機能や特徴をざっくりと

  • 1