KLab若手エンジニアの これなぁに?

KLab株式会社の若手エンジニアによる技術ブログです。phpやRubyなどの汎用LLやJavaScript/actionScript等のクライアントサイドの内容、MySQL等のデータベース、その他フレームワークまで幅広く面白い情報を発信します。

2013年10月

2013年10月ALMレポート(3Dゲームエンジン編)

こんにちはyamada-yです。

ALM10月の発表の一つをご紹介いたします。


発表内容は個人で開発中のマルチプラットフォーム対応の3Dゲームエンジンの解説です。

  • Shader

    • 3DはCPUではなくCoreを多く搭載しているGPUを使用して計算する

    • GPUのクセを使用したチューニングを行う

    • Vertex Shader - 回転や拡大縮小などを行う

    • Fragment Shader - 頂点に色を塗る

  • Math - 高度な数学が必要と思われがちですが高校数学で勉強したことが使えます。

    • Vector

    • Matrix

    • Quaternion

  • Model Loader

Shaderの書き換えを行い3Dモデルの位置・色・拡縮をライブコーディングで変更して見せてくれました。

環境マッピング、ボーンアニメーションの実装を計画中だそうです。


次回のレポートもお楽しみに!

2013年10月ALMレポート(天下一編)

こんにちは、エンジニアの澤です。

10/22に開催されたKLabの社内勉強会ALM(All Layer Meeting)にて、「天下一プログラマーコンテストの裏舞台」についての発表を行いました。

天下一プログラマーコンテストとは?

KLabがAtCoder社と協力して開催しているガチンコの競技プログラミングコンテストです。今年は、8月から予選が始まり9月14日に決勝が行われました。

天下一プログラマーコンテスト2013

それでは、ALMで発表した内容についてご紹介します。


天下一プログラマーコンテストの舞台裏(運営編)

発表者: 2013新卒 ___Johniel

そもそも、競技プログラミングって何?

  • 問題に対する速さや正確さを競う。本コンテスト以外にも、ARC、ACM/ICPC、TopCoder SRMなどが有名。

運営の主なお仕事

  • 原案制作、解答制作、問題文制作、入出力データ制作、本番対応など。
  • 問題原案は、タイトルから、ストーリーから、解法から考える方法がある。
  • 本番対応が、運営のお仕事のおもしろいところ。予選、本戦中に参加者からの質問や、アクシデントに対して対応する。

天下一プログラマーコンテストの舞台裏(問題編)

発表者:2013新卒 澤

天下一プログラマーコンテスト2013決勝で出題された問題を題材に、プログラミングコンテストの基本的な問題の解法について解説を行いました。

「全探索」について

  • 安易だけど、さまざまな場面で使える。

「動的計画法」について

  • サイズの小さい問題の答えを使って、順々に大きい問題を解いていく手法。
  • 全探索できない問題を短い計算時間でとけることがある。
  • コンテストでも、コンテスト以外のプログラミングでも頻出。

解答にたどり着くための考え方について

  • 問題のサイズが小さければ、全パターン試せば良い。
  • 問題のサイズが大きい場合、数字が小さい場合の問題を考えると、その答えや、解き方がヒントになる。

若手エンジニアブログでは、引き続きALMのレポートをしていきます。お楽しみに!

2013年10月ALMレポート(Unity編)

お久しぶりですfukuda-yoです。
KLabでは毎月ALM(All Layer Meeting)という社内勉強会を開催しています。
今回はALMのご説明と2013年10月度ALMの一部をご紹介します。

049

10月はKLabエンジニア特集でした。
その中のUnityエンジニア枠で「Unityダイナミックフォント」の発表を紹介します。

Unityダイナミックフォントとは

Unity4.0から採用されたフォントを動的に生成表示する機能についてです。
以前は縁取りフォントやグラデーションフォントなど、
あらかじめ用意したテクスチャから切り出して表示していました。
Unity4.0からはttfファイルを用意すればフォントを動的に再生することができます。

利用するメリットとして、 
・テクスチャフォントを利用する場合に比べてアプリの容量が抑えられること
・より多くの文字が使えること
・準備が簡単なこと
が挙げられます。

ただしAndroidの一部の端末でテクスチャを再ビルドするときに
レンダリングに失敗する時があるようです。
そのため、テクスチャ再ビルド自体を行わせないよう
事前に第1水準の文字を最大サイズで作成することで回避しています。

フォントデザインの方法について
文字に影を付ける方法や袋文字の作り方なども説明がありました。

来月のALMレポートもお楽しみに!


天下一プログラマーコンテスト2013を開催しました

はじめまして、エンジニアの___Johnielです。

8/3(土), 8/23(金), 9/14(土)に実施された「天下一プログラマーコンテスト2013」のレポートをお送りします。


天下一プログラマーコンテストは、2009年、2012年の実施に引き続き、今回で3回目となるKLab主催の競技プログラミングコンテストです。


※競技プログラミングとは?

与えられた問題に対する回答を生成するプログラムを、より早く正確に作成することを競うコンテストです。


8月の予選(計2回)を通過した上位20名が、9月の本戦で「天下一プログラマー」の称号をかけて競い合います。昨年に引き続き、今年もAtCoder社の協力で開催することとなりました。


このコンテストは、今年4月入社の新人スタッフを中心に6名のメインメンバーで運営しました。

主な活動内容は、予選・本戦で出題される問題や解答の作成や、コンテスト当日の運営等です。

運営スタッフの中には、競技プログラミングの経験者だけでなく未経験者もいましたが、それぞれが創意工夫をおこなうことにより、参加者の皆さんにより楽しんでもらえるような問題作成や当日の運営に励みました。


コチラの写真は、六本木本社の会議室で予選のジャッジに臨む運営メンバーの様子。

直前までテストデータが揃わないなど、冷や汗をかく場面もありました。

今年は、予選A・Bあわせて500名以上の方々に参加していただきました。ご参加いただいた皆さん、ありがとうございました。


続いて、コチラは9/14(土)に実施された本戦の様子。

本選は予選を通過した20名の参加者に、3時間セットのオンサイトコンテストに挑んで頂きました。

尚、当日は解説・ジャッジとしてAtCoder社のchokudai氏にお越し頂きました。


※本戦の結果はコチラからどうぞ。


本戦は全5問の出題となりましたが、それらの難易度を振り返ってみると、どの問題にも正解者がおり、それでいて全問正解者はいない、というバランスの取れたコンテストになったのではないでしょうか。

余談ですが、本戦参加者の中で、コンテスト中に自身のユーザ名を次々に変更していく魅せプレイ(?)をされる方がいて、その度にジャッジルームは沸きました!


✌('ω'✌ )三✌('ω')✌三( ✌'ω')✌ タノシイ!



そして、コチラが本選終了後の表彰式・懇親会の様子です。AtCoder社のchokudai氏から参加者へのインタビューも行われました。




なお、これまでの予選で出題された問題はAtCoder上で閲覧、解答することができます。


また、各問題の解説は天下一プログラマーコンテスト2013webページ内で随時公開していきます。


本選参加者の皆さん、惜しくも本戦出場を逃した皆さん、予選を楽しんで頂いた皆さん、機会がありましたら来年、天下一プログラマーコンテスト2014でお会いしましょう。
 KLab若手エンジニアブログのフッター