コンシューマ向けゲーム開発に携わって結構な年数が経過しました。 これまでは恵まれていたのか、STLを使える環境にいた*1ので特に気にしていなかったのですが、どうやら場所によってはSTLはゲーム開発向きではないらしく使用を禁止される事もあるようです。 おかしいですね。私、STL使ってコンシューマ向けのゲーム作ってきましたけど。 確かにSTLはその特性と使用方法を知らないと痛い目にあいます。特にコンシューマ機のメインメモリ容量はPCに比べて圧倒的に少ないです。その少ないメインメモリ上に実行バイナリやヒープ領域などを展開しなければなりません。メモリ管理に対してシビアになるのは当然で、templateは使用方法によってはバイナリサイズが増大するので使用をある程度制限する事は仕方ありません。 また、std::listや、std::map等は使えば使う程内部でメモリを平然と分断してくれるので、ヒープ領
そういえば先に紹介した本のサンプルコードは 前勤務先が開発していたライブラリを使っている. そんなのがあったなと思いだした. 開発元の会社は私が退職したあと解散してしまい, 製品としてのライブラリもなくなってしまったようだ. 少しはバグとりなどを手伝った身として一抹のさびしさがある. 今は亡きこのライブラリを偲んでみたい. それは C(v1.x)/C++(v2.x) で書かれたノンブロッキングスタイルの通信ライブラリで, libevent に類する イベントシステムと IO を抽象化するレイヤの上に バッファ管理, フレーミング, 多重化, 暗号化, 圧縮, UDP ベースのストリーム実装 と hole punching を実装し, 簡単な RPC もついていた. そのほかにも経路の heartbeat や素朴なリマッピング, 簡易チート対策, 高負荷な暗号化や圧縮だけを別プロセスに切り離
遅くなりましたが、前回の続きです。これで全部です。Appendix の訳で、前回よりも具体的&実践的な内容になっています。 また、yakiimo02 さんの記事で知りましたが、現在 EASTL は EA のゲーム用 WebKit のソースの一部として公開されているようです (このパッケージの EAWebKitSupportPackages/EASTLEAWebKit/local/include/EASTL など)。ライセンスも割と緩めで、使用を考えてみるのも面白そうです。しかし、WebKit をゲーム用に移植する、というのもすごい話です…。 Appendix この Appendix には、ドキュメント本体の参考資料が含まれ、多くの場合、ドキュメント本体で触れた内容の詳細を解説している。話が本筋から外れないようにするため、ここに分離している。 1 - (removed) 2 - A debu
南関東の「いろんなところから富士山が見える」状況に驚きつづけている 大阪から東京に引っ越して30年以上経つが、じわじわと蓄積されてきた驚きがついに閾値を超えたので筆を執った次第である。正確には「ポメラ DM250を起動してmenuキーを押して新規作成を選んだ」のだが、ポメラを持っていなかったら、さらに驚きが蓄積されていないと…
(2016/02/10 追記: EASTL は長らく EAWebKit の一部としてライセンスが不明瞭なまま公開されていましたが、この日 BSD ライセンスで正式に公開されました https://github.com/electronicarts/EASTL) 若干古いものですが、2007 年に発表された、Electronic Arts によるゲーム開発向けの改良を加えた STL、"EASTL" の仕様。 http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2271.html 仕様だけで実装が公開されてないのが非常に残念なのですが、それは別として、何故こんなものが必要なのか、どういう事情でこの機能が盛り込まれたのか、といったゲーム開発現場の事情が細かく解説されていて、とても参考になります。特に、既にある程度 C++ に習熟してい
http://d.hatena.ne.jp/Isoparametric/20100712/1278898618 id:Isoparametricさんが面白いスライドを投稿されていたので、思ったことをつらつらと書いてみたいと思います。 思った事を書いているだけなので、C++のdisを反論しているわけではありません。 私が書くのはゲーム業界のプログラマーという狭い世界で生きている人間が思った事なので、一般的なC++と思わないでください。 ディレクトリ構成が機能単位でなくプログラマの名前幽霊 これ実際に見たことあります。 アセンブラを使っていて、プロジェクトの規模が小さかった時代の名残らしいです。 その頃は、この辺りを気をつけなくてもプロジェクトのソース全体が見通せるので、あまり問題にならなかったみたいですね。 私が見たのは15年くらい昔のプロジェクトのソースなんで、さすがに今はこんな事してるプ
ホーム < ゲームつくろー! < IKD備忘録 何か色々徒然と 状態遷移って何が必要? (2010. 5. 24) 状態遷移…。ゲームはありとあらゆる状態遷移の塊です。ゲームをUpdateとDrawで分けるなら、Updateの殆どは状態遷移の管理です。この状態遷移、ど~も私は苦手意識があるんですよね ぇ…。作り方を知らないというのがどうも…。そこで状態遷移についてあれこれ調べて、そもそもにしてゲームの状態遷移には一体何が必要なのだろうか徒然なるままに考えてみることにしました。本当に徒然で適当に思考を巡らせていますので、変なところはご愛嬌です。 ① 元祖状態遷移switch~case…ん~… C言語で状態遷移と言えばswitch~case。誰でも最初に学びます。状態遷移って「もし~になったら~な状態になってね」という物で、switch~caseは「もし~になったら」そのものです。状態遷移にs
ちょうど面白い話をしてるところなので、自分が使える言語を整理してみた。しかしよく考えるとゲームプログラマってアセンブリ、C言語、C++ は絶対使えるし(使えないと就職できん)、さらに VLSL、HLSL あたりは使えてもおかしくないよね…… その前に、VMXはどこに入るの? VMXは、あれはあれでひとつの低レベルプロセッサ制御な気がしてならないんだけど、まぁ言語でいえばC言語になるのか…… 業務で使えると言い張る言語 アセンブリ(Z80, 68k, x86, PowerPC) C言語 C++ Java(昔ケータイやった C#(XNAでいけと言われればいく自信ある VLSL HLSL(Cg言語はここにカウントアップ Lua GameMonkeyScript PHP(たぶん(^_^;) よく考えると、プログラマブルシェーダ言語って VMX と同じで、ハードウェア制御技術であってプログラミング言
RHGの逆襲第六回の懇談会で、 C++でメモリに困ることはないっていうことを 多分、shinhさんが言っていて 自分はいや、すっごい困るよ、ってな反応を思わずしてしまったんだけれども、 実際メモリが潤沢な環境が多いわけで、 うーあーうーとか言った後で思った。 (コンシューマ機などはそもそもデータじゃなく、 コードがメモリにのらないこともあるしねえ) とはいえ、 メモリが潤滑潤沢にあってもメモリ破壊が怖いので、 メモリに優しくないC++はやっぱり怖いのだった……。 C++の問題点はメモリをイメージしなければならなくて、 C++かつそのプラットフォームのメモリをイメージしながら組めるプログラマは少ない、 ってことなのかも。 例えば、polestarさんの プレイヤー攻撃くん: おいちょっとまてよ。おれいまから雷だすんだからよ ボス攻撃くん: ざけんなおれの火のほーが先に決まってんだろが? あ?
_ わざとバグを入れたCの入門書 翔泳社の編集の方から献本していただいたので、読んでみました。 デバッグではじめるCプログラミング(山本 貴光) 今更、おれが読む本でもないしと思わないでもなかったけど、読んでみるものだ。おもしろかったし、参考になった点もあった。 全体としてはゲームを作る本で、BC++をCで使うことを前提にしている。なぜBC++と大きい疑問を感じたけれど、エラーメッセージの適切さが理由のようだ(とは書いていないが)。 最初に、簡単な出力、入力があって、ちゃんとカタカナでprintfはプリントエフと読みますとか、scanfはスキャンエフと読みますとか読み方も指南している。 で、ゲームを作るというのはどういうことかという読み物ふうのエピソード(著者の方は光栄に勤めていたらしい)が来て、企画とおおざっぱな仕様が来て、では実装していきましょうと話が続く。 で、リストをその通りに打た
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く