サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
ニコニコ動画
alwei.hatenadiary.org
Unityを使っている人なら誰でも見たことがあるであろう、MonoBehaviorクラス。 巷ではMonoBehaviourを使うとC#の機能が使えなくなるとか、コードビハインド出来なくてMVCモデル的な作りが出来ないとか、極力MonoBehaviourは使うな!とまで言われたりしています。 私は逆にUnityを使うのにMonoBehaviourを使わないなんてとんでもない!と思っています。 と、いうかMonoBehaviourを使うことがUnityを使う一番の理由になると思ってるくらいに。 その潜在能力の高さを1度知ってしまうと使わないなんて考えられなくなってしまいます。 1.MonoBehaviourの持つコルーチンが超強力 これもう本当に強力。 おもむろに yield return 0; と書けばそのフレームの処理をそこで終了し、次のフレームはそこから処理を再開するのである。 yie
Vimでバイナリ編集をする際にはxxdコマンドを使ってバイナリ表示をさせることになると思いますが、それは単体ではとても使いにくいもので、決して常用出来るものではないと思います。 しかし、現在のVimには直接バイナリが編集出来るプラグイン、vinariseがあります。 github : vinarise vinariseは現在最低限のバイナリ編集機能しかありませんが、xxdコマンドを使うよりも非常に使い勝手が良いです。 今回最先端のVim上で使用出来るバイナリエディタとしてvinariseを紹介したいと思います。 使用時の最低要件 vinariseを使用するには、vinariseのプラグイン自体は当然必要ですが、Pythonインタフェースが必要になります。 Pythonインタフェースについては以下を参考にしてください。 Hack #132: Pythonインタフェースを使う(1) あとはvi
新年初エントリ。 今年に入ってから会社でもアジャイルな開発を実践し始めています。 そのためにアジャイルサムライを読んだり。 アジャイルサムライ−達人開発者への道− 作者: Jonathan Rasmusson,西村直人,角谷信太郎,近藤修平,角掛拓未出版社/メーカー: オーム社発売日: 2011/07/16メディア: 単行本(ソフトカバー)購入: 42人 クリック: 1,991回この商品を含むブログ (257件) を見る アジャイルは魔法じゃなくて普通のこと アジャイルとか言うと魔法の呪文のような開発をしてるのかと思われますが、全然そんなこともなくむしろ普通だろって思うような内容ばっかりです。 アジャイルにおいて最も大切な要素は柔軟な体制作りです。 どのくらい重要かと言うとまずは誰もが対等。 上下関係もなく、言いたいことを全部言う。 まずは空気の通りを良くすることがアジャイルにおいて最も重
何気に初Vim記事。 実はここ一ヶ月ほどで自宅のWindows環境が吹き飛んで(故意に飛したとも言う)殆どのデータを失なってしまいました。 仕方がないので色々と環境を構築仕直したりしているところだったり。 現在はVimの環境を復旧させているところで、とりあえず全部1からいれてみようということでKaoriya版ではないVimでやっています。 そこでVimプラグインの管理をすっきりとさせるために最近人気のVim管理プラグインであるVundleを導入しました。 Vundle導入準備 Vundleを導入するために必要なものがあります。 まずはGitを導入しましょう。今回はWindowsなのでmsysGitを使用しています。 Gitが使えればOKなのでCygwinのGitなどでもOKです。 詳しくは以下の情報を参考にするといいと思います。 Vundle for Windows Vundleをインスト
ゲームプログラマのためのC++ 作者: マイケル・ディックハイザー,三宅陽一郎,田中幸,ホジソンますみ,松浦悦子出版社/メーカー: SBクリエイティブ発売日: 2011/12/21メディア: 単行本購入: 10人 クリック: 232回この商品を含むブログ (12件) を見る三宅陽一郎さん監修の本がまたでたという事で購入。 一部の人にとっては待望のその名も「ゲームプログラマのためのC++」です。 どういう本だったか紹介していきたいと思います。 入門書とEffective C++の間くらいの立ち位置の本 本書は所謂C++の入門書ではないことは間違いありません。 C++の構文を教えてくれるみたいなところは一切なく、様々なノウハウやテクニックを教えてくれる本です。 継承の使い方、const、参照、キャスト、テンプレート、例外、RTTI、デザインパターン、STLなど扱う分野はとても広いです。 そのど
この記事は C++11 Advent Calendar 14日目の記事です。 何がわかりにくいのか C++11から正式に導入される新機能である、move semanticsとrvalue referenceですが、なかなかこれを理解出来ないという人が多いようです。 ちょっと考えればなるほど、と思いますが私が思うにこのわかりにくい最大要因はやはりその名前のせいかと思います。 特にrvalue referenceですが、日本語に訳すと右辺値参照という呼ばれ方をしています。 そもそも右辺値や左辺値という名称はC言語時代の流れでそのまま引き継いでいるものであり、右辺値参照という名称は言わば後付けで名称されたものです。 実際に使用する際に右辺値なのか左辺値なのかを意識している人は殆どおらず、これが余計な混乱を招いているのではないかと思います。 ではコードを書いてみて理解しましょう。 lvalueとr
Vim Advent Calendar 2011の7日目です。 最近流行りのVimとは Vimとは一般的には単なるテキストエディタのはずですが、ここ数年のVimの進化は単なるテキストエディタの枠を越えてVisual StudioのようなIDEのようなものからあらゆる情報を管理出来る統合ツールとなりつつあります。 これはVimと同様にEmacsでも同じ事が言えますが、ここ数年のVimは一部でEmacs以上になっていたりとその進化は凄まじいものがあります。 今日は少しでもVimに興味を持ってもらえるように最近のVimで出来る事を紹介したいと思います。 こんな事が出来るよ! あふ風の高機能なファイラ あらゆるものをソースにインクリメンタルに候補を絞り好きなように実行する Vimの中で完結出来るシェル実行環境 あらゆるテキストを補完する事が出来る高度な補完環境 Linuxのパッケージ管理システムの
ストラウストラップのプログラミング入門 作者: ビャーネ・ストラウストラップ,Bjarne Stroustrup,επιστημη,エピステーメー,遠藤美代子(株式会社クイープ)出版社/メーカー: 翔泳社発売日: 2011/08/10メディア: 大型本購入: 10人 クリック: 283回この商品を含むブログ (52件) を見る日本語正式名称は「ストラウストラップのプログラミング入門」 原著名は「Programming Principles and Practice Using C++」 実はVimテクニックバイブルと同時期に購入していたこの本ですが、なかなかゆっくりと読む時間がなくて全部読み終わるまでに時間がかかりました。 1176ページは伊達じゃないです。こんな本はそうポンポンと読めるもんじゃないです。 だからと言って読む価値がないわけではなくて、むしろこれだけは読んでおけと言わんばかり
Vimはデフォルトでもとても優秀なインデント機能があります。 更にVimには4つのインデントスタイルが存在しており、helpによると以下のようになっています。 'autoindent' 一つ前の行に基づくインデント 'smartindent' 'autoindent'と同様だが幾つかのC構文を認識し、適切な箇所のインデントを増減させる。 'cindent' 他の2つの方法よりも賢く動作し、設定することで異なるインデントスタイルにも対応できる。 'indentexpr' この中で一番融通が利く: ある行のインデントを計算するのにVimスクリプトを実行する。 この方法が有効である(空でない)時にはその他 のインデントは抑制される。 特にCライクなプログラミング言語な場合は、非常に細かいインデント設定が出来るようになっており、'cindent'を設定すればより賢くインデントをしてくれるようになり
Vim使いでかつ、SKK使いというのは絶対数的にも少ないと思われますがそういう人達のためのVimプラグインとして、eskk.vimというものがあります。 eskk.vim もう既に公開されてからそれなりに時間が経っているはずなのですが、とにかく情報が少ない… 私も普段はWindowsでSKKIMEを使っているので、このたび一度しっかりと使ってみようと思い挑戦しました。 基本設定(vimrc) let g:eskk#directory = "~/.eskk" let g:eskk#dictionary = { 'path': "~/.skk-jisyo", 'sorted': 0, 'encoding': 'utf-8', } let g:eskk#large_dictionary = { 'path': "~/.eskk/SKK-JISYO.L", 'sorted': 1, 'encodi
最近毎日のようにOpenGLに触れるようになって色々とDirectXと比較すると違うなぁと思ったりするのでちょっと個人的な主観で色々まとめてみようと思います. ■OpenGL 歴史的背景は置いておくとして,現在のOpenGLはバージョン4.1が最新版で一時期の更新が滞り,DirectXと様々な面で差をつけられていました.その名の通りオープンな仕様で非常に幅広い処理系に対応しており,専らゲーム専門のライブラリというわけではなく,画像処理やCADなどの分野でも使用されている事が多いです.GLSLという独自のシェーディング言語を仕様化し,更にマルチな展開をみせるようになり,組込み用途向けのOpenGL ESとの連携でどんな環境にも耐えられるようになってきつつあります. ■DirectX ご存知Microsoftが作りだしたゲーム特化のマルチメディア処理用API群です.一時期の更新の頻度はOpen
マルチプラットホームライブラリを作ってみた。 ※リンク先pdf 有名なSEGA本の著者、平山さんによる今年のCEDECでの講演内容である。 ゲームプログラマになる前に覚えておきたい技術 作者: 平山尚出版社/メーカー: 秀和システム発売日: 2008/11/14メディア: 単行本購入: 112人 クリック: 3,473回この商品を含むブログ (193件) を見る 内容的には十分読み応えのあるのだが、一部釈然としないところもある。 主に4.9章の「標準ライブラリや言語機能について」というところから。 何故標準が嫌なのか ゲームプログラマはなぜかC++標準ライブラリを使わない。 いや、使おうとする人もいるが何かと理由をつけて使わない。 その理由が大体困ったような内容が多い。 リンク先でも書かれているが、vectorにはpush_back()やerase()がある。 そしてこれは安全性と性能の両
vimshellとはVimプラグインのひとつであり、Vim上でその名の通りshellを使えるようにするプラグインである。 作者はneocomplcacheでも有名なVimmerのShougoさんであり、その他にもとても優秀なプラグインを開発されております。 今回はvimshellを使うことにより、何が素晴しいのかを焦点にあてて説明したいと思います。 vimshellを使用するために 当然プラグインをインストールする必要があります。 ここでは細かい説明は省くとするのでインストールは各自で調べてみてください。 vimshell また、vimshellの動作にはvimprocが必須です。こちらも合わせて導入してください。 vimproc vimshellと連携するプラグイン vimshellはそれ単体でも非常に有用ですが、今回はそれだけではなくneocomplcacheとunite.vimもイン
前回の内容より続きです。 vimshellで実際にプログラムを実行する vimshellの基本機能を理解したところで、実際にコードを書いて実行してみましょう。 今回使用するコードは特に意味はないC言語のコードです。内容には一切の突っ込み禁止です。 とりあえず以下のようなテストコードを用意しました。 #include <stdio.h> int main () { int i = 0; i = 3; if (i == 3) { i = 4; } i *= 2; for (i = 0; i < 5; ++i) { printf("i = %d \n", i); } } なんの変哲もないただのC言語プログラムです。 別に必要ないけどMakefileを書いておいてgccでmakeしましょう。 おもむろにvimshellを呼び出し、makeと入力してビルドを確認します。 MinGWのgccを使ってビ
Vimでコード補完するプラグインと言えばneocomplcacheが有名ですが、さすがにC++の補完はなかなか辛いところがあります。(それでもかなり高機能ですが) そこそこに精度が高い補完を求めるのならOmniCppCompleteを使う手もありますが、これでも限界はあります。 そこでもっと高い精度でのC++のコード補完行うためのプラグインでclang_completeというものがあります。 clang_complete これはClangという静的コード解析ツールを用いてVim上で解析結果を補完に反映させようというプラグインです。 実際のClangはC++などのコンパイラフロントエンドであり、静的コード解析はあくまでその機能のひとつです。 LLVMと共に現在も絶賛開発中でC++11対応なども期待出来るところです。 clang_completeとneocomplcache-clang 実はc
全てのCプログラマが未定義な振る舞いについて知っておくべきこと #1/3 あまりにも「あるあるwww」過ぎて凄く読み応えのある記事.ゲームプログラムは特に速度を優先するために安全性を犠牲にすることがありますが,その結果バグを引き起こしやすいという側面もあります. 未初期化変数の使用 たぶんゲームプログラムにおいて最も多いと言われているバグ発生原因.特にVector系やMatrix系の演算では速度を重視するためにわざと初期化を行っていないという事はよくあります.特にC言語で書かれたコードの場合はスコープ内の最初でしか宣言できないという事もあって,よく変数を使いまわすという暴挙も行われていたりします.一度初期化したはいいものの,再使用時には正しく初期化されずに使用される事により未定義動作を引き起こす事もあります. 大きすぎるシフト ゲームプログラムではよくメモリを節約するために一つの変数に様々
前回更新からとても時間が経ってしまいました。 今年も色々あったんですが、最後に振り返りをしたいと思います。 SNS依存度が極端に下がった一年 まず私自身のことですが、今年はTwitterやfacebookなどのソーシャルネットワークサービスに対する依存度が非常に下がりました。 昨年まではSNSをとても活用していたんですが、SNSを使うほど自分に障害となるものが増えるという認識になりました。 もちろんSNSは便利に使うとすばらしいツールとなるのですが、SNSに依存しすぎると本当にやりたいことができなくなってしまったからです。 あとはSNSの中に依存していると非常に狭い世界の中で起きていることが常識と考えてしまうことです。 気づけば宗教のようなものに知らずのうちに入信していたような感覚です。 ただし、SNS自身は情報を得るためには非常に便利なツールでもあるわけで、今は一線から身を引いて使用する
始めてまともなゲームプログラムっぽいネタかもしれない. え〜,ゲームでよく使われている技術のひとつにタスクシステムというものがあります.ただ呼び方は今ひとつ定着していないらしく,単にタスクと読んだり,ゲームタスク,タスクコントローラ,珍しいところではジョブコントローラという呼び方もあったようです.日本以外では,Actor,GameEntity,GameObjectなどの呼ばれ方でタスクシステムという呼び方はしていないそうです.私はアクターという呼び方が好きですが,あえてここではタスクという言い方で統一しています. ■タスクシステムとは 簡単に言えば汎用的作業をひとまとめにしたものがタスクシステムと言われますが,その中は単なるリストなどで構成される配列やコンテナである事が一般的です.STLを使うならstd::listで実装されたものを使うのが一般的です.もちろん自前のリストやコンテナを使うと
このページを最初にブックマークしてみませんか?
『Ideals and Reality』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く