ゲーム作るのに色々悩んでいたクラス設計ですが、残す課題があとひとつになりました。
「やってはいかんとわかっていても、それをやったときのエラーを確認しろ」というのが師匠流なのですが、 shared_ptr でそれをやろうとしてうまくいきません。
まどかの同人作品。先のミーティングでローディング画面に触れました。そんなにロード時間はかからない見込みですが、ロード中の画面とか作りたくなる可能性もありまして、ちょっと手法を調べておりました。
Player クラスのポインタだったら PlayerPtr とかそんな感じです。
CakePHP のプロマネとリードデベロッパーが新たに立ち上げた Lithium ( Lithium: the most rad php framework ) というプロジェクトがありまして、ゲームとは関係ないので詳しくは述べませんが、状況によっては追っかけてみるのも面白いと思います。
データの取得はクラスメソッド、レコードはインスタンスに対応するようになったみたいで、すっきりした印象があります。よくわからんのですが DAO のパターンに近いのでしょうか?
…と、まぁ、こういった感じで、今まで使っていた技術を交換したくなったり、状況に逆らえず交換しなければならなくなることがあります(どういう経緯かわからないけどお客さんに指定されてるとか)。ただ、今までのノウハウや資産が生きないのもよくないことと思います(例が悪かったです、 CakePHP → Lithium だったら生きそうな資産が多くあります)。なんとか一個人でも力になれる枯れさせるための活動ができないものか日々足りない脳味噌を回す日々…
そんな経緯から、どんなライブラリ、どんなフレームワーク、どんな言語を使うケースでも、「こういうの毎回書いているなぁ…」と嫌になるロジックをまとめようかと思うようになりました(ちなみに、これはゲームにも関係するのですが、このサイトではやりません)。
前ふり終わり。
まどかの同人作品ですが、小型パソコンを持ち歩くことができるようになったおかげか、やっとこさ具体的な名前を決める段階までやってまいりました。
良い機会なので、命名に関してこの際、考えを改めることにしました。
念願のハンディパソコンが届きましたので、移動中とか眠りに落ちる直前とかまで同人ゲームの設計をやっております(これでネットにつながれば文句ないです)。…で、ちょっと悩み事が出て参りました。
ActionScript によるコンテンツ制作があまりに楽だったので、それを参考にしているのも悪いのですが、イベントを送出するという特性に対して、受け取るという特性も必要か迷っております。
仕事は WEB 系なんですが、ゲーム制作に興味ある方とお話ししていてスマートポインタ( Boost の shared_ptr )の話題になることがありました。
普段 C/C++ に触れていないと、その存在意義もわかりにくいでしょうし、ほとんど理解してもらうのをあきらめていたところがあるのですが、よく考えたらハードリンクを例にとると簡単に伝わったのかもしれません。
「あわせて読みたい」に挙がったリンク先を訪問させていただきましたところ、なんとも熱いエントリーを発見です。
[プログラミング] C++ GUI ライブラリ – ひきぷろぐ
「あわせて読みたい」どころじゃないです。「こっちを読んでください」的な勢いです。