program
ということで、やっと覚悟を決めてWindowsプログラミングの勉強を始めることにしました( ´∀、) #include <windows.h>この一文から、未知の大海へと漕ぎ出していくのですね・・・ で、とりあえず簡単なGUIアプリケーションを作るのを目的にやっていこうかと思ってるんで</windows.h>…
ゲーム作り始める→完成してもつまんないことに気づく→やる気うせる→完成しない→完成癖つかない→完成癖つけるためにゲーム作ろうと思う→いいアイディアが浮かばない→いいアイディアが浮かばないけど完成させないことには成長しないと焦って作り始める→最初に…
id:arCtan:20060702で書いた問題についての今のところの結論。 とりあえず循環参照のないようにキャラクタクラスなどを設計する。 依存度の低いものから生成し、コンストラクタで先に生成した参照先クラスへのポインタを渡す。 こんな感じですね。 CDraw* dr…
同じようなことを何度も書いてきた気がするが、簡単のため気がしないことにする。 C++(というかオブジェクト指向)でアクション系のゲームプログラミングをするときにいつも困るというか、うまくいかないことがあります。それはゲームに登場するオブジェク…
思考実験の段階で面白くないとやる気が全然出ない。 かといっていいネタが出るまで考え込んでいては先に進まない。 つまりセンスがないということだorz
SDL_image、SDL_mixerの件はいまだわからずですが、とりあえず見切り発車でSDL+OpenGL利用のゲームをちまちま作っています。習作なんであんまり面白くないものが出来上がりそうですがまあいいよね。 ていうかソースがほぼABA Gamesの丸パクリというのが( つ∀…
SDL_imageにjpeg、libpng(とlibtiff)を内蔵、SDL_mixerにsmpegとlibogg、libvorbisを内蔵させたものをVC2003で作るべく、何もかもが手探りの作業がスタートした。 SDLのビルド ソースコードを取得する。中にVisualC.zipがあるので、その場に解凍。SDL.sln…
SDL_image、SDL_mixerに別途ライブラリが必要という話ですが、配布ページの下のほうにしっかり書いてありますね。 英語読むのめんどうだからスルーしてた・・・ハズカシス
しばらくはOpenGL関連の話を書いてみようと思うのですが、今日はちょっと横道に入ってSDLの話です。 OpenGLを単体で使おうとすると、いろいろと泥臭いAPIを使わざるを得ません。それに昨日の記事で WinMain() を書きたくないと言いましたが、Windows上でプロ…
今OpenGLの勉強をしています。 これからの時代、さすがに2D一択はいろんな意味できついだろうと。 で、なんでDirectXにしないの?っていう。 ん〜・・・どうもDirectXって入ったら戻れない感じがなんとも。DirectXにいったん手を出すとそっからは本気でWindo…
とある理由で今使ってるPCがしょぼいジャンクノートなので、VS2005まるごと入れるなんて無理です。それでもがんばってVC#2005Expressをだましだまし動かしながらyaneSDK.NETの使い方をいろいろ探ってみました。 とりあえず昨日書いたように、ソリューション…
yaneSDK.NETがいよいよリリース(id:yaneurao:20060308)。ついに3Dも使えたりマルチプラットフォーム対応でもう(・∀・)wktkしまくり。 で、さっそくどんなのか見てみようとした。3rdまでC++だったが、.NETはC#で書かれているのでC#も身につけないとなー…
いろいろ割り切って、システム自体は完成に近づいてきた。 あとは絵ぇ描いて敵並べるだけだ・・・ここからか。 ところでlibBulletMLのバグっぽいのだが、ある種の弾幕の実行中にその弾幕を産んだ親キャラを破壊すると、BulletMLRunnerImpl::runSub()で落ちる…
id:arCtan:20051010やid:arCtan:20051103あたりでかなりでたらめなことを書いてたっぽいので訂正。 placement new/deleteのことを自分は「独自のメモリ確保・解放を行うためのoperator new/deleteのオーバーロードのこと」と捉えていたが、どうも正しくなか…
同時に多数発射する弾幕が大変重いのでなんとかしようと思っていた。 yaneSDK::CMemoryAllocatorPoolは内部的にlistを使っているので結局newを誘発することになるから、軽いものではないと先日気づき、今のplacement newは速度的メリットはほとんど得られて…
yaneSDK::CMemoryAllocatorPoolって高速でもなんでもない? ただスタック上のメモリからアロケートしたいときに使うだけ? しかもどうやらスタック領域が分割されるたびにCMemoryTableテンポラリオブジェクトを作ってる模様。それで1フレームに160個も弾を作…
Bulletnoteで弾幕をチクチクと作成中。 これどうもEclipseのプレビュー画面では表示できる弾の数に上限があるっぽい。東方並みの重弾幕だと途中までしか再現されなくて困るなあ。 他にも付け足してほしい機能もあるんだけど、しばらく更新ないところからみて…
やっぱりメモ程度でもこまめに書いておこう。 placement newのバグの件(id:arCtan:20051221)は保留。 yaneSDK::CVolumeFader BGMをフェードアウトさせたりするためのクラス。 なんだが、フェードさせるとデバイスのサンプリングレートが妙なところに固定さ…
にぶち当たっている。 完全な再現性がない。同じ条件でやってみても発現するときとしないときがある。というかゲームを起動するたびに発現するしないが変わる。 発現箇所はplacement deleteを使ってオブジェクトを解放したときに、まったく関係ないオブジェ…
ということでこの二つの親和性について改めて考えてみました。 C++言語の特徴を列挙してみて、それらが個人レベルでシューティングゲームを作る上でどのように生かせるのかを主眼においてみます。 動的オブジェクト(newの利用) 実行時にオブジェクトを作る…
最近の変化 なんかフルスクリーンが16ビットモードになってたので32ビットにした 情報表示部の画像を適当に作ってみた なんか背景効果として雨っぽいものを降らせてみた レーザーを改造。細く速く先細りで加色合成になった 爆発も加色合成にした テスト用適…
アナル男爵がなんだかすごく面白いです。あ、普通のっていうかむしろ硬派なシューティングゲームですよ?タイトルと中身のギャップでは天下一が取れるくらいではないかと思うほどです。つーかストーリーがまじめに電波でウケた なんていうか、すごく爽快感が…
うぉおおおお!!! なんで今まで使わなかったんだ。バカだ。
of自分by自分for自分。 どのくらい続くかっていうかそもそもその2があるのかも不明ですが、とりあえず今回はシューティングに限らずアクションゲーム全般にかかわる事項を。 メインループでの処理 ゲームのメイン処理は大きく分けて次の3つのフェーズからな…
前から作ってると言ってるが実際作ってるのかどうかもあやしくなってきたあのシューティングだが、やっぱり早いトコ区切りを付けたいということで、タスクシステムを用いたバージョンへの移項作業をせこせこやっている。といっても全然大変な量じゃなくて、…
そういえば書くのをすっかり忘れていた。ひげぽんさんの日記(id:higepon:20051102)を読んで思い出したので。 id:arCtan:20051010で自前のメモリ確保を行うためにoperator new/deleteをオーバーロードするplacement new/deleteという手法を使った。そのとき…
おあつらえ向きのソースが手に入りました。 配布元:http://www.geocities.co.jp/SiliconValley-Sunnyvale/2289/ わりかしスタンダードな2D格闘ゲームで、C++で書かれています。 ということで一通り読んでみた結果。なんか自分の想像とは結構違いがありまし…
C++で書かれた中規模ゲームの完全なソースヽ(´∀`)ノ なんでかって なんかやね師匠いわく、yaneSDKでのゲーム作りのフレームワークは「タスクシステム」+「マイクロスレッド」が基本っつうか想定事項らしくて最近それを知ったのですよ。んで今までのシーン…
id:arCtan:20051010の件について。 yaneSDKのバグでした(゜∀゜) 修正箇所は、yaneAllocator.cppの20行目らへんに (*it).size_ = size;が抜けてるのと、80行目らへんで、 × (*it).size_ += (*it).size_; ○ (*it).size_ += (*it2).size_;とするのが正しい。 こ…
唐突ですが、速度をまともなレベルに上げないといけないなと思いまして、ポリモーフィズムとメモリの事前確保&使い回しを両立させるシステムを作っておるわけです。 はじめはむーんどうしたものか…って感じでしたが、調べるとplacement newという手法を使う…