スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

現在のゲーム製作状況報告とか 9/28

更新できる記事が無い場合、
基本的にここのブログの更新が止まって、
裏でプログラミングをしてる

という状況になっているのですが、

やっぱり定期的に近況報告しておかないと、
フリーズしたブログなのかなと思ってしまうと思うので、近況報告をします。
(ゲームのプログラマーになる!みたいなブログは、
   一定の時期でパタッと更新が止まっているものが多々見受けられれる為)


現在やっているのは、
描画システム周りの構築です。

※この間発表した「チルノのパーフェクトにほんご教室!」は、
実は全部グローバル変数で、main.cppのみで構成されている
というアホな状態になっていました。

(描画システムや、外部ファイルからのシリアライズ/デシリアライズ機構なんか
  作ってられん! 全部main.cppにぶち込め!みたいな感じだった。)

要は、描画機構の構築を後回しにしてた訳です。

しかし、効率的な開発の出来るシステム作りは大変ですね。。

ゲームそのものよりも、根底となる描画システムやら、
デバイスロスト対策やらリソース管理システムなどの構築に
時間がかかっている という人いないでしょうか?

(何となく問いかけてみる。)

とりあえず、大まかに描画・動作させる機構が完成したので、
それについて、解説記事でも書こうかなと思う。

また、下記についてですが それぞれ次のようになります。
-------------------------------------------------------------
【1】ローグライクゲーム
【2】チルノのパーフェクトにほんご教室!

-------------------------------------------------------------

【1】について。
ずっとコンソールアプリケーションみたいな文字列で描画するタイプだったのですが、
もう初めから画像を使ったプログラムで良いのでは?とか思いました。

なので、画像ベースのプログラムに変更中です。

【参考画像】
Rogue1.jpg

【2】チルノのパーフェクトにほんご教室!について。
【1】のローグライク用に作った画像 描画システムを転用して、
10月を目処に体験版とかを完成させる予定。
スポンサーサイト

テーマ : ゲーム製作 関連 - ジャンル : ゲーム

ジャンプ43号感想

●トリコ
四天王があっという間にやられていた・・・。

ゾンゲは置いておいて、マンサムさんは一体どうなったんだ。
やっぱり、不意打ちでも食らったのだろうか?

そして、一番 最後のコマで「ぐぐぅ~」とか腹の音がなっているのだが、
何だろう?

そういえば再生屋の方が居たので、
四獣に対抗できる化け物を再生させたとか そういう展開があるかも分からん。
("デスゴール"とか。人類が滅亡するかな?と思ったが テリーが何とかしてくれるでしょう。)


●ブリーチ
総隊長のバトルが実に面白いです。

ユーハバッハさんはちょっとOSR度が低いですね。
このままだと総隊長にそのままやられてもおかしくない。
(ユーハバッハさんは、実はボスでは無くて、
    裏ボスが居ましたーって展開になりそうなレベル)

一護は依然、閉じ込められたままなのか。

ずっと閉じ込められて何も出来ず、
駆けつけたときには問題は解決してました
ってなったら、主人公の立場が無いような。


●めだかボックス
---------------------------------------
言彦は五千年前 安心院なじみが
人外が初めて勝てなかった人間なんだから

---------------------------------------
言彦さんは人間なのか。

・・・。
いや、人間じゃないだろ・・・。

どう見ても角みたいなのが生えてますし、
5000年以上生き続けてますし、人間ではありえない。
(細胞が突然変異した人間、とかそういうアレかな?)

安心院さん 輪ゴムで真っ二つにされたんですが、
これも意味が分からない。

人間が普通の輪ゴムを撃っても真っ二つにはならんだろ・・・。

もうチートですよ。
(腕が黒っぽく変色してるので、単純に腕力が強いのではなく、
特殊能力(スキル)に近い何かがあるのかな、と思う。)

来週はどうなるんだろうな。
「逃げ場が無いならパンツを食べれば良いのに」とか言いながら
偽造さんが登場してくれたら(個人的に)嬉しい。

言彦に勝てそうなオーラを纏ってるのは
あの人しか居らん。



●タカマガハラ
ふと思った。
この漫画は迷走しているのではないかと。
大体 腹話術をする剣士とかキャラ的に意味が分かんn(ry

何がいけなかったのか。

やっぱりドーピングコンソメ野郎が、
化け物になった後 普通にバトルしたから駄目なんですよ。

狂ったキャラクターは狂ったバトルをしないといけない。
本家は、「俺が逃げようとするのを止められるかな?」みたいな事を言い出して
力づくで逃走
しようとしたんですよ。
(全ての行動において狂ってたから伝説となったのである)

とりあえず何か終わりそうな感じがする。


●ワンピース
なんか体中を武器に変形できる女性が登場しました。
何だろうコレ。 

ワンピースの世界でも最終兵器彼女みたいなのも製造しているのか、
悪魔の実の能力者なのか。

悪魔の実の能力者だとすれば、一体何の実になるんだろう。
んー。(考え中)

【追記】
マゼマゼの実 と予想してみます。
(他の異なる物体を、体内に混ぜ込んで所有できる能力。)


●暗殺教室
合理的な理事長が登場しました。

名前は浅野ということですが、
下の名前が出てないのが気になる。

何だろう、伏線か何かだろうか。

【気になった情報纏め】
・救世主になるつもりが、地球を破壊する存在になってしまった
・女性から「あなたなら立派な教師になれる」と言われていた(回想シーンで)
・浅野が地球の危機を救えないと言っていた

殺せんせーは、どこかの研究所で改造された人間なのだろうか?

-------------------------------------------------
【1】地球に何らかの危機が迫っていた
【2】地球の救世主になる為、改造手術を受ける
【3】改造に失敗。 地球を破壊せざるを得ない存在になってしまう。
【4】現在に至る。

-------------------------------------------------
こんな感じなのかな?

前々から思ってたんですが、
「対:殺せんせー弾」とかって、
殺せんせーの細胞を調べたりしないと作れないですよね?

暗殺の依頼があった時点で、
「対:殺せんせー弾」「対:殺せんせーナイフ」が存在していたということは、

やっぱり、人間だった殺せんせー ⇒ 現在の殺せんせー に改造した研究機関があって、
その研究機関が(細胞の構造とか熟知してるから)対殺せんせー用暗殺器具を用意できた
って理屈なんじゃないかなーと思った。

テーマ : 週刊少年ジャンプ全般 - ジャンル : アニメ・コミック

アーカイブファイル作成プログラムを作ってみた!

今までゲームを作る際、
直接 画像ファイルやら音楽ファイルやらをぶちこんでたのですが、

【参考画像】
sonomannma.jpg


いくらなんでも改造され放題なので、これはまずいだろと思い、
アーカイブファイル作成&解析プログラムを作ってみました。
※今回は単純にファイルを連結するだけです。
-------------------------------------------------------------------------
・アーカイブファイル ・・・ 複数のファイルを一つのファイルにまとめたファイル。
             時と場合によって圧縮したり、暗号化をしたりもする。

-------------------------------------------------------------------------

sonomannma2.jpg




~やり方~
-------------------------------------------------------
【1】FindFirstFile関数、FindNextFile関数を用いて、
   同じ階層のフォルダに入っているファイル名を取得。
【2】std::ifstreamを使用して、各ファイルのサイズを取得。
【3】ヘッダー部分と、ファイルの実データ部分のバッファを作成。
【4】ヘッダーと実データのバッファを合体させる。
【5】std::ofstreamを使用して「××.arc」の形式で書き出す。

-------------------------------------------------------

【1】ファイル名取得
ファイル名の取得の方法は以下の通り。
※フォルダ内のファイルのみを検索してます。以下のプログラムでは、
 深い階層が無くなるまで、再帰的にファイルを探すという事は出来ません。

見慣れない関数を使ってるだけで、複雑なことはしていません。

std::vector<std::string> g_FileNameVec;

//中略//

HANDLE t_FindHandle;
WIN32_FIND_DATA t_FindData;

t_FindHandle = FindFirstFile("*.*", &t_FindData);
//有効なハンドルが返ってきていれば
if (t_FindHandle != INVALID_HANDLE_VALUE) {
do {
//ディレクトリでなければファイル名を登録。
if((t_FindData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) == 0){
g_FileNameVec.push_back(t_FindData.cFileName);
}
} while(FindNextFile(t_FindHandle, &t_FindData));
FindClose(t_FindHandle);
}



【2】各ファイルのサイズを取得
【3】ヘッダー部分と、ファイルの実データ部分のバッファを作成
【4】ヘッダーと実データを合体


【2】~【4】まとめて記載します。

std::string t_ArchiveHeader;	//ヘッダ用
std::string t_FileData; //実データ用
std::string t_ArchiveData; //ヘッダ+実データ用

//取得したファイルの数だけ繰り返す
for(size_t i = 0, count = g_FileNameVec.size(); i < count; i++)
{
std::ifstream t_File;
t_File.open( g_FileNameVec[i].c_str(), std::ios::binary );
if(t_File != 0){
std::vector<char> t_BufVec;
char t_Str[1024];
//ファイルの終わりまで移動
t_File.seekg( 0, std::ifstream::end );

//ファイルサイズを取得
int t_FileSize = (int)t_File.tellg();
t_File.seekg( 0, std::ifstream::beg);

//ファイルを読み込む
t_BufVec.resize(t_FileSize);
t_File.read( &t_BufVec[0], t_FileSize );

//ヘッダー部分を作成(「サイズ"ファイル名"」の形式)
sprintf_s( t_Str, sizeof(t_Str), "%d\"%s\"", t_FileSize, g_FileNameVec[i].c_str());
t_ArchiveHeader += t_Str;

//実データ部分を作成
t_FileData.reserve(t_FileData.size() + t_FileSize);
for(int j = 0; j < t_FileSize; j++)
{
t_FileData += t_BufVec[j];
}
}
}
//ヘッダーと実データ部分を連結
t_ArchiveData = t_ArchiveHeader + '#' + t_FileData;



何をやっているのか分かりにくいですが、
要はアーカイブの一番初めに、「サイズ "ファイル名"」の形式
どんなサイズ/名前のファイルがあるかを列挙して、
#を区切り文字として、その次からデータが埋め込まれてます。

【参考画像】
archive.jpg

【追記】
上記の画像、メモリのTest1.pngの部分「1」が抜けてますね。
すみませんが、気にしないで下さい。


【5】アーカイブファイル書き出し
今回、アーカイブファイルの書き出しには、std::ofstreamを使用しました。
以下のソースを見ても分かりますが、何も難しい部分は無いです。

std::ofstream fout;
fout.open("MyArchive.arc", std::ios::out | std::ios::binary | std::ios::trunc);

if(fout != 0){
fout.write( t_ArchiveData.c_str(), t_ArchiveData.size() );
fout.close(); //ファイルを閉じる
}



次にアーカイブファイルの解析方法を記載します。

~やり方~
----------------------------------------------------------------------------
【1】アーカイブファイルをメモリドマップファイルとして開く
【2】ヘッダー部分を読み込む。
   ファイル名、ファイルサイズを取得
【3】各ファイルの実データのオフセット(開始位置)を計算

(サイズ200、100のデータがある場合、3つ目のデータ開始位置は300から、など)
【4】ヘッダーの長さを計算
【5】ヘッダーの長さ + 実データのオフセット を実データの開始位置として計算する

(サイズ100、200のファイルを合体させた場合、2番目の実データの範囲は
  p[100]~[299]となるが、ヘッダーの長さが45あった場合、当然 実データの開始位置も
    ヘッダーのサイズだけずれる。 (実データの範囲は p[145]~[344]となる。))
----------------------------------------------------------------------------

【1】アーカイブファイルをメモリドマップファイルとして開く
メモリドマップファイルって何じゃーと思うかもしれませんが、
これ一番重要。
(特にアーカイブファイルの読み込みにおいては)

まず、アーカイブファイルを読み込む際の問題点が2つ。
----------------------------------------
・ファイルサイズが巨大になっている為、一度に読み込むわけにはいかない
・ランダムアクセスをしたい

----------------------------------------

■前者について
前者は、例えばアーカイブファイルのサイズが1GBになっていたとします。
ゲーム起動時に1GBとか読み込んでたら間違いなく
起動時間の遅延メモリ不足による異常終了などの問題が出てきます。

■後者について
後者は、例えばタイトル画面で使うBGMや画像が バラバラに保存されているとします。
この場合、必要なファイルの位置まで、Seek関数とかfgets関数とかで
ファイルポインタを移動させるのは非効率です。

※仮にデータのサイズが1000あるとして、200、500の位置に該当ファイルがある場合、
以下の様に添え字を使って即ランダムアクセスできた方が絶対に便利です。
p[199]//該当ファイルの先頭部分
p[499]//該当ファイルの先頭部分

で、上記問題を解決してくれるのがメモリドマップファイルという訳です。
*****************************************************************
★メモリドマップファイルで読み込む利点
・ランダムアクセスが出来る
・ランダムアクセスで実際に読み込みを行った分しかメモリを消費しない。

*****************************************************************

【参考画像】
archive2.jpg

例えば上記のサイズが160のアーカイブファイルがあるとします。

この時、ヘッダーを読み込み(サイズ21)、
ヘッダーの情報からp[60]のファイルBを読み込んだ場合(サイズ48)、
使用メモリは 21 + 48 = 69だけ増加します。
※全体のサイズ分(160)の使用メモリ増加は起こらない。

実にすばらしいですね。

そんな訳で、メモリドマップファイルとして開く部分のコード。 ↓
//ファイルのハンドルを得る
m_FileHandle = CreateFileA( t_ArchiveFileName.c_str(), GENERIC_READ, 0, 0, OPEN_EXISTING, 0, 0 );
if( m_FileHandle == INVALID_HANDLE_VALUE ){
return(-1);
}

//ファイルのハンドルから、マップドファイルのハンドルを得る
m_MappedFileHandle = CreateFileMapping( m_FileHandle, 0, PAGE_READONLY, 0, 0, t_ArchiveFileName.c_str() );
if( m_MappedFileHandle <= 0 ){
return(-1);
}

まずファイルハンドルを取得、
そして、その取得したファイルハンドルをCreateFileMapping関数に渡して、
メモリマップドファイルとしてのハンドルを取得すればOKです。


【2】ヘッダー部分を解析(ファイル名、ファイルサイズ取得)
【3】各ファイルの実データのオフセット(開始位置)を計算
【4】ヘッダーの長さを計算


2~4はプログラム側で一気にやってるので、まとめて記載します。
まず、MapViewOfFile関数に、先ほどのメモリドマップファイルのハンドルを渡し、
ランダムアクセスできるポインタを取得します。

後は、そのポインタを用いて、ヘッダー情報の解析、
またファイル名とメモリの位置(添え字)を対応付けるstd::mapの登録
を行います。

//メモリの位置(添え字)、ファイルサイズ、ファイル名の構造体。
struct MyFileInfo {
int m_MemoryNum;
int m_FileSize;
std::string m_FileName;
MyFileInfo(int t_MemoryNum, int t_FileSize, std::string t_FileName){
m_MemoryNum = t_MemoryNum;
m_FileSize = t_FileSize;
m_FileName = t_FileName;
}
};

//ポインタを取得
m_pFile = (char*)MapViewOfFile( m_MappedFileHandle, FILE_MAP_READ, 0, 0, 0);

//アーカイブファイルの、ヘッダー部分の読み込み
int t_Num = 0, t_MemoryNum = 0, t_FileNum = 1;
for( ; m_pFile[t_Num] != '#'; t_Num++)
{
//ファイルサイズを読む
int t_FileSize = 0;
for( ; m_pFile[t_Num] >= '0' && m_pFile[t_Num] <= '9'; t_Num++)
{
t_FileSize = t_FileSize*10 + (m_pFile[t_Num] - '0');
}

//ファイル名を読む
char t_FileName[1024] = {'\0'};
t_Num += 1;
for( int i = 0; m_pFile[t_Num] != '"'; t_Num++, i++)
{
t_FileName[i] = m_pFile[t_Num];
}

//ファイルとポインタの位置を対応させる為のmap登録
MyFileInfo t_Info( t_MemoryNum, t_FileSize, t_FileName);
std::pair<std::string, MyFileInfo> p(t_FileName, t_Info);
m_FileNameMap.insert(p);

//ファイル番号で検索する為のVector登録
m_FileDataVec.push_back(t_Info);

t_MemoryNum += t_FileSize;
t_FileNum += 1;
}

//ヘッダーのサイズを保存
m_HeaderSize = t_Num + 1;


【5】ヘッダーの長さ + 実データのオフセット を算出


ファイル名 サイズ
Test1.png 120
Test2.png 250
Test3.png 330


アーカイブファイルの情報が上記だった場合、
std::mapには以下の様に登録された状態になります。

Key          Second
Test1.png  ( 0, 120, "Test1.png")//ファイル開始位置、サイズ、ファイル名 の順
Test2.png  (120, 250, "Test2.png")//ファイル開始位置、サイズ、ファイル名 の順
Test3.png  (370, 330, "Test3.png")//ファイル開始位置、サイズ、ファイル名 の順


上記std::mapのSecond内の
ファイルの開始位置は ヘッダーのサイズが考慮されていないので、
関数を実装する場合は、 ヘッダーのサイズ + ファイルの開始位置 を
実際のファイル開始位置として算出
する必要があります。

こんな感じ。↓
const char* CArchive::GetPointer(std::string t_FileName)
{
std::map::iterator it;
it = m_FileNameMap.find(t_FileName);

if(it != m_FileNameMap.end()){
//ファイル開始位置 + ヘッダーサイズが、実際のファイル開始位置!
return(&m_pFile[it->second.m_MemoryNum + m_HeaderSize]);
}else{
return(NULL);
}
}

※最初から、std::mapのsecond内のファイル開始位置を、
 (ファイル開始位置 + ヘッダーサイズ)で登録しておいても良い。
その際は、return(&m_pFile[it->second.m_MemoryNum]);と記載すればOKになる。

ただ、自分は何となく、
「各ファイルのサイズから算出した位置に、ヘッダーサイズ分のズレを足してますよ」というのを
分かり易くするために、あえてヘッダーサイズを後から足すプログラムにしてみた。
-----------------

あと最後に、使用したハンドルはCloseすればOKです。
忘れないようにしましょう。

//取得したポインタを開放
if( UnmapViewOfFile( m_pFile ) == 0 ){
// クローズ失敗
}
CloseHandle( m_MappedFileHandle ); // ファイルマッピングオブジェクトハンドルを閉じる;
CloseHandle( m_FileHandle ); // ファイルハンドルを閉じる


以上です。


そして以下がソースコード。
それぞれ、main.cpp、CArchive.h、CArchive.cppとかに変更して
実行させてみてください。

何か問題が発生しそうな動作が無ければ
おそらく正常に動作すると思います。

■約束事?
・ファイル名にマルチバイト文字が入っていない事
・実行ファイルを強制終了させない事
・アーカイブファイルじゃないファイルの拡張子を、.arcに変更しない事
・アーカイブファイルをテキスト形式で開いて、そのまま上書き保存しない事
・複数のアーカイブファイル自体をアーカイブファイル化しない事 (解析できません)
・アーカイブファイル読み込み中に、読み込み中のアーカイブファイルの削除、移動はしない事
・ファイルの拡張子は、全部大文字または小文字である事 (.PnG .Jpgとかは×)

・画像と音楽ファイルのみ再生可能


【ソースコード】Main.txt
【ソースコード】CArchive_h.txt
【ソースコード】CArchive_cpp.txt

操作方法:Z ・・・ 決定    「→」「←」「↑」「↓」 ・・・ カーソル移動
     Enter ・・・ 決定   X ・・・ 選択したファイルのキャンセル 

【実行画像】
archive3.jpg


↑アーカイブファイルを解析した際の画像。

解析した画像のサムネイルを作成して、綺麗に列挙するなんていう機能は無く、
画面中央右くらいに画像が表示されるのみ
(画像がウィンドウ内に収まりきらないから縮小表示、とかそういう考慮はしない。)
という投げやりな仕様になってたりする。

とりあえず解析できれば良いんですよ・・・!(`・ω・´)

【補足】
忘れてた。
DXライブラリを使用する場合、ファイル名ではなくメモリを指定して
画像、音声ファイルを読み込む場合
は以下の関数を使います。

・CreateGraphFromMem関数//メモリ位置を指定して、画像読み込み
・LoadSoundMemByMemImage関数//メモリ位置を指定して、音声読み込み


★使用例
const char* t_p = t_Archive.GetPointer(i + 1);
int t_FileSize = t_Archive.GetFileSize(i + 1);
CreateGraphFromMem( (void*)t_p, t_FileSize );

★使用例
const char* t_p = t_Archive.GetPointer(i + 1);
int t_FileSize = t_Archive.GetFileSize(i + 1);
LoadSoundMemByMemImage( (void*)t_p, t_FileSize );

テーマ : ゲーム製作 関連 - ジャンル : ゲーム

ジャンプ42号感想

●スケットダンス
-------------------------------------------
いいから出て来いっつってんだコラァ!!!!
-------------------------------------------
実に無茶苦茶である。

人の家の窓ガラス叩き割って部屋に侵入するとか、
器物損壊と不法侵入に該当するのではないかと。

こんなんされたら、
「改心して部屋の外に出る」ではなく、
「降伏して部屋の外に出る」という心理状態になると思う。
(精神の救済とはちょっと違う。)

あと、
窓ガラスをバリバリ破壊しながら
進入するのは危険
ですね。

自分の人生の経験上、
ガラスに人間が突っ込む所を見たことがあるのですが、
その人は突っ込んだ瞬間 血だらけになって病院へ搬送されました。
(肘から手首あたりまで、スパッと切れてた。命に別状は無かったですが。)

漫画とかじゃガラスを突き破るシーンとかありがちですが、
実際にはやるべきではない危険な行為だと思います。


●トリコ
四天王が苦戦しているのに、マンサムは一体何をしているんだろう?
と思ったのですが、

そういえば「ワシの出番かぁ・・・?」とか言っている時に、
後ろに誰か居ましたね。
-------------------------------------------------------------
【1】四獣を操っている黒幕と遭遇。 現在 交戦中。
【2】四獣を操っている黒幕から不意打ちを食らう。 現在 気絶中。

-------------------------------------------------------------
上記のように、助太刀にいけない状況なのかもしれない。


●暗殺教室
E組以外の 生徒・教師が酷い。

学力はあるかもしれんが、人間性として終わってるんじゃないかコレ。
もう全員 新しい血族の末裔か何かのような気がする。(悪意の定向進化。)

有名大学とかに進学しても、こんなんでいいのか。

・・・あ、理事長としては
----------------------------------------------------------------------------
有名大学に進学 ⇒ 学校の評価があがるからOK、生徒のその後は知らん。
----------------------------------------------------------------------------
こんな感じなのかな。
うーむ合理的過ぎる・・・。


●めだかボックス
えっなんか化け物が出てきたんだが。

安心院さんですら15秒程度しか足止めできないとは、
一体何なんだこいつは。

とりあえず、不知火半袖さんを学園に戻したくば、
村の番人や村の風習をぶち壊せ
 という展開になるのかな?


●クロスマネジ
この漫画は心理描写とかが良いですね。
物語の展開次第では、ちゃんとしたまじめなスポーツ&青春漫画になるかなと思う。

次回に期待!

それと将棋についてですが、
自分も棋士を目指している訳ではありませんが、
対局の途中で、ガシャガシャーと駒の位置を無茶苦茶にされたら腹立つ。

テーマ : 週刊少年ジャンプ全般 - ジャンル : アニメ・コミック

ローグライクゲームを作ってみよう!  その4 ~マップスクロールその他~

ローグライクゲームを作ってみよう!の企画 第四弾です。
今回 実装するのはマップスクロール & マップ表示です。

マップスクロールは多分、最初に躓くところなんじゃないかなと。
という訳で、早速解説。


~解説~


<追記予定!>




いつものごとく、先にソースコードを貼っておきます(_ _)

※今回のソースコードでは、
以下が自由自在に出来ます。
-------------------------
・マップスクロール
・マップの表示領域 設定
・マップチップのサイズ設定
・カメラの種類の設定

-------------------------

【ソースコード】Rogue1.txt

Rogue.jpg

↑マップを描画する区間(縦×横のサイズ)を変更したり、
 マップを描画し始める左上の座標を変更したり、
 マップチップのサイズを変更したり、
 「主人公がマップの中心に来るような表示」や、「主人公を無視したマップの任意の場所を表示」
(カメラワークの設定)が自在に行えます。


■次回予告
ローグライクでは、以下の様に さまざまな移動および移動速度の敵がいます。
---------------------------------------
・主人公が一歩進むごとに3歩進む
・別の場所にテレポートする
・斜めに移動する

---------------------------------------
こういった、移動速度などの違いを出すためにはどうすればよいのか?を
次回解説します・・・! どんどん実装していきます! お楽しみに!(`・ω・´)

テーマ : ゲーム製作 関連 - ジャンル : ゲーム

ジャンプ41号感想

●トリコ
なんと、四獣は四天王全員でも倒せないという。
コレは・・・マンサムさんゾンゲの出番ですね。

マンサムさんは、普通に肉弾戦で戦ってくれるとして、
ゾンゲに関しては、Mrサタン的な立ち位置で
地味に重要な役割を果たして
くれそうな気がする。

とりあえず、ゾンゲさんは四獣に対して
屁でもこいてればいいんじゃないでしょうか。

もしかしたら四獣の動きを(一時的かもしれないが)とめられるかもしれない。
("ゾンゲの屁の臭さの恐ろしさ"は、美食會に匹敵する、っていう設定ありましたし)


●戦星のバルジ
終わったか。。。

話自体、明るい内容ではなかったし、
敵の討伐も、それほど爽快感があるという訳では無かったし、
それが原因なのかなーと思ったり。

最後の"おしまい"が投げやりな感じがしなくも無い。


●恋染紅葉
どうしよう。先の展開があまり気にならない。

やっぱり恋愛モノは、登場人物に興味を持ってないと(感情移入できないと)
先が気にならなくなってしまう
という、危険性があるような気がする。
(連載的な意味で)

とりあえず、何らかの理由により、
春日小鳥が改心する展開になるんじゃないかなーと。

例えば、こんな感じ。
①春日小鳥が、芸能生命の危機に立たされる
②そこを、主人公が助けてくれる
③小鳥:「どうして、私のことを・・・?」
④主人公:「俺の家族や妹はアンタのファンなんだ、だから…」
⑤小鳥さんが改心



●暗殺教室
イリーナ先生は、倉庫での暗殺のときに
対先生弾を使っていれば暗殺に成功してた
んじゃないかなーと、ふと思った。

ひとまず、 新しい暗殺者が現れた ⇒ 殺先生の勝利 
⇒ 新しい暗殺者が現れた ⇒ 殺先生の勝利
これが繰り返されるとマンネリになりそうなので、ここら辺で別次元の展開を希望…!


●烈!!!伊達先パイ
この漫画は、勢いが良いですね。
べるぜバブみたいに気軽に読める感じの漫画になりそうです。

もう、ひたすらハイテンションで暴走して行けば面白いと思います(笑)


●クロガネ
最後は気合や努力的なもので勝ってしまった(´・ω・`)

個人的に、「ここを攻撃するときにこういう理由で隙が出来る」みたいな
理屈とかで倒す方が良いなーと思いました。
(しかし、剣道という題材である以上、そんなに数多くの戦略とか策略は作れなさそうである)

次回は、2TOPの対決との事ですが、
こちらもどんな強さを持っているのかをキャラ別に用意できているのかが心配だったり。

●斉木楠雄のΨ難
霊能力者が出てくるのは面白い展開だと思った。
しかも寺生まれのTさんじゃないですか。
(寺生まれのTさんって、知っている人は少なそうなのだがどうなんだろう?)

こっちのTさんは煩悩に塗れまくってますけども。


●BLEACH
おぉ総隊長が格好よい・・・!
久保先生は見せ場のコマとか描くのが上手いと思う。

先に卍解を見せてしまったので、相手からの反撃がありそう、
というのが 少し気がかりな点ではありますが。

それはともかく、
なんかルキア奪還編の頃の雰囲気が出てきたような気がする・・・!

テーマ : 週刊少年ジャンプ全般 - ジャンル : アニメ・コミック

あたい最強!-今日は一日あたいのターン!- にて頒布終了いたしました!

本日、博多スターレーンにて
「チルノのパーフェクトにほんご教室!」の頒布を終了致しました!
(一枚300円)

ご来場いただいた方、本当にありがとうございます!

絵師である"乙谷"さんがパケ絵を印刷、30枚ほど作成して
会場で頒布したのですが、なんと45分くらいで完売しました。
-------------------------------------------------
完売するとは思っていなかったので、誠にうれしい限りです。


そして、現状の報告のあった、
質問や不具合に関する内容を記載いたします。

■仕様について
・難易度「よゆー」「ふつう」「むずい」の設定がありますが、
 「よゆー」の場合、エンディングは流れない仕様になっております。
・りざると画面では、「Z」キーを押すとタイトル画面に戻ります。
・りざると画面の「Y」「Z」とかって何?
 ⇒スコアによってランクをつけております。 ランクは以下の27通りです。
  S,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,T,U,V,W,X,Y,Z,Bad

■不具合について
・一部のSEが、オプションのSE音量設定「大」「中」「小」「無」の反映が行われない
・設定情報は保存されているが、その設定が反映されない
(難易度「むずい」に設定変更後、ゲームを再起動したら「むずい」が選択された状態に
 なっているものの、 実際のゲーム画面では「よゆー」の設定になっている。)


上記以外の不具合や、また改善案などがあれば
お手数ですが、報告をよろしくお願いいたします。


適宜 報告された不具合 改善案を纏め、修正し、
Ver更新を行ってまいりたいと思います。


最後に。
改めて本日ご来場いただいた方、本当にありがとうございました!

今後もゲーム製作を続けてまいりますので、「このジャンル作って欲しい」とか
要望がございましたら気軽に連絡をお願い致します。

※技術力がまだ足りないので、作り終わるまでに時間がかかったり、
 現状 技術的に作れない(MMORPGとか)かもしれませんが、
 最大限意見を取り入れて参りたいと思います

テーマ : ゲーム製作 関連 - ジャンル : ゲーム

明日(9/9)のイベントで頒布するゲームの紹介をします!

ついに明日がイベント当日になります。

※ブログのTOPにバナーとか貼っていますが、
イベント「あたい最強!-今日は一日あたいのターン!-」に出展します。
ブースの場所は強 - 21です。



で、頒布するゲームはコレです。
チルノのパーフェクトにほんご教室!
MyGame1.png

MyGame2.png

見たら分かりますが、パズルゲームです。

通常のパズルゲーム(ぷよぷよとか)では、色付きブロックが降ってくるのですが、
このゲームでは文字が降ってきます。
で、単語が成立したら消えます。そんなゲームなのです。

通常のパズルゲームとは違い、
消滅判定がかなり特殊なので、実装&バグ取りに手間がかかりました。

あ、あと このゲームにはミッションというものがあります。 (画面中央右)
-------------------------------------------------
・フィールド上のブロックを全部消せ
・同じ単語を同時に3個消せ
・同時に複数の単語を作れ
・「あ」から始まる単語を作れ
・「け」で終わる単語を作れ
・2連鎖をせよ

-------------------------------------------------
上記の様な課題が最大4つ出されるので、
それをクリアするとボーナスポイントが入る仕組みです。
(クリアしたら、ランダムでまた別の課題が出される)

※補足?:消滅判定をする際に、「あ」から始まる単語があったか、
 同じ単語がそれぞれ何個成立しているか、も判定してたりします。
 

というわけで、上記のゲームを頒布してきます!
場所は福岡市 博多スターレーン です!お楽しみに!

テーマ : ゲーム製作 関連 - ジャンル : ゲーム

ジャンプ40号感想

※お詫び※
現在9/9のイベントに向けて全力を尽くして灰になりかけている為、
記事の更新が遅くなっております。

9/9以降より、もとの更新ペースに戻ります。
------------------------------

そんなわけでジャンプ感想。


●パジャマな彼女。
なんか終わりました。

結局、番長とか何のために登場したの?とか、
治療法を探すとか言って、その後海外へ行った医者(おじいさん)どうなっちゃったの?
とか、色々と突っ込みどころはあるわけですが、
感想を纏めてみようと思います。

結論:話がまとまってなかった。

最初の展開は面白かったんですが、
それ以降、まくらがどういう状態なのか不明だったり、(物に触れる?触れない?)
パコ野郎が出てきたり、もう方向性を見失っていたという他無し。

恋愛なら心情の変化などをもっと描くべきだったと思うし、
出来るのならば謎解き(まくらの治療法模索)も同時進行させるべきだったかな、と。

上記2点を何気にうまく進行させてるのがニセコイなんじゃないかと思ったり。


<追記予定!>

テーマ : 週刊少年ジャンプ全般 - ジャンル : アニメ・コミック



上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。