プログラミング、ゲームシステムなど普段考えたことについてのメモ帳代わり。
No.4
2009/04/02 (Thu) 18:59:56
普段からあらゆる時間配分を考えて行動している、そんな人に出会ったことは無い。けれど、無意識の時間配分・・・結果から振り返った過程が1つ、人と人との大きな差となって現出する。
この長い春休み、2ヶ月間を私はほぼ何もしないまま過ごした。
新4年生としてもちろん、就職活動は行った。その過程で過去に制作したゲームのソースコードを修正したり、新しいゲームの制作に取り組んだりもした。
しかしその内実は酷いもので、何かをし得たとは言い難い有様だ。
ここで冒頭に戻る。春休みの自分が出した、何もしていないという結果。そこから詳細を振り返ってみる。
時間について考えてみると、自分にとって必要性のあることに費やした時間が非常に短いという結論が出る。
具体的には、時間的浪費ばかりが目立つ”ただの遊び”にかけた割合が8割程度、ゲーム制作など自分にとって今必要な事柄にかけた時間が2割程度。さらにその2割が、私の散漫な興味のおかげで細分化される。細分化されてそれでも残った、ゲーム制作に関わった時間というのは5%程度しかないのではないか。私はそう考える。
この私の2ヶ月間を1と考えると、その中で10を完了する人が世界には多数いることだろう。何せ5%を10倍したところで時間的には半分、50%にしかならないのだから。そういった人たちは、私のような愚かな時間の使い方をしない。それが計算されたものであれ、無意識であれ。
ともかく、なんとかしてこの状態を脱却せねばならない。でなければ私は典型的なダメ人間で終わってしまう。
だが、自分を統制できないからこそ今私はこうしている。脱却するのは簡単なことではない。
それでもしなければならないのだから、1つの妙案としてはやはり、ゲームを削ることだろう。無駄を有益へシフトする。
そして今までの10倍とは言わないが、せめて5倍の結果を出す。本来なら、そこそこのゲームであれば1日で原型が全て出来上がってしまうくらいなのだから、今の状況がむしろ異常なのだ。
時間は有限であると自覚する必要がある。
この長い春休み、2ヶ月間を私はほぼ何もしないまま過ごした。
新4年生としてもちろん、就職活動は行った。その過程で過去に制作したゲームのソースコードを修正したり、新しいゲームの制作に取り組んだりもした。
しかしその内実は酷いもので、何かをし得たとは言い難い有様だ。
ここで冒頭に戻る。春休みの自分が出した、何もしていないという結果。そこから詳細を振り返ってみる。
時間について考えてみると、自分にとって必要性のあることに費やした時間が非常に短いという結論が出る。
具体的には、時間的浪費ばかりが目立つ”ただの遊び”にかけた割合が8割程度、ゲーム制作など自分にとって今必要な事柄にかけた時間が2割程度。さらにその2割が、私の散漫な興味のおかげで細分化される。細分化されてそれでも残った、ゲーム制作に関わった時間というのは5%程度しかないのではないか。私はそう考える。
この私の2ヶ月間を1と考えると、その中で10を完了する人が世界には多数いることだろう。何せ5%を10倍したところで時間的には半分、50%にしかならないのだから。そういった人たちは、私のような愚かな時間の使い方をしない。それが計算されたものであれ、無意識であれ。
ともかく、なんとかしてこの状態を脱却せねばならない。でなければ私は典型的なダメ人間で終わってしまう。
だが、自分を統制できないからこそ今私はこうしている。脱却するのは簡単なことではない。
それでもしなければならないのだから、1つの妙案としてはやはり、ゲームを削ることだろう。無駄を有益へシフトする。
そして今までの10倍とは言わないが、せめて5倍の結果を出す。本来なら、そこそこのゲームであれば1日で原型が全て出来上がってしまうくらいなのだから、今の状況がむしろ異常なのだ。
時間は有限であると自覚する必要がある。
PR
No.3
2009/03/23 (Mon) 16:22:45
さほど調べずに書いています。
私は大抵やっつけ仕事なのでC++の仕様などあまり知らないのですが、
--------------------------------------
class Charactor{
private:
void Attack();
void Dush();
void Stand();
public:
void (*Action)();
void Init();
public:
Charactor();
virtual ~Charactor();
};
Charactor::Init(){
Action = &Stand;
}
大体、virtualつけてもいないのに仮想関数って・・・つまりメンバ関数は仮想関数と同義(そのクラス内に限った――継承関係を考えない場合)ってこと?
詳細は後で調べるとして・・・ 同様の方法を取るならstaticしかなく、staticにするとメンバ変数がダイレクトに扱えないから結局ダメ。
そうすると、やっぱり
--------------------------------------
enum ENUM_CHARACTOR_ACTION{
ACTION_STAND,
ACTION_ATTACK,
ACTION_DUSH
};
class Charactor{
private:
ENUM_CHARACTOR_ACTION m_enum_action;
private:
void Attack();
void Dush();
void Stand();
public:
void Action();
void Init();
public:
Charactor();
virtual ~Charactor();
};
Charactor::Init(){
m_enum_action = ACTION_STAND;
}
Charactor::Action(){
switch(m_enum_action){
case ACTION_STAND: Stand(); break;
case ACTION_ATTACK: Attack(); break;
case ACTION_DUSH: Dush(); break;
default: break;
}
}
--------------------------------------
みたいな感じになるのかね。
色々と誰かに聞きたい気はするけれど、あくまでこのページはメモ帳。コメントを残せるようにしたり新着がトップに上がるようにしたり・・・ということはしない方向で。
・メンバ関数はインスタンス化されない限り仮想関数扱い
・↑の文に騙されてはいけない
・詳細は改めて調査すべし
と、いうことでした。
私は大抵やっつけ仕事なのでC++の仕様などあまり知らないのですが、
--------------------------------------
class Charactor{
private:
void Attack();
void Dush();
void Stand();
public:
void (*Action)();
void Init();
public:
Charactor();
virtual ~Charactor();
};
Charactor::Init(){
Action = &Stand;
}
--------------------------------------
大体、virtualつけてもいないのに仮想関数って・・・つまりメンバ関数は仮想関数と同義(そのクラス内に限った――継承関係を考えない場合)ってこと?
詳細は後で調べるとして・・・ 同様の方法を取るならstaticしかなく、staticにするとメンバ変数がダイレクトに扱えないから結局ダメ。
そうすると、やっぱり
--------------------------------------
enum ENUM_CHARACTOR_ACTION{
ACTION_STAND,
ACTION_ATTACK,
ACTION_DUSH
};
class Charactor{
private:
ENUM_CHARACTOR_ACTION m_enum_action;
private:
void Attack();
void Dush();
void Stand();
public:
void Action();
void Init();
public:
Charactor();
virtual ~Charactor();
};
Charactor::Init(){
m_enum_action = ACTION_STAND;
}
Charactor::Action(){
switch(m_enum_action){
case ACTION_STAND: Stand(); break;
case ACTION_ATTACK: Attack(); break;
case ACTION_DUSH: Dush(); break;
default: break;
}
}
--------------------------------------
みたいな感じになるのかね。
色々と誰かに聞きたい気はするけれど、あくまでこのページはメモ帳。コメントを残せるようにしたり新着がトップに上がるようにしたり・・・ということはしない方向で。
■■■まとめ
・メンバ関数はインスタンス化されない限り仮想関数扱い
・↑の文に騙されてはいけない
・詳細は改めて調査すべし
と、いうことでした。
No.2
2009/03/21 (Sat) 08:46:30
才能云々じゃない。それは程度の差を作ることしかしない。
結局、出来る人と出来ない人の間にあるのは、結果が出るまでそれを続けられるか否かということなのだと思う。
継続は力なりとはよく言ったもので、そもそも一瞬で結果を得ようということ自体が間違っているのだ。確かに極限まで割り裂いた一欠を成すのは一瞬の結果かもしれない。しかしそれは表出されない極微小なものでしかない。
何かが明確な形を持つためには、相応の継続と努力が必要となる。見えにくい現状からダメだと判断し努力をやめてしまうと、それこそそのままになってしまう。ひたすら走り続けることができるなら、いつかそれは明確な形を持つ。
どんなことであれ、過程というのは結果があって初めて顧みられるものだと思う。自分自身にしてもそうだ。自分の過程に自信を持ち、自分自身に自信を感じるのは結果があってこそ。
真っ直ぐに、ひたむきに、折れることなく。
諦めず、軸を曲げず、続けること。
そこに、集約される。
結局、出来る人と出来ない人の間にあるのは、結果が出るまでそれを続けられるか否かということなのだと思う。
継続は力なりとはよく言ったもので、そもそも一瞬で結果を得ようということ自体が間違っているのだ。確かに極限まで割り裂いた一欠を成すのは一瞬の結果かもしれない。しかしそれは表出されない極微小なものでしかない。
何かが明確な形を持つためには、相応の継続と努力が必要となる。見えにくい現状からダメだと判断し努力をやめてしまうと、それこそそのままになってしまう。ひたすら走り続けることができるなら、いつかそれは明確な形を持つ。
どんなことであれ、過程というのは結果があって初めて顧みられるものだと思う。自分自身にしてもそうだ。自分の過程に自信を持ち、自分自身に自信を感じるのは結果があってこそ。
真っ直ぐに、ひたむきに、折れることなく。
諦めず、軸を曲げず、続けること。
そこに、集約される。
No.1
2009/03/08 (Sun) 00:20:15
標準ライブラリ<time.h>の時間計測関数には、time()とclock()の2つが存在します。
time()とclock()の違いについて、自分が利用している統合開発環境『Visual Windows for BC++』に付属しているリファレンスでは、
「clock()はパラメタをとらないことを除いて、time()とまったく同じです。」
と記載されていました。
でも、それではなぜ2つもあるのか、ということになります。
そこで、ググってみたところ・・・
こちらのページ↓
http://www.mm2d.net/c/c-02.shtml(碧色工房様)に、
「clock() で求まる時間はそのプロセスが消費したプロセッサ時間になります. 一方,time(time_t *) で求まる時間は歴時間です.」
とありました。
碧色工房様ではVC++を利用していたようだったので、BCCでは実装が違うなんてアレなこと・・・はないよなぁ?
ということで、疑念を晴らすために実験してみました。
ら、異なる値が表示されました。
リファレンスが間違っていたということだな、ということで解決。
・・・かと思いきや、自分の勘違いだと気づく。
そもそも意味を取り違えていたのだということに。
確かに表示される値は異なるのですが、それがプロセッサ時間と歴時間との違いなのかどうかを調べたわけではありませんでした。
ヘッダがちょっと、見てみたは良かったんですが、C++への理解と慣れがなんとも言えない自分にはtemplateクラスをだーっと見ていくのがつらすぎてやめてしまったため、特に実装については見ていないのでした・・・。
ということでもう一度・・・
めんどくっせぇ!
以上。ダメな結論でした。
実際に必要だったのはclock()がプロセッサ時間か歴時間かということではなく、どれだけの精度が出るのかということだったので、これでよしとしてしまいましょう。
一応、clock()はプロセスをほぼ占有状態であればmsほど(主にWindows系のことらしい)の精度が出るようですので。
まとめ
・time()は秒精度
・clock()はミリ秒精度
・clock()はプロセッサ時間で計測
以上3点でした。
time()とclock()の違いについて、自分が利用している統合開発環境『Visual Windows for BC++』に付属しているリファレンスでは、
「clock()はパラメタをとらないことを除いて、time()とまったく同じです。」
と記載されていました。
でも、それではなぜ2つもあるのか、ということになります。
そこで、ググってみたところ・・・
こちらのページ↓
http://www.mm2d.net/c/c-02.shtml(碧色工房様)に、
「clock() で求まる時間はそのプロセスが消費したプロセッサ時間になります. 一方,time(time_t *) で求まる時間は歴時間です.」
とありました。
碧色工房様ではVC++を利用していたようだったので、BCCでは実装が違うなんてアレなこと・・・はないよなぁ?
ということで、疑念を晴らすために実験してみました。
ら、異なる値が表示されました。
リファレンスが間違っていたということだな、ということで解決。
・・・かと思いきや、自分の勘違いだと気づく。
そもそも意味を取り違えていたのだということに。
確かに表示される値は異なるのですが、それがプロセッサ時間と歴時間との違いなのかどうかを調べたわけではありませんでした。
ヘッダがちょっと、見てみたは良かったんですが、C++への理解と慣れがなんとも言えない自分にはtemplateクラスをだーっと見ていくのがつらすぎてやめてしまったため、特に実装については見ていないのでした・・・。
ということでもう一度・・・
めんどくっせぇ!
以上。ダメな結論でした。
実際に必要だったのはclock()がプロセッサ時間か歴時間かということではなく、どれだけの精度が出るのかということだったので、これでよしとしてしまいましょう。
一応、clock()はプロセスをほぼ占有状態であればmsほど(主にWindows系のことらしい)の精度が出るようですので。
■■■
まとめ
・time()は秒精度
・clock()はミリ秒精度
・clock()はプロセッサ時間で計測
以上3点でした。