![]() パステル オービット |
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
---|
グローバル化を真面目に考えるゲームプログラマが語る。英語と、プログラミング
|
![]() 地上アナログ停波の瞬間がいったい何時にやってくるのだろう、その瞬間を自分の目に捕らえたいとヤキモキしながら約20時間を無駄にした皆様、こんばんは。 それはワタクシの事でした、TeamDyquemで御座います。 今週からはまた暑い日々が続く様ですね。 何故か読者様よりのメールが多い一週間で御座いましたが、一部、掲載許可を頂いた件に関しましては、久しぶりにFAQ形式のエントリーを近く予定しております。 どうぞご期待下さいねm(_ _)m さて、その前に。 ![]() 昨今、多種多様な言語が存在し、それは勿論通常の言語に関する話題でもありますが、我々が題材に挙げるとするならば、ここはやはりプログラミング言語と相成る事でありましょう。それでも、しかししかし。ここは敢えて通常の言語とプログラミング言語双方を、融合した話題につきまして、プログラマという観点から一つ掲げてみたいと思います。 尚、英語学習につきまして、ジョークネタ気味扱いました以前のエントリー 「iPhoneアプリ作者の英語学習と、醤油レッスン」 「iPhone作者が語る。英語のススメって言うかチャーシュー多すぎ」 等も、併せてご覧頂けましたら幸いで御座います。 ![]() さて。 今回は少々、お堅めエントリーとなったやもしれません。 「冷やし中華はじめたい」その様な見切り発車感は拭えませんが、一つ、提言させて頂きましょう。 プログラマの方では無くとも、語学に興味がある方には是非一読頂ければ嬉しいです。 さてさて。 大抵のプログラミング言語というものは、一般的にアルファベットをベースとして構築していくものでありましょう。英数字を基本としてプログラミングしていく事は、それが完全なるデファクトスタンダードであると断言するにまでは至りませんし、ここに例外が無いわけではありませんが、英文ベースプログラミングは、ほぼ世界標準であると言って良いでしょう。「日本語ベーシック」といったものや、はては、ハングル語のGUI+スクリプト言語というものも現実に存在しておりますし、その多様性や意義につきましてはここでの言及を避けますが、プログラミングと英語の密接な関係性の存在につきまして、もはや疑われるべき要素も無いでしょう。 こうして、プログラミングと英語の関係性が非常に優れているという世界的な背景の中、我々日本人の様に、英語を母国語としていないプログラマにとりまして、その距離感をどの様に扱うかという点に関しましては、益々のグローバル化を遂げる昨今のソフトウェア開発畑におきましては大変重要な要素と成り得るでしょう、そしてまた、重要な要素であると捕らえるべきであります。 英語を習得する。 ここで、少しだけ、便宜上必要な個人的な見解を展開させて頂きますが、例えば、日本義務教育で習う「英語」という学科は、もはや廃止すべきであると考えております。 「英語」という単独学科は、もはやその存在自体がナンセンスでありましょう。 無意味に広いんです。日本英語学習推進委員会の様なものがあるかどうかはともあれ、日本の教育委員会が学生の英語学習という点に対し、素人ながら意見を並べ立てさせて頂いておりますが、個人的見解の列挙を続けます。 無意味に広いんですってば。 何故、中学一年生から英文法を学ばなければならないのでしょうか。欧米の同学年生が、日本語の単語すらも殆ど知ってはいないその段階から、いきなり「てにをは」を覚えさせられて、日本語の何を学んでいけるのでしょうか。 「英語」という学科が必要無い、その様に断言しても良いのですが、もう少しオブラートに包むならば、「英会話」という広義の設問と機会の提供が何よりも求められている事象でありましょう。世界の子供達が、その生を受け、最初に言語を学ぶ際には、機会を通して身振り手振りを学び、様々な表現を真似し、模写を通して意味を知り、最終段階として文法解釈を試みる、そういった形が人類の通例でありましょう。何度も模写をし、漸く意志が疎通出来る程度のモノマネ会話が出来る様になって、その後、更に漸く、「てにをはを」駆使し、be動詞や助動詞といった、会話の意味を100倍も広げるルールを学び、文法としての深みを理解していく事が霊長類としての定番でありましょう。あくまでも、この惑星限定ですけれど。 さて、十分に皆様へどん引きして頂きました所で、本題へ。 ついつい筆が乗ってしまったんです……ごめんなさいT_T プログラミングにおきましては、例えば、関数名など、英語を基軸とした命名は日常と完全に融合している分野でありましょう。 関数へ、その機能を十分に表現した、端的な分かり易い命名を施す事は、プログラマへの基本的な義務であります。 日本人プログラマによる命名において見かける事のある例でありますが、例えば、何かを描画する関数へ「Dispなになに」。何かを管理運営するのであろう関数へ「なになにCont」と命名されているケース。これらの例で考えてみる場合、省略の形が個性的な点と、動詞と目的語が順不同な為、混乱する事もあるでしょう。描画系は「Drawなになに」。管理系は「Manageなになに」等、チーム一環としたルールがあれば、ヘッダファイルを開く事も無くコール部分を記述する事すら、可能となってくるでしょう。 余談でありますが、iOSが展開するAPI系命名規則には、もはや美学すら感じます。私は、確かにAppleの製品やその設計思想を盲目的に溺愛している部分はありますがw、開発者という視点からすれば、やはりそこには、自分の哲学へリンクする確固たる理由が存在しています。 「didFinishLaunchingWithOptions」 美しいw 冗長性に関しては完全に目を瞑るというポリシーにも、個人的には賛成です。 「ルール」を敷設し、楽しく従って行く。プログラミングってのはただでさえ堅苦しいですからね。そのルールが盲目的な奴隷制度の様なものではなく、リーダーによる整然とした、理論的でかつ、皆が笑顔で納得出来るものであれば、チームの開発効率と、そして何より楽しさが大きくなっていくものでしょう。 それでは皆様。 今週も、頑張ってまいりましょうね^^ TeamDyquemでした。 ![]() シリーズ記事まとめ ■Aニュース、ガジェット通信 寄稿記事 「『連載.jp』寄稿「ゲームプログラマが語る「プロ棋士に勝ったAIは、タクシー基本無料化をもたらす?」」」 「『Aニュース/ガジェット通信』寄稿「ゲームプログラマが語る ”買わない理由”がもたらす充足感と、開発者達の心理」」」 「『Aニュース/ガジェット通信』寄稿「ゲームプログラマが語る アップデート版に潜む開発者モラルハザード」」 「『Aニュース/ガジェット通信』寄稿「ゲームプログラマが語る ソフトやアプリと携帯ゲーム課金における経済行動学」」 「『Aニュース/ガジェット通信』寄稿「ゲームプログラマが語る。新しいゲーム機が定期的に生まれる理由」」 「『Aニュース/ガジェット通信』寄稿「ゲームプログラマが語る 楽しさの仕組み ゲームメカニクス」」 「『Aニュース/ガジェット通信』寄稿「ゲームプログラマが語る 3Dテレビとゲームの微妙な関係 その打開策」」 「『Aニュース/ガジェット通信』寄稿「ゲームプログラマが語る 無料アプリのビジネスモデルと舞台裏」」 「『Aニュース/ガジェット通信』寄稿「新発表ラッシュに見るクラウド大航海時代の幕開け」」 ■ゲーム制作初心者さん向け系 ゲームプログラマが語る。なんちゃってリードプログラマにはなるな!ゲーム造りで放棄してはいけない大切な事 ゲームプログラマが語る。今さら聞けないフレームレートに纏わる話。秒間60?16ミリ? ゲームプログラマが語る。「浮動小数点」と商業レベルで上手に付き合う方法 「ゲームプログラマが語る。ゲーム制作初心者の方へ小ネタ「クォータービュー入門」」 「ゲームプログラマが語る。「正しい乱数」が彩る確率世界とエンターテイメント」 「iPhoneアプリ、ゲーム制作初心者の方へ小ネタ「線分と円の交差」」 「iPhoneアプリ作者より、ゲーム制作初心者の方へ小ネタ「2Dベクトル」」 「iPhoneアプリ作者より、ゲーム制作初心者の方へ小ネタを一つ」 ■「プロのゲームプログラマとして、ゲーム製作に関する書評を」シリーズ ゲームプログラマが語る書評:「MMORPGゲームサーバープログラミング」を読んでみた ゲームプログラマが語る書評:「ゲームプログラマになる前に覚えておきたい技術」を読んでみた ゲームプログラマが語る書評:「ゲームエンジン・アーキテクチャ」を読んでみた ■個人でも出来る、マルチプラットフォーム開発関連 「ゲームプログラマが語る。iOSゲームをWinマルチプラットフォーム開発・その4」 「ゲームプログラマが語る。iOSゲームをWinマルチプラットフォーム開発・その3」 「iPhoneアプリ作者が語る。マルチプラットフォーム化その2・アトミック型定義のススメ」 「ゲームプログラマが語る。iOSゲームをWinマルチプラットフォーム開発・その1」 ■リリースしました系 「PASTEL-ORBIT/TeamDyquemアプリ第19弾。ローグライク決定版「隣人は魔王」をリリースしました。」 「TeamDyquemアプリ第18段。ご当地バトルRTS「埼玉クエスト」をリリースしました。近隣の県を滅ぼそう(*-_-*) 埼玉以外でも遊べます #47app」 「アプリ新作「ネコりす マカロン」をリリースしました」 「埼玉県ご当地アプリ、「タッチ the さいたま」をリリースしました #47app」 「アプリ新作「ひよこガーデン」をリリースしました」 「TeamDyquem新作。結構真面目なアクションパズル「ネコりす」リリース」 「iPhoneアプリ作者が、iアプリ「泡リス女子部 for iアプリ」をリリースしました」 「自作iPhoneアプリ改良版、「ネコがゴミのようだネ:アーケード」をリリースしました」 「iPhoneアプリ作者が、「まりも育成」for iモードをリリースしました」 「iPhoneアプリ新作 「ナタ・デ・ネコ」 をリリースしました」 「秋刀魚は関係ないけれど、新作「i-Wishbone」リリース」 「アプリ新作「ネコがゴミのようだ」。プロモ動画をアップしてみた」 「「泡リス 女子部」、販売開始」 「AppBankにまりも紹介記事が!」 「ゲームプログラマとして参加。ご当地47都道府県アプリプロジェクト #47app」 □ビジネス系 「ゲームプログラマが語るドコモiPhoneと、インフラから合法的に大金を抜くスキーム」 「ゲームプログラマが語る。秀丸エディタのビジネスモデル」 ■SFネタ系 「ゲームプログラマがSFを語る。意識はどこからやってきて、死んで、そして何処へ行く?」 「ゲームプログラマが語る。気の遠くなるスキもない程の、宇宙の話」 「iPhoneアプリ作者が語る。流れ星に馳せる真実」 「iPhoneアプリ作者が警笛。どこでもドアの使い過ぎには注意」 「iPhoneアプリ作者が語るSETI理論。異星人さんは何処!?」 ![]()
スポンサーサイト
Theme:■■■ニュース!(ゲーム&業界)■■■ |
||
![]() タマネギとジャガイモを自転車のカゴに積むが路面の悪さから来る振動が心配され、 「デコボコになっちゃうよー」と指摘を受けるも、 「俺は忙しいんだ、野菜の気持ちになんて構っていられるか!」 「最低!」 こんな夢をみた。 鶴は千年、亀は万年、妄想の矢は時の彼方まで。 目覚めて一発目に、「お前誰だよ」と夢の中の見知らぬツッコミ役へツッコム自分にはそろそろ辟易、 翼の折れたニワトリTeamDyquemで御座います。みなさまこんにちは。 元々飛べないんだから、痛いだけやん。 ツッコミもセルフ方式バイキング。 ![]() さて。 「9to5Mac」曰く 「Apple shifts international App Store (Mac + iOS) pricing to balance with the U.S. Dollar」 他、 MacRumors 気になる、記になる… 上記サイトにても紹介されております様に、AppStore、及びMacAppStoreにおいて、世界的な為替レート変動に対応したと思われる、価格改定が行われている様ですね。昨日の話題キーワードランキング等からその注目度もグンと上がってきていると思われ、その影響力の大きさが判りますが、国内に留まらず、世界の下記6地区における大規模改訂ですからね、そりゃあ皆驚くわけでありましょう。 Twitter等では一部において阿鼻叫喚の様相を呈しており、また、高額アプリ等においては、自動的に空前の値引率となったものも見られ、買い控え層の背中が一斉に押された場面も見受けられました。
未曾有、とまではいかずとも、それに近い状態となっている現代の世界経済混沌でありますが、昨今国内では特に円高傾向懸念が声高に叫ばれている現状。 とかく勘違いされやすい事でありますが、この状況は決して円の価値が上がり、育ち、強く安定してきているという事ではありません。ユーロ問題、ギリシャまじでデフォルトすんじゃね的な情勢不安、オバマさんのせいとは言えるかどうかは判りませんがインフレ到来上等ドル政策の限界露呈等など、リーマンショック前後より世界において急速に広がる不安の波と共に、力強く引き起こされる世界経済恐慌様相の勢いが余りにも大きい為、未曾有の災害に襲われた日本の現状がストレートに反映されるよりも更に強いファクターとして、スイスフランや日本円など、古来より比較的安定している通貨が、避難場所として機能していると言えるでしょう。 と、まあ、世界経済情勢等々を徒然と言及するブログではありませんし似合いませんので、イツモの通り肩の力を120%抜く事に致します。(実は、別媒体にてこういう原稿を書いていたりしますが……) いやアレですよ。この価格改定急すぎるし、日本ガチで不遇じゃね?という事です。日本だけ自動的に27%収益ダウンですよ。そりゃ、みんな驚きますとも。円高だからしょうがないよねーって笑っていられるレベルではありませんよ。 まあ、正直申しまして自分の様な個人開発販売レベルでの売り上げ規模においては、あまり関係無い話ではあるのですけれども、大手や版権物を扱われている所では深刻でしょう。\85->\170へ値上げして対応する所が多く見受けられますが、一部数万円の高額アプリが一気に数万円安になっていたりしますからね。こういった物は値段調整も難しいでしょう。 昨今は、基本無料のフリーミアム販売方式が急速に伸びてきておりますが、アプリ名やアイコンデザイン等と共に、ユーザーのファーストインプレッションへ組み込まれる販売価格が、胴元にガッチリと握られているとなると、広義でのモチベーションを維持する事の難しいメーカーも出てきかねません。 自分は個人であり、Apple信者に近い状態にまで洗脳された純朴な教徒でありますがw、もう少し大手が動きやすいマーケットであると、有能な開発者が産まれやすく、またそうして仕上がった良質な作品がユーザーに届きやすい環境になると思うのですけれどもね。 とは言え、この惑星は資本主権の金融利鞘帝国ですからね。ジャイアンを批判しても始まりませんし、スネ夫として生きる事の難しさを実感させられる一件であったかもしれません。 Appleとは言わば、劇場版では無い方のジャイアンであると言えるでしょう。 我々は所詮のび太なのではありますが、せめて劇場版のび太で在りたいですね。 ![]() シリーズ記事まとめ ■Aニュース、ガジェット通信 寄稿記事 「『連載.jp』寄稿「ゲームプログラマが語る「プロ棋士に勝ったAIは、タクシー基本無料化をもたらす?」」」 「『Aニュース/ガジェット通信』寄稿「ゲームプログラマが語る ”買わない理由”がもたらす充足感と、開発者達の心理」」」 「『Aニュース/ガジェット通信』寄稿「ゲームプログラマが語る アップデート版に潜む開発者モラルハザード」」 「『Aニュース/ガジェット通信』寄稿「ゲームプログラマが語る ソフトやアプリと携帯ゲーム課金における経済行動学」」 「『Aニュース/ガジェット通信』寄稿「ゲームプログラマが語る。新しいゲーム機が定期的に生まれる理由」」 「『Aニュース/ガジェット通信』寄稿「ゲームプログラマが語る 楽しさの仕組み ゲームメカニクス」」 「『Aニュース/ガジェット通信』寄稿「ゲームプログラマが語る 3Dテレビとゲームの微妙な関係 その打開策」」 「『Aニュース/ガジェット通信』寄稿「ゲームプログラマが語る 無料アプリのビジネスモデルと舞台裏」」 「『Aニュース/ガジェット通信』寄稿「新発表ラッシュに見るクラウド大航海時代の幕開け」」 ■ゲーム制作初心者さん向け系 ゲームプログラマが語る。なんちゃってリードプログラマにはなるな!ゲーム造りで放棄してはいけない大切な事 ゲームプログラマが語る。今さら聞けないフレームレートに纏わる話。秒間60?16ミリ? ゲームプログラマが語る。「浮動小数点」と商業レベルで上手に付き合う方法 「ゲームプログラマが語る。ゲーム制作初心者の方へ小ネタ「クォータービュー入門」」 「ゲームプログラマが語る。「正しい乱数」が彩る確率世界とエンターテイメント」 「iPhoneアプリ、ゲーム制作初心者の方へ小ネタ「線分と円の交差」」 「iPhoneアプリ作者より、ゲーム制作初心者の方へ小ネタ「2Dベクトル」」 「iPhoneアプリ作者より、ゲーム制作初心者の方へ小ネタを一つ」 ■「プロのゲームプログラマとして、ゲーム製作に関する書評を」シリーズ ゲームプログラマが語る書評:「MMORPGゲームサーバープログラミング」を読んでみた ゲームプログラマが語る書評:「ゲームプログラマになる前に覚えておきたい技術」を読んでみた ゲームプログラマが語る書評:「ゲームエンジン・アーキテクチャ」を読んでみた ■個人でも出来る、マルチプラットフォーム開発関連 「ゲームプログラマが語る。iOSゲームをWinマルチプラットフォーム開発・その4」 「ゲームプログラマが語る。iOSゲームをWinマルチプラットフォーム開発・その3」 「iPhoneアプリ作者が語る。マルチプラットフォーム化その2・アトミック型定義のススメ」 「ゲームプログラマが語る。iOSゲームをWinマルチプラットフォーム開発・その1」 ■リリースしました系 「PASTEL-ORBIT/TeamDyquemアプリ第19弾。ローグライク決定版「隣人は魔王」をリリースしました。」 「TeamDyquemアプリ第18段。ご当地バトルRTS「埼玉クエスト」をリリースしました。近隣の県を滅ぼそう(*-_-*) 埼玉以外でも遊べます #47app」 「アプリ新作「ネコりす マカロン」をリリースしました」 「埼玉県ご当地アプリ、「タッチ the さいたま」をリリースしました #47app」 「アプリ新作「ひよこガーデン」をリリースしました」 「TeamDyquem新作。結構真面目なアクションパズル「ネコりす」リリース」 「iPhoneアプリ作者が、iアプリ「泡リス女子部 for iアプリ」をリリースしました」 「自作iPhoneアプリ改良版、「ネコがゴミのようだネ:アーケード」をリリースしました」 「iPhoneアプリ作者が、「まりも育成」for iモードをリリースしました」 「iPhoneアプリ新作 「ナタ・デ・ネコ」 をリリースしました」 「秋刀魚は関係ないけれど、新作「i-Wishbone」リリース」 「アプリ新作「ネコがゴミのようだ」。プロモ動画をアップしてみた」 「「泡リス 女子部」、販売開始」 「AppBankにまりも紹介記事が!」 「ゲームプログラマとして参加。ご当地47都道府県アプリプロジェクト #47app」 □ビジネス系 「ゲームプログラマが語るドコモiPhoneと、インフラから合法的に大金を抜くスキーム」 「ゲームプログラマが語る。秀丸エディタのビジネスモデル」 ■SFネタ系 「ゲームプログラマがSFを語る。意識はどこからやってきて、死んで、そして何処へ行く?」 「ゲームプログラマが語る。気の遠くなるスキもない程の、宇宙の話」 「iPhoneアプリ作者が語る。流れ星に馳せる真実」 「iPhoneアプリ作者が警笛。どこでもドアの使い過ぎには注意」 「iPhoneアプリ作者が語るSETI理論。異星人さんは何処!?」 ![]()
Theme:■■■ニュース!(ゲーム&業界)■■■ |
||
![]() 降り注ぐ紫外線と暑さに思考力がやられっぱなしではありますが、今年の梅雨はもう明けてしまったのでしょうかね。湿気も雨も苦手ではありますが、こうも早々に退散されるとそれはそれで少し寂しい。自分がまさかの天候プチMだったなんて知りたくなかったTeamDyquemで御座います。 皆様こんにちは。 日本一、夏が似合わない男と言われ続けて幾星霜。この悪意に満ちた夏の日差しには本当に毎年辟易で御座います。完全に意識がありますねこの季節には。いじわる婆さんも裸足で逃げ出す事でしょう。 「いじわる婆さん」を知らないというジェネギャな方々は、 お父さんにでも聞けばいいさ! そうそう、アレですよ。意識……と言えば。 我思う故に我在りとか言いますけれど、「我思う」とは何でしょう。 脳髄という有機組織も突き詰めてみれば、コンピューターと同じ様に単なるデバイスの一つに過ぎないわけですから、代わりに、例えば本当にコンピューター内の情報処理として素粒子レベルの相互情報交換をエミュレート演算処理する事が実現出来れば、きっとそこにも所謂「魂」と呼ばれるものは芽生えると確信しています。自我や魂というものは結局のところ、厳密に定められた物理法則の上に生じる副産物であり、であればこそ意志は時空を超えて存在出来る様になり、そう遠くない未来では古くなった肉体という媒体を捨て、自我をコンピューター内に引っ越しさせるというエントヴァース的なライフスタイルが実現している事でありましょう。 その世界における「死」とは純粋な「母体データベースへの帰還」と同義であり、「出産」は「素体再構築」という事になるでしょう。新しい肉体に再生された魂は、前世に処理されたままの素粒子データベースを継承していますから、必然的に記憶も継続していく事になり、あんな事やこんな事等忘れたい程の恥ずかしい失敗談セットを持ったまま生まれ変わるという、ドMにはたまらない世界となっております。 はい。引かないソコ。 調子に乗って哲学の森に迷い込み、科学を履き違えている場合じゃあ明らかにありませんでした。 申し訳ありませんでした。あと、Mじゃありません。 ![]() 上記の例は極端でありますが、テクノロジーがどんなに進歩しようとも今はまだ結局のところそれを制御しているのは人間であり、であればやはり最大の敵はヒューマンエラーと言えるでしょう。 プログラミングにおけるそれはつまり「バグ」という事であり、プログラマに求められる重要なスキルとしてバグを作らない事、発生してしまったバグの原因を迅速に突き止めるという事の二点が非常に重要になってまいります。 バグと向き合う、バグを生まない、 バグと上手に付き合っていくための話題といたしまして今回は第二弾。 関連エントリといたしまして、 「ゲームプログラマが語る。バグを生まない仕込みと、バルスの例外処理」 上記エントリにおきましては、「Assert」という仕組みの基礎につきまして展開させて頂きました。今回は更にもう一歩、バグに対して歩みを進めてみたいと思います。 ![]() 簡易リグレッション・テストのススメ リグレッション・テスト(Regression test)とは一般に、「回帰試験」等の様に扱われる、極めてシステマチック且つ無機質な総当たりテストの様なもので、要するに作った処理の全因果関係を総当たりに実行しテストしてみようという機構です。 但し、その優位性は大きなものですが、実行コストも高く気軽に導入出来る仕組みではありません。よりまして、ここではTeamDyquemが勝手に採用している簡易的な導入例について取り上げてみたいと思います。 例えば、あるアプリが内包する全てのクラスに関してテストを施すという形は採りません。使用頻度の高い汎用的な性質を持つクラスから仕組みを割り当てていく形といたしましょう。ここではまず、算術クラスを例にあげてみます。 対象クラスは、ベクトルを扱う CVector とでもしましょう。 サンプル的な例としまして、以前のエントリー 「iPhoneアプリ作者より、ゲーム制作初心者の方へ小ネタ「2Dベクトル」」 も合わせてご覧頂けましたらと思います。 上記の様な算術系クラスによくある不具合と致しまして、浮動小数点のメンバ変数がNaN化してしまう、というシナリオが挙げられます。 NaNとは「Not a Number」の略であり、不正な演算結果として特別に定義された数値です。浮動小数点フォーマットには他にも無限大等を扱う特殊な定数が存在しますが、何れのケースにおきましても、この値が出現した段階でアプリの進行が止まるという事はなく、NaNという値を抱えたイリーガルな状態のまま処理が進行する事が通例です。 NaNとの演算結果は常にNaNであり、例えば
この様に、その構造内に一度でもNaNが現れると、以後の計算結果を次々に汚染していく事になるのです。 この手合は、経験上相当やっかいな類のバグと言えるでしょう。アプリの実行が即座に停止する様な事はありませんから、この増殖するNaNを伴って挙動に影響を与え始めます。市販ゲーム等において3Dモデルキャラクターの姿勢が奇っ怪な事になってしまうバグを見かけますが、これの原因として階層関節計算の演算仮定にて算術演算クラスの持つ潜在バグにより、関節姿勢が部分的にNaN化しているというシナリオは容疑者として有力でありましょう。 ![]() 実装 具体的には、上記例のCVector2等における、全ての代入系メソッドにて(const以外の全てのメソッド)、isnanによるNaNチェックAssertを仕込みます。 この上で、static CVector2::RegressionTest() 的なメソッドを用意。
この様に、Assertを仕込んだ内包するメソッドを全て実行するテストメソッドとして機能させ、これを起動時に毎回、メインの初期化処理から必ず実行させる様にします。 これにより例えば、何かのバグを修正した際にそれまで潜在的に眠っていたNaN化バグ等が呼び覚まされてしまったとしても、その初回の実行にてNaN化の瞬間を捕捉する事が出来、それに気がつかずに開発が進み傷を深めて行く事を防止します。 こういった機構を、よく使うクラスには出来る限り仕込んで置く事で、そのシステムの防衛力強化に貢献していく事になるでしょう。例によって、条件コンパイルによるリリース時コストフリーとする事が可能なので、最初は面倒かもしれませんが、積極的に採用する事をお勧めします。 デバッグとは本来やっかいなものではありますが、タイミング依存系のメモリ破壊系バグ等を追っていると不思議な高揚感に苛まれる事もありますよね。業務が切羽詰まっている等でなければ、実は最高にエキサイティングな思考パズルでもありますよね。 はい。強がりDEATH!暑いYO! 早く冬が来るといいなと願う。TeamDyquemでした。 ![]() シリーズ記事まとめ ■Aニュース、ガジェット通信 寄稿記事 「『連載.jp』寄稿「ゲームプログラマが語る「プロ棋士に勝ったAIは、タクシー基本無料化をもたらす?」」」 「『Aニュース/ガジェット通信』寄稿「ゲームプログラマが語る ”買わない理由”がもたらす充足感と、開発者達の心理」」」 「『Aニュース/ガジェット通信』寄稿「ゲームプログラマが語る アップデート版に潜む開発者モラルハザード」」 「『Aニュース/ガジェット通信』寄稿「ゲームプログラマが語る ソフトやアプリと携帯ゲーム課金における経済行動学」」 「『Aニュース/ガジェット通信』寄稿「ゲームプログラマが語る。新しいゲーム機が定期的に生まれる理由」」 「『Aニュース/ガジェット通信』寄稿「ゲームプログラマが語る 楽しさの仕組み ゲームメカニクス」」 「『Aニュース/ガジェット通信』寄稿「ゲームプログラマが語る 3Dテレビとゲームの微妙な関係 その打開策」」 「『Aニュース/ガジェット通信』寄稿「ゲームプログラマが語る 無料アプリのビジネスモデルと舞台裏」」 「『Aニュース/ガジェット通信』寄稿「新発表ラッシュに見るクラウド大航海時代の幕開け」」 ■ゲーム制作初心者さん向け系 ゲームプログラマが語る。なんちゃってリードプログラマにはなるな!ゲーム造りで放棄してはいけない大切な事 ゲームプログラマが語る。今さら聞けないフレームレートに纏わる話。秒間60?16ミリ? ゲームプログラマが語る。「浮動小数点」と商業レベルで上手に付き合う方法 「ゲームプログラマが語る。ゲーム制作初心者の方へ小ネタ「クォータービュー入門」」 「ゲームプログラマが語る。「正しい乱数」が彩る確率世界とエンターテイメント」 「iPhoneアプリ、ゲーム制作初心者の方へ小ネタ「線分と円の交差」」 「iPhoneアプリ作者より、ゲーム制作初心者の方へ小ネタ「2Dベクトル」」 「iPhoneアプリ作者より、ゲーム制作初心者の方へ小ネタを一つ」 ■「プロのゲームプログラマとして、ゲーム製作に関する書評を」シリーズ ゲームプログラマが語る書評:「MMORPGゲームサーバープログラミング」を読んでみた ゲームプログラマが語る書評:「ゲームプログラマになる前に覚えておきたい技術」を読んでみた ゲームプログラマが語る書評:「ゲームエンジン・アーキテクチャ」を読んでみた ■個人でも出来る、マルチプラットフォーム開発関連 「ゲームプログラマが語る。iOSゲームをWinマルチプラットフォーム開発・その4」 「ゲームプログラマが語る。iOSゲームをWinマルチプラットフォーム開発・その3」 「iPhoneアプリ作者が語る。マルチプラットフォーム化その2・アトミック型定義のススメ」 「ゲームプログラマが語る。iOSゲームをWinマルチプラットフォーム開発・その1」 ■リリースしました系 「PASTEL-ORBIT/TeamDyquemアプリ第19弾。ローグライク決定版「隣人は魔王」をリリースしました。」 「TeamDyquemアプリ第18段。ご当地バトルRTS「埼玉クエスト」をリリースしました。近隣の県を滅ぼそう(*-_-*) 埼玉以外でも遊べます #47app」 「アプリ新作「ネコりす マカロン」をリリースしました」 「埼玉県ご当地アプリ、「タッチ the さいたま」をリリースしました #47app」 「アプリ新作「ひよこガーデン」をリリースしました」 「TeamDyquem新作。結構真面目なアクションパズル「ネコりす」リリース」 「iPhoneアプリ作者が、iアプリ「泡リス女子部 for iアプリ」をリリースしました」 「自作iPhoneアプリ改良版、「ネコがゴミのようだネ:アーケード」をリリースしました」 「iPhoneアプリ作者が、「まりも育成」for iモードをリリースしました」 「iPhoneアプリ新作 「ナタ・デ・ネコ」 をリリースしました」 「秋刀魚は関係ないけれど、新作「i-Wishbone」リリース」 「アプリ新作「ネコがゴミのようだ」。プロモ動画をアップしてみた」 「「泡リス 女子部」、販売開始」 「AppBankにまりも紹介記事が!」 「ゲームプログラマとして参加。ご当地47都道府県アプリプロジェクト #47app」 □ビジネス系 「ゲームプログラマが語るドコモiPhoneと、インフラから合法的に大金を抜くスキーム」 「ゲームプログラマが語る。秀丸エディタのビジネスモデル」 ■SFネタ系 「ゲームプログラマがSFを語る。意識はどこからやってきて、死んで、そして何処へ行く?」 「ゲームプログラマが語る。気の遠くなるスキもない程の、宇宙の話」 「iPhoneアプリ作者が語る。流れ星に馳せる真実」 「iPhoneアプリ作者が警笛。どこでもドアの使い過ぎには注意」 「iPhoneアプリ作者が語るSETI理論。異星人さんは何処!?」 ![]()
|
||