新しい記事を書く事で広告が消せます。
-----.-- --Ads by Google[スポンサー広告]
Time[--:--] Comment[-] Trackback[-]
新しい記事を書く事で広告が消せます。
2008-04.10 Thu画像のファイルサイズのはなし[ゲーム開発]
Time[05:53] Comment[56] Trackback[1000]
ゲームの画像としてPNGを使う価値なんかを考えてみた
ゲームでPNGを使うってことは、要するにサイズ削減が目的なことが多いハズです。要するに圧縮です。
圧縮と言えばZIPです。ええ、ZIPです。異論は認める
ということで、PNGをそのまま入れるのと、BMPをZIPで圧縮するのはどっちがサイズに優しいのかをちょっとだけ実験してみました
ドット絵500枚をまずフルカラー24bitBMPに変換しまして、その総サイズ7.36MB。最後にZIP圧縮するので今は見て見ぬフリ
なぜドット絵をフルカラーかといいますと、簡単に言えばゲームで使うときにフルカラーじゃないと不都合が起こるようなバカを私がやってるからでして。
そんでそれをOptiPNGでプロンプトから
optipng -q *.bmp
で一発変換&最適化。10秒ほどで終わりました。OptiPNG優秀すぎるだろjk
そんでそれらの総サイズを427KB。5.8%くらいかな?PNGすごいね!
それで最後にZIPでそれぞれを一つにまとめて終わり!
最終的にはこうなりました。
BMPをZIP圧縮: 624KB
PNGをZIPでひとまとめ: 553KB
さすがPNGですね。画像と限定してるだけあります
まあ当たり前と言えばそうなんですけどー
まあこれで一見サイズでモチのロンでPNGが劣る要素が全く無いように見えます。
しかしそんなPNGにも最後の障壁が。
展開しなければいけないんですね。そりゃ圧縮してるからあたりまえかと言いますが、問題は展開そのものじゃなくて、展開するためのDLLなんですね。。
私はlibpngというDLLを使うんですが、そいつのサイズが128KBです。
アレ。
pngを使うために必要なものなので、これさっきのPNGのほうのサイズに合わせて良いですよね。
アレアレ。
思い出してみましょう・・
>最終的にはこうなりました。
>BMPをZIP圧縮: 624KB
>PNGをZIPでひとまとめ: 553KB これを
>PNGをZIPでひとまとめ: 681KB(553KB+128KB) こう
・・・
こうして私はフルカラーBMPをそのまま使うことにしたのでした。。。
#もっと大きな画像を扱わないとゲームでPNGを使うときの効果は出ないと思いました
ゲームでPNGを使うってことは、要するにサイズ削減が目的なことが多いハズです。要するに圧縮です。
圧縮と言えばZIPです。ええ、ZIPです。異論は認める
ということで、PNGをそのまま入れるのと、BMPをZIPで圧縮するのはどっちがサイズに優しいのかをちょっとだけ実験してみました
ドット絵500枚をまずフルカラー24bitBMPに変換しまして、その総サイズ7.36MB。最後にZIP圧縮するので今は見て見ぬフリ
なぜドット絵をフルカラーかといいますと、簡単に言えばゲームで使うときにフルカラーじゃないと不都合が起こるようなバカを私がやってるからでして。
そんでそれをOptiPNGでプロンプトから
optipng -q *.bmp
で一発変換&最適化。10秒ほどで終わりました。OptiPNG優秀すぎるだろjk
そんでそれらの総サイズを427KB。5.8%くらいかな?PNGすごいね!
それで最後にZIPでそれぞれを一つにまとめて終わり!
最終的にはこうなりました。
BMPをZIP圧縮: 624KB
PNGをZIPでひとまとめ: 553KB
さすがPNGですね。画像と限定してるだけあります
まあ当たり前と言えばそうなんですけどー
まあこれで一見サイズでモチのロンでPNGが劣る要素が全く無いように見えます。
しかしそんなPNGにも最後の障壁が。
展開しなければいけないんですね。そりゃ圧縮してるからあたりまえかと言いますが、問題は展開そのものじゃなくて、展開するためのDLLなんですね。。
私はlibpngというDLLを使うんですが、そいつのサイズが128KBです。
アレ。
pngを使うために必要なものなので、これさっきのPNGのほうのサイズに合わせて良いですよね。
アレアレ。
思い出してみましょう・・
>最終的にはこうなりました。
>BMPをZIP圧縮: 624KB
>
>PNGをZIPでひとまとめ: 681KB(553KB+128KB) こう
・・・
こうして私はフルカラーBMPをそのまま使うことにしたのでした。。。
#もっと大きな画像を扱わないとゲームでPNGを使うときの効果は出ないと思いました
2008-03.28 Fri追いかけるアルゴリズム[ゲーム開発]
Time[19:48] Comment[0] Trackback[0]
ゲームで良く使う「ビット」の自機との距離調整アルゴリズムというのかなんなのか
大きく3つほどあるとおもいました
パターン1 ひも
距離が一定以上離れていたら近づく。その際常にその一定の距離に一瞬で移動する。
距離内ならなにもしない。
パターン2 ゴム
ひもパターンに加えて、慣性が入る。
遠いところからゴムパターンで近づくと勢い余って反対側に行ったりきたりするやつです
パターン3 棒
ひもパターンに加えて、距離内にいた場合でもその一定の距離に一瞬で移動する。
常に一定の距離を保っているので、近づけないし、離れられない。
パターン4 バネ
棒パターンに慣性を入れる。そのまんま。
無理に近づこうとすると跳ね飛ばしてしまう。ビヨンビヨン
4つでした
大きく3つほどあるとおもいました
パターン1 ひも
距離が一定以上離れていたら近づく。その際常にその一定の距離に一瞬で移動する。
距離内ならなにもしない。
パターン2 ゴム
ひもパターンに加えて、慣性が入る。
遠いところからゴムパターンで近づくと勢い余って反対側に行ったりきたりするやつです
パターン3 棒
ひもパターンに加えて、距離内にいた場合でもその一定の距離に一瞬で移動する。
常に一定の距離を保っているので、近づけないし、離れられない。
パターン4 バネ
棒パターンに慣性を入れる。そのまんま。
無理に近づこうとすると跳ね飛ばしてしまう。ビヨンビヨン
4つでした
2008-03.24 Monぅあああああああああああ[プログラミング的な話]
Time[17:50] Comment[0] Trackback[0]
今日の成果
-D言語とLuaをうまくつないだ気がする!
Lua側
D側
結果
要するにLuaのスタックを意識しないでいいってことですよヤッター
繋いだは良いけど後の問題これをどう使うかですね!!
成長に期待
-D言語とLuaをうまくつないだ気がする!
Lua側
-- 関数定義1
function func()
print("func呼び出し")
return 10
end
-- 関数定義2
function fnc2(a, b, c)
print("fnc2呼び出し")
print("[" .. a .. ", " .. b .. ", " .. c .. "]")
end
print("printテスト")
function func()
print("func呼び出し")
return 10
end
-- 関数定義2
function fnc2(a, b, c)
print("fnc2呼び出し")
print("[" .. a .. ", " .. b .. ", " .. c .. "]")
end
print("printテスト")
D側
import util.luau : Lua;
import std.stdio : writefln;
void printString(char[] str) {
writefln(str);
}
void main() {
scope lua = new Lua();
lua.register!(printString)("print");
lua.evalfile("luafile.lua");
auto i = lua.call!("func", int)();
writefln("func結果: %s", i);
lua.call!("fnc2")(1,5,6);
}
import std.stdio : writefln;
void printString(char[] str) {
writefln(str);
}
void main() {
scope lua = new Lua();
lua.register!(printString)("print");
lua.evalfile("luafile.lua");
auto i = lua.call!("func", int)();
writefln("func結果: %s", i);
lua.call!("fnc2")(1,5,6);
}
結果
printテスト
func呼び出し
func結果: 10
fnc2呼び出し
[1, 5, 6]
func呼び出し
func結果: 10
fnc2呼び出し
[1, 5, 6]
要するにLuaのスタックを意識しないでいいってことですよヤッター
繋いだは良いけど後の問題これをどう使うかですね!!
成長に期待
2008-03.24 MonLua使う[プログラミング的な話]
Time[00:08] Comment[0] Trackback[1000]
作っているゲームにLuaという組み込みのスクリプト言語を使ってみることした
うまく使えればキャラクターの動きとかを全部そっちに任せていろいろと楽ができるかもしれない
成長に期待
うまく使えればキャラクターの動きとかを全部そっちに任せていろいろと楽ができるかもしれない
成長に期待
2008-03.16 Sun[ただの日記]
Time[19:34] Comment[0] Trackback[1000]
最近早寝早起きです
7時くらいに寝て3時に起きる感じですね(早すぎか
しかし残念ながらそのリズムはたいてい2日くらいで崩れるんですけど・・・
ファイアーエムブレムというのを最近やってますよ
前評判はキャラゲーキャラゲーと言われてばかりで自分的に非常によろしくないものだったんですが
これが以外や以外、かなりシステムも練られていて自分好みなのです
特に戦闘がシビア!
いくら防御力が高くても突っ込ませて囲まれたらやられますよねそりゃー・・・
これはハマるかも
7時くらいに寝て3時に起きる感じですね(早すぎか
しかし残念ながらそのリズムはたいてい2日くらいで崩れるんですけど・・・
ファイアーエムブレムというのを最近やってますよ
前評判はキャラゲーキャラゲーと言われてばかりで自分的に非常によろしくないものだったんですが
これが以外や以外、かなりシステムも練られていて自分好みなのです
特に戦闘がシビア!
いくら防御力が高くても突っ込ませて囲まれたらやられますよねそりゃー・・・
これはハマるかも

