インターネットチャンネル用ゲームについて

え〜、しばらく前から研究していたインターネット向けチャンネルのFlashゲームですが凍結とさせていただきます。
理由としては、
・ActionScript2の情報が少なし、いろいろやってもGoogle先生がAS3の情報ばっかり持ってくる
SDKの手順が複雑で日本語の情報が少なく、なれないActionScriptで出来そうにない
・技術力不足
など。ただ、インターネットチャンネル用のゲームをあきらめたわけではありません。
Flashではなく、javascriptで作ろうと思います。

そもそも私はFlashの知識が少ないので、たいしたことは出来ません。
ということは同じことはjavascriptでも十分可能なはずです。
SDKはここらへんのを使おうかと検討中。
http://wiioperasdk.com/menu_sdk.php
あとはjQuery


とその前に、現在はDSi/3DS用のミニゲームを作ろうとしています。
javascriptで作る簡単ゲームなので、たいしたことは出来ないですが、それなりに動くはず

おまけ(わからなければスル〜)

任天堂のサイトで3DSブラウザーのソースが一部公開されています。Webkitなので、LGPLの公開の義務があるわけです。といっても、中身をNintendoとかで検索してみたのですがヒットなし。まぁ、ライブラリなんだから完全にカプセル化してありますよね。そりゃ。3DS用のソースが含まれているわけないか。

それでもソースが公開されるということは将来的にWebkit脆弱性3DSが攻撃されかねないということ。オープンソースはそこらへんが弱い。

そういえばインターネットチャンネルでも脆弱性でアップデートがありましたね。・・・ということは、インターネットチャンネル脆弱性を見つければFlashとかもまとめてアップデートされるかも・・・?

え〜、せっかくなのでちょっと中身を見学。ソースはC++でたくさんのソースがあり、中には「css」「html」「dom」「svg」なんてわかりやすいフォルダも。やっぱり大きいプロジェクト出す優に1000越えのファイルがありそう。ソースの中にVisualStudio用のプロジェクトファイルがあったので開いてみましたが、変換エラーで開けず。

たとえば、htmlフォルダ内のHTMLBRElement.hの中身。

class HTMLBRElement : public HTMLElement {
public:
    HTMLBRElement(const QualifiedName&, Document*);
private:
    virtual HTMLTagStatus endTagRequirement() const { return TagStatusForbidden; }
    virtual int tagPriority() const { return 0; }

    virtual bool mapToEntry(const QualifiedName&, MappedAttributeEntry&) const;
    virtual void parseMappedAttribute(MappedAttribute*);
    
    virtual RenderObject* createRenderer(RenderArena*, RenderStyle*);
};

意外とシンプル。HTMLElementをpublicで継承。コンストラクタの定義と、仮想関数をいくつか上書き。ふむふむ。他のソースを見てみると、innerHTMLとか、alingとかわかりやすい名前でいろいろ定義されてる。(関数の後ろにconstがつくのってなんだと思ったらmutableで宣言した変数を変更できるとのこと。(メンバ変数の書き換えも出来なくなるという効果があるそうです)参照渡しといいポインタといいなぜ同じ名前を使いまわす・・・)

C++はほとんどかけないので(私はC#派)他人の書いたソースを読めるとは思えないのでここら辺でソース見学は終了。C++わかる人は一読の価値はありますよ〜。(これじゃなくても他のWebkitのソース読むことを薦めときます)

3DSWebkitのソースはここからダウンロードできます。
http://www.nintendo.co.jp/3ds/hardware/features/sourcecode.html