ヘキサ日記 Blog

 

        

こんにちは、しんちゃんです

 

今回は、学生時代に友人から教わった、
コマンドプロンプトでゲームを作る時のひと工夫を紹介します

 

 

私がまだC言語を使用してコマンドプロンプト上でゲームを作っていた頃。

 

ある時、友人が作ったゲーム画面を見てみると・・・

 

文字しか出力できないはずの画面に、
某シューティングゲームの機体が表示されているではありませんか!?

画面こそ白黒であるものの、確かにそれは機体の形をしています。

 

「どうして絵が表示されているんだ!!!?」

 

とんでもない衝撃を受けました

 

一体どんな魔法を使っているんだ・・・
くやしい・・・

 

(くやしさのあまり、調べに調べて、コマンドプロンプトで
  ビットマップ画像を表示させる機能を作成したのは、また別のお話)

 

その後、友人に種明かしを聞くと、「外字エディタ」を使っていたとのこと。

 

外字エディタとは・・・
ざっくり言うと、自分で文字を作成できるソフトです。
Windowsには標準で搭載されています。

 

ss01
↑のような文字を作れます

 

ソフトの使い方に関しては省きますが、
作成した文字をテキストエディタで入力してみると・・・

 

ss01

 

描いた絵が表示されている!!

 

これでコマンドプロンプトでも絵が表示できる!

 

注)
外字エディタで作成した文字は、自分のパソコンでしか表示されません。
作ったゲームを他の人に渡すときは、ご注意を・・・

 

汎用的なテクニックではありませんが、
覚えておくと、どこかで役立つかもしれませんよ!

 

 

それでは~


        

こんにちは

まだまだ寒さが続く今日このごろ、
今でもコート、手袋、マフラー、ヒートテック、カイロが手放せないノブです。
カイロを切らしているので、早く買いに行かねば・・・

 

さて、学生の皆さんは就職活動まっただ中ではないでしょうか。
私もおととし、同じ経験をしていました。

 

色々不安もありましたが、とにかく自分の好きなプログラムを書き続けていたこと、
がむしゃらだったことはよく覚えています

 

ゲームプログラマー希望の大半の学生さんは、
オリジナルゲームを作って企業さんにアピールをしていくと思います。
少しでも、クオリティアップを図るため、様々な技術や工夫を
直前まで行うことが多いと思います。
かつての私もそうでした

 

ただ、テストプレイをしていてどうしてもわからない不具合が発生する場合があります
そんな時に役に立つかもしれないのが、静的解析です。

 

Visual Studio 2010以降、標準機能として「コード分析」という
静的解析機能が実装されています。
これで、自分のプロジェクト(ソリューション)を静的解析して、
不具合を招くかも知れないコードを検出することができます。

 

ありがたいことに、Visual Studio のExpressバージョン(無償バージョン)にも
実装されている機能です

 

ということで、当時私が就職活動に使用していた作品に対して、
Visual Studio Express 2012 で静的解析をかけてみました

 

Visual Studio Express 2012を起動し、
[ビルド]→[ソリューションでコード分析を実行(Alt + F11)]を選択すると実行できます。
(または[ビルド]→[プロジェクトのみ]→[【プロジェクト名】のみでコード分析を実行]で
プロジェクトのみの静的解析を実行することができます。)

20080108_1

 

すると、コード分析用のウィンドウが出現し、静的解析を実行します。
(解析中なので、ドキドキする時間でもあります・・・)

20080108_2

 

実際の結果がこちらです。
私の就職作品で危険コードと判断されたのは、5箇所でした。
(思ったよりも少なかったですが、検出されてしまいました・・・)

20080108_3

 

上記の静的解析結果は、enemyポインタ変数を、
NULLチェックせずにアクセスしているので、
危険コードと判断されてしまったようです。

 

このコードは、場合によっては強制停止の不具合につながるので、
きっちりNULLチェックするべきですね。
(かつて自分の書いたコードですので、恥ずかしいです・・・)

 

これ以外にも以前、シラッチが紹介していた、様々な静的解析ツールがあるので
試してみてはいかがでしょうか?

 

ちなみに紹介されているツールの一つである「CppCheck」で静的解析をかけた結果、
結構な数が出てきてしまいました・・・

20080108_4

 

作品の品質を向上させることはもちろんですが、
不具合を生みにくいプログラムを組むことで、更にクオリティの高いものに仕上がります。

 

明日までですが、弊社では2次募集受け付け中ですので
ゲームを作る熱意と技術を持った方をお待ちしています

 

それでは


        

皆さん、こんにちは

 

本日でヘキサドライブは7周年になります!!

 

私自身は、昨年4月に入社してから初めて迎える創業記念日です。

 

ヘキサドライブの一員になってから一年経とうとしているんだなぁと
しみじみ感じている、ビッシーです

 

 

 

 

話は逸れてしまいますが、本日の技術ネタということで、 

C++11から導入されたムーブセマンティクスをご紹介します
「ムーブセマンティクス」とは「データの受け渡し」表すための新しい意味表現の事です。

 

例えばswap処理を古い方法で書くと、下記のようになります。

 

template<typename T>
swap(T& a, T& b) {
    T tmp = a;	// 一時データのコピー
    a = b;	// aにbのデータをコピー
    b = tmp;	// tmpにaのデータをコピー
}

 

 

swapするたびにtmpインスタンスを生成しなけばならないため、
型Tが大きいオブジェクトを所有している場合、オーバーヘッドが非常に大きくなってしまいます
(もちろん、型Tの代入が2回行われていることもオーバーヘッドの原因になります)

 

しかし、tmpはあくまでswap用にデータを退避させているだけです。
a,bに対する代入も「データのコピー」が目的ではなく、あくまで「データの受け渡し」をしているだけです。

 

実は代入には、代入元への副作用によって、
「コピー(複製)」「ムーブ(受け渡し)」の二種類が存在していたのです!!

 

C++11以前では、このコピームーブという二つの意味を切り分けて表現することが難しい状態でした

 

そのため、C++11からは左辺値(再参照する値)右辺値(一時的な値)への参照を
型として扱うことができるようになり、
クラスに「ムーブコンストラクタ」「ムーブ代入」実装するだけで、
「データのコピー」「データのムーブ」を明示的に切り分けて処理することができるようになりました

 

 

対応したクラスはこんな感じになります
(分かりやすくするため、バッファデータの管理は生ポインタでやっています)

 

class MyClass {
public:
    typedef std::array<float, 4*1024*1024> buffer_type;

    MyClass(float f) : _pData(nullptr) {
        _pData = new buffer_type;
        std::fill( _pData->begin(), _pData->end(), f );
    }

    ~MyClass() {
        if( _pData ) {
            delete _pData;
        }
    }

    // コピーコンストラクタ
    MyClass( MyClass& a ) : _pData(nullptr) {
        _pData = new buffer_type;
        *this = a;			// コピー代入演算を呼び出します
    }

    // コピー代入演算
    MyClass& operator=( MyClass& a ) {
        std::copy( a._pData->begin(), a._pData->end(), _pData->begin() );
        return *this;
    }

    // ムーブコンストラクタ
    MyClass( MyClass&& a ) : _pData(nullptr) {	// 引数は右辺値参照(&&)と呼ばれる型になります
        *this = std::move(a);	// ムーブ演算代入を呼び出します
    }

    // ムーブ代入演算
    MyClass& operator=( MyClass&& a ) {
        if( _pData ) {
            delete _pData;	// 元々、所有していたバッファは解放させます
        }
        _pData = a._pData;	// ムーブ元のバッファをそのまま再利用させます
        a._pData = nullptr;	// 元のバッファのポインタを無効化(二重解放防止)
        return *this;
    }

private:
    buffer_type* _pData;
};

 

 

大切なのは、ムーブコンストラクタムーブ代入演算を定義する事と、
それぞれの実装を引数の右辺値を有効活用して、効率良くすることです。
(右辺値は再度参照されず、そのまま捨てられる性質を活用しましょう!!)

 

コピームーブは呼び出し側の書き方で切り分けされるので、
std::move以外は特に気にしないで大丈夫です

 

MyClass a(1.0f), b(1.0f);
a = b;				// コピー代入演算が呼び出される
MyClass c(a);			// コピーコンストラクタが呼び出される
c = std::move(a);		// ムーブ代入演算が呼び出される
MyClass d(std::move(c));	// ムーブコンストラクタが呼び出される

auto fill2 = []() -> MyClass { return MyClass(2.0f); }
a = fill2();			// ムーブ代入演算が呼び出される

 

 

 

 

 

 

では、実際にcopymoveで呼び出しコードがどう変わるのか見ていきたいと思います。

 

「copy版のswap」「move版のswap」を用意して計測してみました。

 

template<typename T>
void copySwap(T& a, T& b) {
    T tmp = a;
    a = b;
    b = tmp;
}

template<typename T>
void moveSwap(T&a, T& b) {
    T tmp = std::move(a);
    a = std::move(b);
    b = std::move(tmp);
}

int main(int argc, char** argv)
{
    MyClass src(0.0f), dst(1.0f);

    std::cout << "time(ms) copySwap : " << time( [&src, &dst]() {
        for(size_t i=0; i<1024*64; ++i) {
            copySwap( src, dst );
        }
    }) << std::endl;

    std::cout << "time(ms) moveSwap : " << time( [&src, &dst]() {
        for(size_t i=0; i<1024*64; ++i) {
            moveSwap( src, dst );
        }
    }) << std::endl;

    return 0;
}

 

【実行結果】

time(ms) copySwap : 1026614
time(ms) moveSwap : 17

 

実際に、逆アセンブル結果を覗いてみると・・・

 

 

// 省略
00D9332A  mov         dword ptr fs:[00000000h],eax  
	T tmp = a;
00D93330  push        1  
00D93332  lea         ecx,[tmp]  
00D93335  call        MyClass::__autoclassinit (0D913D4h)  
00D9333A  mov         eax,dword ptr [a]  
00D9333D  push        eax  
00D9333E  lea         ecx,[tmp]  
00D93341  call        MyClass::MyClass (0D91636h) 
00D93346  mov         dword ptr [ebp-4],0  
	a = b;
00D9334D  mov         eax,dword ptr [b]  
	a = b;
00D93350  push        eax  
00D93351  mov         ecx,dword ptr [a]  
00D93354  call        MyClass::operator= (0D91613h)
	b = tmp;
00D93359  lea         eax,[tmp]  
00D9335C  push        eax  
00D9335D  mov         ecx,dword ptr [b]  
00D93360  call        MyClass::operator= (0D91613h) 
// 省略
00D9746A  mov         dword ptr fs:[00000000h],eax  
	T tmp = std::move(a);
00D97470  push        1  
00D97472  lea         ecx,[tmp]  
00D97475  call        MyClass::__autoclassinit (0D913D4h)  
00D9747A  mov         eax,dword ptr [a]  
00D9747D  push        eax  
00D9747E  call        std::move (0D91037h)  
00D97483  add         esp,4  
00D97486  push        eax  
00D97487  lea         ecx,[tmp]  
00D9748A  call        MyClass::MyClass (0D9150Fh)
00D9748F  mov         dword ptr [ebp-4],0  
	a = std::move(b);
00D97496  mov         eax,dword ptr [b]  
00D97499  push        eax  
00D9749A  call        std::move (0D91037h)  
00D9749F  add         esp,4  
00D974A2  push        eax  
00D974A3  mov         ecx,dword ptr [a]  
00D974A6  call        MyClass::operator= (0D9137Ah)
	b = std::move(tmp);
00D974AB  lea         eax,[tmp]  
00D974AE  push        eax  
00D974AF  call        std::move (0D91037h)  
00D974B4  add         esp,4  
00D974B7  push        eax  
00D974B8  mov         ecx,dword ptr [b]  
00D974BB  call        MyClass::operator= (0D9137Ah)
// 省略

 

 

確かに、コンストラクタと代入演算のcall先がディスパッチされています

 

 

必要ないコピーやアロケーションを抑えることは、最適化の第一歩ですね!
皆さんもぜひコピームーブの使い分けをしてみてはいかがでしょうか

 

 

それでは

8年目のヘキサドライブもよろしくお願いします!!

 


2014年2月25日

青だらけ

        

140225_manga03

みなさんこんにちは。
最近ちょっと気温が上がってきて、少し春っぽくなってきた感じがします・・・
花粉が怖いデザイナーのミサミサです。

 

みなさん好きな食べ物ってありますか?
私は「青色食品(飲み物含む)」がとても好きです。
かき氷はブルーハワイ一択です。
最近はフランス生まれの青いチョコレートを食べました。
140225blue

子供の頃から青い飲み物やお菓子が好きで
「青いメロンソーダ」がどこかに存在しないかと探したものです・・・
(青い時点でメロンソーダじゃないですが)
近年は割と青い飲み物やお菓子が沢山売られるようになったので
青色スキーにはうれしい時代になりました!
しかし昨今では「甘い味」だけでなく
「甘い味じゃない青い食べ物」が増えているじゃありませんか・・・!

 

青いラーメン、青いカレー、青い肉まん、青いご飯・・・
いやあ、探せば色々あるもんですねえ。
さすがにお食事系青色食品はなかなかパンチが利いた見た目をしています。
一般的に食欲を無くす青色・・・な訳ですが、
青色スキーとしては敢えて食べてみたくなるのです!
「食欲無くすわ~」になるのか「青色の食べ物ステキ~」になるのか
実際に食べてみないと分からない・・・ッ!
・・・因みに、現時点で青いカレーと青い肉まんは試してまして
どちらも「こいつ、青いけど美味しいぞ!」で完食です(・ω・)b

 

近々新たな青いカレーを試そうと思っていますが
なかなか同志が居ないもので・・・さみしい限りです・・・

 

青い食べ物でもひるまないぜ!
青くてもチャレンジするぜ!
そんなチャレンジ精神溢れる方、
そしてクリエイティブ精神も溢れてる方、
そんな剛の者のご応募お待ちしております。

ヘキサドライブ採用情報


        

PS4が発売されましたね!!
ヘキサ社員の間でも届いたぞーーー!!!という雄叫びがLINEのグループチャットに流れてくる週末でした。
ちなみにヘキサ大阪・東京共に一台ずつ届いています!

 

おぉ・・・・・

 

IMG_0220

 

 

かく言う私は・・・・・実は・・・・買ってないです・・・・・

過去のブログで何度か漏らしているのですが TVの前に座ってじっくりゲームをする時間が・・・・ない・・・の・・・です・・・・。

 

金曜日に会社から帰ってきたら身支度もそこそこにゲームのスイッチをオン

寝落ちするまでゲームをして、目覚めてゲーム、あ、空腹?と思ったら備蓄食料をかじりながらゲーム、

そして寝落ち を繰り返して気が付いたら日曜日の夜11時・・・・アレ、この週末なにしてたっけ?

 

そんな時代が、私にも、ありました。
二児のお母ちゃん兼デザイナーの阿部です。

 

現在は帰宅と同時に台所に転がり込み

 

(*´∀`)「今日の晩御飯何?お肉?」

J( ‘ー`)し「魚」

( ´_`)「・・・・・(不満)」

 

そんな息子の口にちくわの切れっ端を放り込みながら晩御飯の支度をし
汁ものとおかずはできた!後は白米だけだ・・・っ!
残り時間・・・・むらし、二分!!!!

 

<◎>三<◎> ギン!!

 

と、ここで私のゲームタイムです。

 

そんな隙間時間ゲームの強い味方 そう、スマホです。
携帯機でもいいのですが、携帯機だと15分ぐらいは続けてプレイしたい乙女心・・・・
(据え置き機だと一回のプレイ時間二時間ぐらい欲しい・・・)

スマホアプリは短時間でプレイする想定で作られているものが多いので

我がゲーム欲を満たすのに本当に重宝してます。

 

上記のような二分縛りだったら・・・・・ そうですね・・・・いま一番夢中な某ソーシャルカードゲームのアイコンをすぐさまタップし、 トップ画面のリーダーカードの画像に鼻の下を伸ばしながら 不用カードを売却、必要カードを強化、 イベントの順位を確認した後、ガチャ画面に移動、先ほどのイベント順位を思い出しながら どうする?ガチャっちゃう?!どうする?私?! と心を揉んでいるころに炊飯完了の音が響きゲームタイム終了です。

 

そんなこんなの現在のゲームライフなのですが ただただ遊んでいるワケではありませんよ・・・・っ!!!

ランキングの上位にあるものや、通勤中周りで多くプレイされてるものをチェックして

どんなUIなのか、触りごこちはどうか、人気のあるアプリのUIの共通点は何か

押しやすいボタンとそうでないボタンがあった場合その大きさや配置はどう違うのか

色はどんな色をしているのかを見ます。

操作しにくいUIだった場合は何故そう感じるのか、

どう修正したら操作しやすくなるのかを考えながらプレイしています。

 

短い時間でプレイするゲームだからこそ 誤操作や動線の迷子は致命的です。

 

何も考えず操作ができてUIを触ってる意識を持たずゲームに集中できる。 そんなUIが作れるデザイナーになりたい

 

 

そう思っているんだよお母ちゃんは

 

 

 

息子よ見てごらん 今一番グッときてるぷよクエのUIだよ

 

IMG_0221

 

誤操作なんてしたことないし、どこ触ればいいか分からなくなることもほとんどなかったんだ

ほら、文字が小さくてもちゃんと読めるだろう?

フォントの選び方と色の選択、効果のかけ方が適切なんだよ

そんなの普通だろ?って思うかい? いやいやこれがうまくいってないゲームもあるんだよ。

なぁ、息子よ、奥深いだろうUIは・・・・。

 

え?今日の晩御飯?

 

 

魚。


2014年2月21日

仕事は計画的に!

        

こんにちは!
前回のブログで紹介した一番好きなゲームミュージックの作曲者が別の人だった

ということが判明して、ちょっとショック・・・なイヌカイです。

 

さて、今日は知っていると便利なExcel関数を紹介します。

みなさんは仕事のスケジュールをどうやって管理してますか?

業務部では、Excelで月間スケジュール表を作成して、その月の業務内容や担当者、

作業日程の計画を立てています。

 

スケジュール表を作るときに便利なのが、曜日を表示させる関数です。

        =TEXT(日付,“aaa”)

例えば、日付が入力されているセル(A1)を指定して、「=TEXT(A1,”aaa”)」とすると、

対応する曜日が表示されます。

20140121-1

 

また、DATE関数を使えば、別々のセルに入力した年、月、日を日付に変換することができます。

        =DATE(年,月,日)

 

この2つの関数を組み合わせると、曜日を自動表示できる月間スケジュール表が簡単にできます。

20140121-2

 

月の数値を変えると、曜日も自動的に変わります。

20140121-3

 

スケジュールを立てて、仕事は計画的に

それにしても、なんで“aaa”なんでしょうねぇ。
ではまた


2014年2月20日

頭蓋骨に囲まれて

        

こんにちは。クリマヤです。
最近仕事に追われて作品を作るモチベーションが上がらない…そんなあなたにおすすめの一冊を紹介です

 

 

田島光二作品集 & ZBrushテクニック

ARTWORKS

 

 

Double Negative Visual Effects社で活躍中の日本人CGアーティストの作品集です
進撃の巨人の実写映画版ポスター(非公式)で名前を見かけた方も多いのではないでしょうか?

弱冠23歳でありながらこの表現力…
かっこいいモデルから可愛いモデルまで、そしてキャラから背景まで…
モデルを作るスキルもそうですが、引き出しの多さに驚かされます。

 

そしてこの本の何がいいかというと、タイトルの通りZbrushのテクニックが載っていることです!
モデルを作るにはどういうブラシを使えばいいのか、どういった考えでデザインをしていくか、などが載っているので、見ているとツールを触りたくなる欲がむくむくと…

 

 

というわけで作ってみました。メイキング記事の骸骨。
skull

 

 

海外のポータルサイトにはチューリアルや製作過程が載っているものがたくさん転がっていますが、やはり日本語で理解できる嬉しさ。
あやふやだったツールへの理解もぐっと深まったような気がします
まだのモデルはラフなので、メイキング記事のモデルとはまた違ったテイストのモデルを作っていこうかな…と妄想中です

 

3D以外に2Dの作品も掲載されているので、アーティストの方はぜひお手にとってみてはいかがでしょうか


        

どうも!もっすんです。

 

 

まだまだ社会人ペーペーなのですが、
働き出すとすっかり学生の頃の感覚が無くなりましたね
そろそろ就活シーズン本格化といった感じでしょうか

 

 

 

私も会社説明会に何度か参加させて頂いています

20140219_00

いやぁ、色んな方に出会えて楽しいものです
採用業務やら何やらで色々と社内も活発化しています
これも皆さんと一緒に仕事をするための準備いい汗が流れるというもの

 

 

そういえば弊社では2次募集が始まっています。
http://job.rikunabi.com/2015/company/employ/r928110073/
応募の際は期限に間に合うようお気を付けください
(ですが急がず丁寧に!を心掛けて下さい)

 

 

学校からの指導や勉強やらで就活について準備している方も多いと思います。 
しつこく言われる事はおそらく世の中のスタンダードになっている事かと思うので、
逆らわず則っていく事をオススメします

 

 

 

.会場入り前に身だしなみを整える。
.必要書類は会場入り前に手に持っておく。
.早すぎず遅すぎない時間に会場入りを。
等々(こんな感じでしょうか)

 

書籍とか目を通していてもそうですが、
20140219_01 20140219_02
どこに行こうと見られているのは些細な事ばかりです。
事前準備を怠らなければ小さなミスも防げて好印象が与えられますよ(おそらく

 

さて、

 

先日参加した会社説明会で面白い質問が挙がりました。
「技術書以外で何かオススメの書籍はありますか?」
非常に悩んだ質問だった事を覚えているのですが、
世の中で流行っているものは一通り目を通しておくのがオススメです。

20140219_04 20140219_03 20140219_05
↑どれもその時々のベストセラーなので知っている方も多いのではないでしょうか。
 サッカー好きの私としては長谷部選手の「心を整える」なんかはすごく面白かったですね。
 憧れの人の言葉はすごく励まされ、後に良い影響が出ている気がします。

 

 

流行りものだと、
トレンドとなる言葉や心掛けも思考の片隅に置いておくことが出来るので、
どこかで話に花を咲かせるコミュニケーションツールとして役立ちますよ。
技術書でも何でも、何に目を通せばいいのか迷うという方は、
インターネットなどでランキング検索してみては如何でしょう。
いい書籍に出会えるかもしれませんよ。

 

 

では


        

こんにちは、ゴローです。

前回の「キャット&チョコレート」に引き続き、 本日もアナログゲームを題材にお話しさせて頂こうと思います。

今回の主役は「ワードバスケット」というアナログゲームです。

20140218

結構前からあるアナログゲームですが、 最近改めて遊んでみて、

面白く、ものすごくわかり易いルールだと感じたので紹介させて頂きます。

紹介といってもルールはとても簡単です。 一言でいうなら「しりとり」です。

 

 

…はい。

 

もう少しちゃんと説明しますね。

このゲームは「カードゲーム」「しりとり」を合わせたようなゲームです。

 

 20140218_02

 

50音が書かれたカードを5枚手札として配り、その手札をルールに従って場に出していきます。

余ったカードは山札として置いておきます。

手札を特定のルールに従って場に出すことで、いち早く手札を無くしたプレイヤーが勝者です。

 

「大富豪」だとか「UNO」でおなじみの、とてもよく聞くルールですね。

 

まず初めのお題となるカードを山札から一枚場に出します。

このカードにはもちろん文字が書かれています。

この上に手札のカードをどんどん重ねて、場に出していくことでゲームが進みます。

 

さて、手札を場に出すルールですがここにしりとりが絡んでくるわけです。

手札を場に出すルールは

「場に出ている文字から始まって」

「手札の出したいカードの文字で終わる」単語を叫びながら、カードを出す

ということです。

ちなみに濁点、半濁点は勝手に付け足して大丈夫です。

 

例を挙げるなら

「り」と書かれたかカードが場に出ているとします。

手札に「こ」というカードを持っていれば、高らかに

 

「リンゴ!!」

 

と叫びながら「こ」のカードを出すことが出来ます。

「こ」のカードが出されたので、次は「こ」から始まる単語がお題となります。

手札に「ら」のカードを持っていれば

 

「ゴリラ!!」

 

とまた叫びながらカードを出せる訳です。

「5文字」等の文字数が書かれている特殊なカードもあり、

この場合は場に出ている文字から始まって「ちょうど5文字」の単語を言いながら、

カードを出す必要があります。

 

「ラリアット!!」

 

とかですね。

 

ちなみにこのゲーム、カードを出すのは早い者勝ちです。

カードを出すプレイヤーの順番は特にありません。

 

手札に「こ」「ら」「ぱ」「つ」のような手札がそろっていれば

「リンゴ」→「ゴリラ」→「ラッパ」→「パンツ」

という様なよく聞く流れを一人で作って連続して手札を減らすことも出来ます。

 

 

誰かがカードを出すと、どんどんお題の文字が移り変わっていき、

手札を出す為に叫ぶ単語を考え直す必要があります。

常に頭をフル回転させる必要がある為、とても緊張感があります。

やってることはしりとりなのに!!

 

そして、手札のカードが自然と繋がって連続でカードを出せた時なんかは、かなり気持ちいいです。

やってることはしりとりなのに!!

 

 


 

 

このゲームのいい所は、とにかく抜群にルールがわかり易い所です。

初めての人でも、すぐにルールを把握出来ます。 「しりとり」「UNO」を想像してもらうと、大体のゲームの流れは分かるようになっています。

そんなにもわかり易くなじみが深いルールが組み合わさっているのに、 プレイする感覚は新しく感じるところが不思議です。

 

ルールのわかり易さは中々に軽視出来ない部分でして、 デジタルゲームにおいても重要な観点になると思います。

 

複雑なルールや専門用語が大量に出てくるゲームと 一度聞けば理解出来るルールのゲームでは、

一度で理解出来るゲームの方が、多くの人に遊んでもらえるチャンスがあります。

わかり易いゲームの方が、プレイヤーが「遊んでいる感覚」にたどり着くのが早いですからね。

 

就職作品に関してもわかり易い作品という事は結構大事だったりします。

応募作品は数多く来るわけですから、

ゲームを理解するまでに時間が掛かるルールであればあるほど、 十分プレイされない可能性が高まってしまいます。

 

一人で作品を作っていると 「ああした方がいい気がする、こうした方がいい気がする」と 気付かぬうちに難解なルールになっていることもありますので、 就職作品を作っている人は一度振り返るのもありかと思います。

 

(私もいろいろと詰め込んでしまう癖があるので、気を付けないと…)

 

などという真面目な話で本日は終わっていきたいと思います。

 

「ワードバスケット」は本当にわかり易いゲームなので、

アナログゲームが初めてな方も 一度遊んでみることをお勧めします!

 

 


        

こんにちは。

 

2月に入りさらに寒さが厳しくなって、寒さに負けず風邪をひかないように

気をつけねばと気を引き締めている よっしーです。

 

前回に引き続き、Windowsコマンドの紹介をします。

今回紹介するコマンドは、「diskpart」です。

 

WindowsのGUIツールでHDDのボリュームやパーティションの追加/削除、

ボリュームの縮小/拡張などができる「ディスクの管理」というのがあります。

 

通常はこのGUIツールを使いますが、コマンドを利用してディスク周りの

各種設定を行うことが出来るのが、「diskpart」コマンドとなります。

 

 

まずは以下の方法でdiskpartコマンドプロンプトに入ることで作業が可能になります。

 

管理者権限でコマンドプロンプトを起動します。

 

「diskpart」と入力し、「diskpart」用のプロンプトに入ります。

 

 

詳細な手順等は割愛しますが表示されたプロンプトから「diskpart」で

できることは色々あり、代表的なものとして、後述のものがあります。

 

ディスク情報の確認

 

ボリュームにドライブ文字やマウント ポイントを割り当てる。

 

ボリューム または パーティションの作成および削除

 

異なるディスク フォーマット間での変換

 

ボリュームの縮小および拡張

 

  ※詳細な手順はマニュアル等をご確認ください。

 

このようにGUIでやっていることは結構コマンドでできてしまいます。

 

また、GUIでは消せなかったボリュームをdiskpartコマンドを用いると

できてしまったということもあります。

 

ですので、GUIでうまく行かずに困っている場合は、コマンドによる対応も

試してみてはいかがでしょうか。

 

それでは


ヘキサブログ ピックアップ



過去の日記はこちら

2014年2月
« 1月   3月 »
 12
3456789
10111213141516
17181920212223
2425262728