エンジニアが書いてるようなブログ

ゲームプログラマをやっています。仕事やゲームや趣味に関してつらつら

10秒でできることから習慣が始まるのか?

下の本を読みました。

かなり有名な本で、習慣化につながることが書かれています。

習慣化のためにこの本で述べられていることを、僕なりに解釈すると以下のようになります。

すぐに始められる馬鹿馬鹿しい習慣から始める

馬鹿馬鹿しいってどんなんだよとおもったら、「一日腕立て一回」だそうです。

たしかに、やる意味があるのかよと思ってしまいますね。この習慣の目的はとりあえず始めることらしいです。

習慣が続かない原因は高い目標を立てたゆえに、やる気が起きなかったり、できない自分に絶望したりなどがあります。

それにたいして、「一日腕立て一回」はたしかに、やれないことは無いですね。作者自身もこれを実践すると、一回やったら二回目をやってもいいかなという気持ちになったそうです。

そうやって、次に続いて行くんですね。

習慣にモチベーションは関係ない

モチベーションがあると良いように思えます。僕自身、以前運動をしようとした時に、モチベーションが高い時はかなり続きました。

ですが、モチベーションが低いと今日はやめようとなるのも事実でした。

モチベーションというのはワクワクした時に上がるそうです。何か新しい習慣を行う時はワクワクしますよね?毎日運動したらマッチョになれるんじゃないか?と言った感じに。

ですが、毎日このわくわくが続くわけではありません。普段に行動にワクワクする人がいないように3日もすればモチベーションは上がりません。

ならどうしたら、続けられるのか?それが、はじめにも出ていた「一日腕立て一回」です。一日腕立て一回なら、モチベーションがなくてもとりあえず始められますよね?はじめてしまうと、モチベーションは後からついてくるので続いていきます。

やる時間を決めない

やる時間を決めるということはやらない理由を作ることになります。

朝風呂に入るなどの時間が決まっている場合を除くと、「一日腕立て一回」などはいつでもできるものです。

これを18時からやるなどと決めてしまうと、飲み会などで遅く帰ったの時に、時間が過ぎてるからやらないという判断を下してしまうかもしれません。

なので、時間を決めないで、できると思った時にやる。内容もすぐできるものなので、すぐやる。そうするよ、自然ともう一回となっていくものです。

まとめ

実は自分も運動をやろうと、決めていて、何もできていない日が結構ありました。やっぱり辛いものなので後でやろうと思っていました。

「小さな習慣」の良い点は10秒でできることでもいいということです。いまでは、思い立ったら、腹筋をとりあえずやります。そうすると、なんだか腕立てまでやりたくなってしまいます。

やっぱりどんな小さいものでもいいから続けることが重要なのかなと思いました。






ちなみ、この本にはなんで、習慣化できないかが、これでもかというほど書かれているので、その部分を読むだけでも楽しいと思います。


BitCoin で 3000円が3003円になった。

こんにちはまずは下の画像を見てください。

f:id:tkymx83:20180108163415p:plain

右上の預入証拠金は現在の資産だと考えてください。今日からBitCoin でFx をはじめましたが、なんと3000円が3003円になりました。

小さな一歩かもしれませんが、これが30000円なら 30030円です。夢が広がります!!

そこで今回はBitCoin でFx 初心者向けにどうやって、3円儲けたのかを解説します(笑)

※販売所は BitFlayer を使っています。

コツは一つ

買った値段よりも高く売ることです。

当たり前だろうという人がいると思いますがこれには落とし穴があります。

その落とし穴とは

より高く売りたいと考えてしまう。

これです。今回は3000円で買って、3003円で売りました。しかし、チャート上ではどんどん値段が上がっていきます。そこで、売りしぶっていたら、どうなるでしょうか?いつまでも待っていたら、下がってしまうかもしれません。もしかしたら、全く上がらず下がってしまうかもしれません。

なので、この落とし穴にはまらないために以下のことが重要になってきます。

買った値段よりも一定の値段高く売ることです。

つまり、はじめから 3000円になったら買って、3003円になったら売ることです。

これをコンスタントに続けることが大切になります。

IF - DONE が使える

このように、いくらになったら買って、いくらになったら売るという条件を設定できます。*本当はもっと機能が多いです。

BitFlayer での IF - DONE のやりかたは以下に書いています。
bebesan.net

コンスタントにIF - DONE を設定する。

投資は一気に儲けることもできますが、今回話していることはコツコツと稼ぐ方法です。
※本当にコツコツなので、大きな儲けは数年後になると思います。

コツコツ儲けるためには先程の IF - DONE の条件を複数個指定し、ある期間たったら見直しを行う必要があります。

IF - DONE をつけると、後は自動で売買を行ってくれます。自動で行うということは人間の意識が介在しないということです。先程述べた通り、もっと高く売りたいという人間の意志が迷いを生みます。よって想定通りの取引ができます。

IF - DONE を複数個指定する際には、ある一定の幅で指定します。例えば3000円で買って、3500円で売るのと3500円で買って、4000円で売ると言った形です。こうすると、チャートが 2900円から 3600 円まで動くと はじめの IF - DONE 取引が行われ小さいですが利益になります。そして、なくなたら、またおなじものを設置します。

気づいている人もいると思いますが、チャートが上下する間は利益が常に出ることになるので、コンスタントに儲けることができるというわけです。

見直しは必ず

しかし、いくらか運用しているお、このチャートも大きくハズレる場合があります。そのときは、IF - DONE の条件もチャートに合わせて変更する必要があります。この判断を行うために見直しが必要になるというわけです。

この見直しは何回も行っても良いのですが、それでは時間がいくらあっても足りません。投資が本業でもないのに時間を取られるのは嫌ですよね。なので、一日に一回程度で良いと思います。

まとめ

今回 3000円から 3003 円と小さな一歩ですが、これを定期的に出していくにはとても根気のいる作業だと思います。

BitCoin は昨年急激に上昇しましたが、今安定にあるので、そこに合わせた運用方法があるのではないかと思います。

上のはなしはかなり以下の本に影響されているので、皆さんも是非読んで下さい。特に、どのスパンでどれくらいの IF - DONE を設定したら良いかが参考になると思います。

家の中をスマートホーム化したい!でもどうやってやるの?調べてみた

こんにちは!

家に帰ってきてこんなこと思いませんか?

「寒い!、温まるまで何もできない!」

最近寒い上に、家に買ってきてから暖房をつけても温まるまで寒いですよね。

そこで活躍するのがスマートホームです。家に帰る前に暖房をつけることができたら、素敵ですよね。

でも敷居が高いですよね?何から調べて良いかもわからない。ということで、最近のスマートホーム化で使われているものについて簡単にまとめてみました。

スマートホームについて調べる取っ掛かりにしてもらえるとありがたいです。

※ この記事ではスマートホーム化のための具体的な方法がかかれているわけではありません。概要を掴んで今後の理解につなげてもらえると良いと思います。

Google Home

最近よく聞くワードですよね。

これは、人間の声をつかって何か動作を行う装置です。

例えば、「音楽を流して」というと、連携したアプリやサイトから音楽を流してくれます。

スマートホーム化では、操作の部分を主に担当します。

「電気をつけて」と言うと、連携した装置をつかって、電気をつけたりします。

しかし、Google Homeで電気をつけるには、連携する装置が必要になります。

store.google.com


Nature Remo

Google Home に連携する装置としての第一候補がこれです。

Nature Remo は学習リモコンと呼ばれており、実際のリモコンの赤外線のパターンを学習します。

つまり、既存のテレビや電気やエアコンのリモコンの動きを学習します。現在の家電は大体が赤外線で動いているのでこの装置があればほぼすべての家電をスマート化できます。

具体的には、Google Home にある言葉が話しかけられたら Nature Remo を動作させたら良いわけですね。

nature.global

Amazonはプレミア価格ですね。

IFTTT

Google Home と Nature Remo の連携を行うのが、IFTTT です。

IFTTT 自体は web サービスですので、ブラウザで様々な設定を行います。

このサービスが行うことは、「何かが起こったら何かを行う」という動作です。

そのため、IFTTT 上で Google Home であるメッセージを感知したら、 Nature Remo に登録されているある家電のリモコンの赤外線情報を送信すると設定すれば良いわけです。

ifttt.com

まとめ

スマートホームは基本的には今回説明した3つから成り立っています。

  • 入力:Google Home
  • 出力:Nature Remo
  • 連携:IFTTT

Nature Remo では赤外線リモコンの学習を行っていますが、直接電球がネットにつながっていて操作が可能な場合もあります。

そのときには出力の部分をその機器にすることで、対処できると思われます。




早く家もスマートホーム化したい。。。

三日坊主解消にいいかも?、10時間でゲームを作っておもったこと

あけましておめでとうございます。

皆さんゲーム作っていますか?
ぼくは2018年 年賀ゲーム作りました!!

Androidのみでリリースしているので
もしよかったらやってみてください。

play.google.com

そして、このゲームは10時間で作成してリリースまで行いました。
短時間でゲームを作ってみて、一つ思ったことがあります。

長い期間でゲームは途中で諦めるのに、短時間だとスルスル作れる!


ということです。なんでそう思ったのかを今回は3つのポイントでまとめてみたいと思います。

簡単なまとめ

今回ゲームを作りきれた一番の原因はモチベーションが下がらなかったことにあります。長くゲームを作っていると、様々なところでモチベーションが下がります。

ですが、短い期間では自分の作りたいところから作っていきどんどん見た目で成果がわかるので、モチベーションが下がらずに続けられたのかなと思いました。

詳しくは以下に書きます!

初めにルールをきめてそれ以降の変更は行わず、最後に調整を加えた。

今回ゲームを作る時ははじめの30分でルールをざっくりですがきめました。

「縦スクロールで犬が進みながら食べ物を効率よく拾っていくとスコアが上がるようにしよう!!」

このような形です。そして、作成中にそのルールが面白いことを疑わずに作りきり、最後に面白くない部分を調整しました。

長い期間でゲームを作っていると、途中でこの企画は面白くないのではないか考えてしまい、モチベーションが下がることがあります。

しかし、ゲームは同じものでない限り作るまでは面白いかどうかはわかりません。なので、作り切る前に面白いか考える事自体がナンセンスなのです。

その点、今回ルールの再考をしなかったことで、作りきった後の確実に面白くない点のみに改善の目を向けることができたので、モチベーションが下がらずに開発できたと思います。

自分の作りたい所から作っていった

長い期間でゲームを作ると、クラス設計などの設計がはじめに入ってきます。設計ではすべての仕様を理解していないといけないために作っては修正してを繰り返すことになります。

この修正は全部作り変えることもあり、とてもモチベーションが下がります。また、一度作った設計が不完全だと次見た時に何がなんやらわからずに、思い出しコストが発生してモチベーションが下がります。

今回、短い期間で作るにあたって、自分の作りたいクラスから作り、自分の作りたい用に増築しました。これによって、完成した箇所が目に見えていくので、モチベーションが下がらずにできました。

コードが汚くなるのでは?という意見もあるかもしれませんが、はじめはそれで良いのです。一度作り切ると、隠れた仕様や全体像が見えてくるので、その段階でクラス図などを作れば良いのです。

ツールは初めにしっかりと決めておいた

ゲームを作っていて割りとつまづくのはツール決めです。選択肢が広く似たようなものが多いため判断に困ります。また、ツールによって拡張子などの相性もあるので、下手なものは選べません。

今回は開発ツールはUnity、画像作成はPowerPoint としました。PowerPointpng として出力もでき、ある程度のクオリティのものが作れるのでおすすめです。

今回は期間が短いので使い慣れているものを使いました。それが良かったと思います。どんなツールを使うかは実際に解決したい問題が出ないとわかりません。

ベクター画像が作りたければ、Illustrator、ドット絵を書きたかったらEDGEのようなツールを使うなどです。

なので、二番目の項目と同じですが、まず作り始めて、問題点やツールへの疑問点をまとめることが大切です。それまでは、自分が使ったことが有る。使いやすいものを使うのが一番です。

まとめ

長期間でゲームを作るときにモチベーションが下がる理由は、おもに考えすぎです。まだ何に対処すれば良いのかもわからないのに考えすぎてモチベーションが下がります。

いろいろ考えて作ったところで、考えが及ばずに作り直すことが多々あるでしょう。

今回、短い期間で色々と割り切って作りました。ゲーム仕様の把握やツールに対する問題点など、長い期間のゲームを設計する上で知りたいことを短い時間で把握することがで来ました。

つまり、モチベーション落とさずに長い期間開発するためには、一度短期間で作りたい所からがっつりつくって、問題点をある程度把握した上で設計などを行うと、効率的に開発ができる!!ということです。

CoD:WW2 からまなぶ、飽きないゲームづくりのテンポ3選

こんにちは

最近、CoD:WW2 を買いました。

この手のシューティングゲームはAVAのようなオンラインゲームしかやったことがありませんでした。ですが、今回第二次世界大戦をモチーフにしているということで、ストーリーも気になり買ってみることにしました。

実際やってみると、とっても面白かったです!!

ですが、それ以上にゲームとして完成されていると感じました。歴史あるゲームなので当たり前ですが、初めてプレイする身としては感動しました。

今日はCoD:WW2 でうまいなと思ったゲーム表現をつらつら書いていきたいと思います。

ゲームのテンポがすごい

一番すごいと感じたことは、ゲームのテンポがかなり良いと感じました。ゲームのテンポが悪いと、最悪飽きてしまったり、イライラしたりとゲーム進行に支障きたしてしまいます。

1.短期目標の長さが適切

ゲームを始めると、最終目標はストーリーや上官の言葉から理解できます。しかし、まず何をするかがわかりません。敵を倒すのか、アイテムを探索するのか、悩んでしまいます。

このゲームは、スタートボタンを押すと、目標地点とそこまでの距離と目的が見えます。

そして、このゲームのいいところは、その目標が絶妙に近いところです。あまりに遠すぎる目標は意欲がなくなりますが、目標が近いので、意欲低下なくゲームができます。

2.銃を打つ以外のアクションのタイミングが絶妙

FPS型の銃を打つゲームは単調になりがちです。相手をみて、銃を打って、次に進む。それ以外に要素がない場合は作業になってしまい、後半に飽きが来てしまいます。

このゲームでは、銃を打つメインパートの他に、コマンド打つ場面や、戦車を操作する場面、戦闘機を操る場面など、多種多様なゲーム表現を繰り出してきます。

これによって、新しい刺激が入り、普段の銃を打つメインパートにも新鮮な気持ちで当たることができます。

3.やられた際の次の戦略が立てやすい

FPSゲーム全般に当てはまることですが、銃でやられた後に、どこから、当たったのか、誰に殺されたのかを表示する機能があります。

例えば、スナイパーにやられたなら、次は初めにスナイパーを倒そうという戦略がたてられます。これによって、無駄なつまずきもなく、テンポよくゲームを進められます。

まとめ

CoD : WW2 に限らず、歴史のあるゲームはノウハウの塊です。学べることはたくさんあります。

特にあまり考察されていないゲームはその時は面白くてもすぐに飽きが来てしまいます。

このような、テンポを大事にしたゲームをもっとやりたいなと感じます。

会社に入って初めて気づく、一日8時間も仕事ができないこと

こんにちは

最近、ゲームのリリース作業などで重度の残業して、ちょっと思ったことを書きたいと思います。

新卒の方で、なんか残業が多いなと思う方はぜひ読んで下さい。

一日の仕事は8時間?

毎日9時に出社して、17時に帰るとします。そうすると一日の作業時間は8時間となります。通常では、この時間間隔で業務の作業時間を見積もってタスクを決めて行きます。

しかし、このように決めたタスクが果たして、時間通りに実行できるでしょうか?いろいろな原因が有ると思いますが、時間の観点からすると不可能です。

実際の作業時間は半分?

以下の図を見てください。これは、僕の一日の平均的な予定と、理想のスケジュール、そして実際のスケジュールとなります。

f:id:tkymx83:20171118202521p:plain

理想のスケジュールでは、17時に仕事が終わっていても、実際は朝会や会議などでかなりの時間が取られてしまいます。

とくに複数の案件を抱えている場合は会議だけで仕事が終わる場合もあります。

実際に定時までで終わると、作業時間は実際の半分の4時間ほどしか残っていません。

それじゃ定時に帰れないの?


帰る方法はあります。それは、予定を組む方法を変えることです。例えば、一日4時間しか働けないのであれば、4時間のスケジュールを立てることです。

仕事のスケジュールを決めるのは、仕事の仕方や予定を組む人が違うのであれば難しいかもしれません。しかし、自分で工数を決めることができる場合はできればそうしてほしいです。

それじゃ仕事が終わらないじゃんと思うかもしれません。

そんなことはありません。ただでさえ、今は残業を前提としたスケジュールを組んでいます。

残業をできない日もあるかもしれません。「残業がきつかったので、仕事ができませんでした。」そんな言い訳は誰も聞いてくれませんし、そんな不安定な仕事を誰も望んでいません。

できない時はできない。それこそが責任のある仕事管理だと思います。

Cocos 2d-x の導入が超簡単だった。

こんにちは。

皆さんはゲーム開発のフレームワークは何をつかっていますか?

僕は昔、Cocos 2d-x で最近は Unity ばっかりです。

Unity は視覚的に作りやすい、よく使われると、王道のような存在なのです。

ですが、フリー版ではゲーム起動時のアイコンが出るのであまり使いたくないなと思っていました。

そこで、今回久々に Cocos 2d-x に手を出したのですが、予想以上に導入が簡単になっていたので、紹介したいと思います。

環境

macOS Sierra
バージョン 10.12.6

ダウンロード

以下URL から ダウンロードします。
www.cocos2d-x.org

f:id:tkymx83:20171111202124p:plain

環境変数の設定

cocos というコマンドを使用可能にするために
初期設定を行います。

まずコンソールでCocos 2d-x をインストールしたディレクトリに移動します。

その後以下のコマンドを実行します。

python setup.py

この際、以下のようにAndroid SDK, NDK のパスを要求されますので、必要な場合は入力をしてください。

f:id:tkymx83:20171111230024p:plain


Android SDKAndroid Studio などをいんすとーるしていれば、 ~/Library/Android/sdk/ に有ると思います。

環境変数は ~/.bash_profileに書き込まれるので、以下のコマンドを実行して、環境変数の適応を行ってください

source ~/.bash_profile


これで、cocos コマンドが使えるようになりました。

プロジェクトの作成

では、cocos コマンドでプロジェクトを生成します。

以下のコマンドでプロジェクトを生成します。

cocos new MyGame -p com.your_company.mygame -l cpp -d NEW_PROJECTS_DIR


MyGame :自分のゲームの名前を
com.your_company.mygame :自分の任意のパッケージ名を
NEW_PROJECTS_DIR:プロジェクトを作成するディレクトリを

※ コマンドを実行するとNEW_PROJECTS_DIR/MyGame の中にプロジェクトのファイルがあります。

プロジェクトを起動

では、ios のプロジェクトを起動したいと思います。
xcode が入っていれば、以下のファイルをダブルクリックすることでxcode上でプロジェクトが展開されます。

MyGame/proj.ios_mac/LifeGame.xcodeproj 


展開されたら、ビルドを実行します。そうすると以下のようにサンプルプログラムが起動します。

f:id:tkymx83:20171111203250p:plain

まとめ

かんたんですね。

たった3ステップで終わってしまいました。

Unity などと違い、起動も早く、開発効率も良いと思われます。

それでは!