Unityでインディゲーム道!

プログラム、Unity初心者がインディゲーム制作を目指して日々思うことなどを書き綴ります。

プログラミング入門者のためのC#攻略本とはなにか? 改訂 第二版

これから新規にプログラミングを始めてみよう!という初心者にとって、最適なC#の攻略本はおそらく無いです。筆者自身も教えて欲しいくらいです。しかし、あきらめずにプログラミング入門を打開するのに役立った本や、サイトなどをご紹介!! 

 

2017/07/03追記 : 初心者とC#とを巡る、諸問題とその対策についてのまとめです。脱初心者を目指す自分がいうのもなんですが、より初心者の方のためになるように大幅な加筆、修正を試みました。細かい部分についても、考えを書いたので少し長いですが、何かの参考になれば幸いです。この記事自体が攻略本となるように、という志ではありますが、、、よろしくお願いします!

 

なお、自分は独学です。本、サイト、海外の動画などを使って学んでいます。対人学習、スクールに通う、という体験はしていません。なので、そこら辺についての記述は一切ないです。人それぞれだと思いますが、やはり時間、労力の節約のためにも、きちんとそういうところで習った方がいいのかなー、とは思います。

 


 同時投稿のこちらの記事では、初心者への障壁について書きました。

本記事は、この記事を受けての対となるものです。こちらも改訂予定。

 

とりあえずUnityは置いておいてみる

C#を理解し使う、ということとUnity上でC#を介してゲームを作る、ということは厳密には違うことなのかも知れません。Unity上においてのC#の使い方は、Unityを通してでしか学べないということです。しかし個人的には、やはりC#C#で個別に勉強した方がいいだろうと思いました。今でもその判断が正しかったと思います。なぜならプログラミングにおける問題解決手段に、"問題の分割"というものがあるからです。個々の問題に個別化して、一つ一つ解決していく方法です。

 

"初心者"にとって、C#は簡単ではない

ここでいう"初心者"とは、今まで一切プログラミングをしたことはなく、C#を最初の言語として選択した人を指します。そのような人にとって、C#が簡単なワケがないです。プログラミングをやったことがないんだから当然です。なのでC#がわからないからといって、自分はプログラミングに向いてない、とかいう判断は早計です。C#なんてカンタン。すぐに出来るよ。みたいな言葉に惑わされないようにしましょう!

攻略本がない、ということは端的にC#を通してプログラミングそのものを学ぶことができる書籍はないのでは無いか?という意味です。つまり、そうした"初心者"にとって相応しい、この一冊!と言えるような、包括的なソリューションとなる本がないという状況。そもそも、この一冊あればイイ!なんて考えは、幻想かもしれませんが。

C#は初心者にとって、初めてに相応しい言語ではありながら、そういう歪な状況に苦しめられた著者自身の体験を元に書いていきます。少しでも、最初の一歩の手助けになれば!

まず初めに、何故そういう本が無いのかを考察します。

 

メンドくさいし、紙面も無いから。

んな無責任な、と思う人がいるかもしれませんが、完全初心者にプログラミングを教える、という作業はかなり大変なことです。丁寧にやるとなると、かなり分厚い本になりますし、それは作業的にも、紙面的にも、商業的にも難しいわけです。なんで、そういう本が出版されることは、基本的に不可能なのだろう、ということです。だからこそ一週間でわかる!みたいな本が多数出るんでしょうな。

 

初心者にとってのMSDN

MSDNにおけるC#のページは、MS社が公開している、リファレンス(説明書みたいなもの)でC#に関する細かい説明が網羅されています。無料だし、とりあえず、これを見ながらやっていけば、学んでいけばいいんだよ、というような方法論は、初心者には実際かなり無茶です。

説明書であって教科書では無い
 既にある程度プログラミング出来る人が参照するためのものであり、初心者が読めるものでは無いです。まず説明書を読めない状態な訳ですから。

日本語がなんかオカシイ
 機械翻訳なんですかね、説明が一切頭に入って来ません。

サンプルコードが難しい
 ある程度できるようになってからは参考になりますが、初心者にとっては難し過ぎて参考になりません。(本記事後半では、初心者に優しいシンプルなサンプルコードを載せているサイトを紹介しています。)

結論、MSDNは攻略本になり得ないです。あくまでもC#という言語の説明書という位置付けです。悲しいことに市販の多くのC#本も割と説明書です・・・。プログラミングについての内容というよりも、あくまでC#という言語のルール、文法についての説明に留まってしまっています。

 

とりあえずHTMLから、というのは疑問

プログラミング言語を学びたいけど、よく分からない・・・じゃあとりあえずHTMLから!みたいなパターンはあるかと思いますが、個人的には、この考え方はかなり疑問です。まずHTMLはプログラミング言語ではないです。web上のコンテンツ、文章において、この部分は全体における、どういう構成要素か?がブラウザに分かるように印を付けていくための言語です。つまり構造が違います。自分でブログなどをやっていれば別ですが、漠然と学ぼうとすると、はっきり言ってつまらないと思います。やはりプログラミングを学ぶにはC#が相応しい、はずなんですが。

 

Visual Studioの導入

プログラミングできる環境を整える、というのが実は最初の最難関だったりします。コンピュータに詳しくない人は、ここで挫折する可能性も高いです。C#だったら、間違いなくVisual Studioを導入すべきですが、なかなか大変です。paiza.IOなどのブラウザ上で、プログラミング、コード実行できるサービスもあるので、最初はそこからでもいいのかな、と思います。

 

自分はダウンロード、インストール含めて1時間ほど掛かったと思います。最初にexpress 2010を導入したんですが、hello worldすら出来ず一回挫折しました。でも後日、2015をインストールして、なんとか掴まり立ちを出来るようになり、今日に至ります。それなりに長い時間かかりますが、焦らず行きましょう!

 

というように罠はたくさんあります。勉強を始める以前に適切な教材は何か分からない、という状態です。指定教科書はないのか?という話です。ないんだな、これが。
それらの対策については、一見遠回りのような行程を経る必要があるのではないかなと。以下書いていきますが、あくまで筆者の実体験を元にした一つの提案です。まずは諦めないこと、イライラしないことが大事だと思います。

では、初心者に優しい学習ソースを巡る旅にGO!

 

あえてCをやる。

というわけで、結局プログラミングってどういう作業なのか、出来るだけ分かりやすく教えてくれる本、あるいはサイトを探す事になりました。
そこで見つけたサイトが、この・・・

C入門

「C 入門」で検索すると一番上に出てくるサイトになります。

 

というかCかよ!?C#じゃないのかよ!?という人がいるかもしれません。しかし、結果的にCからがわかりやすかったんです、自分としては。 C言語をマスターするのは、難しくても、基本的な部分を学ぶにはシンプルでいい言語だと思います。C言語は今更だし、最初の言語には向いてない、という意見は多いですが、プログラミングはどんなもんかを軽く触れる程度なら、向いてるんじゃないかと思います。

あと古い言語なので、もはや変化しないというのと教える側の錬度が高い、というのもあります。書籍が充実している、というのもあるわけです。

 

ただCには『ポインタ』という初心者殺しがあります。自分もここらへんは最近ようやくわかりかけている感じですが、初心者はポインタは無視していいです。


というかCでプログラミングできるようになる必要も無いと思います。(というか自分もほぼできません!(^o^)) 

 

確かにいきなり最初に2つの言語を同時に勉強するのは混乱の元かもしれません。
しかし、あくまで事前学習のための踏み台としての利用法があるんだ、ということです。自分は、 このサイトで書かれていることをVisual StudioC#を使って再現してみる。とかやっていましたね。 最初に作った、おみくじアプリとか正にそうです。

 

教えてくれる人が大事

ここは林健一郎先生という方によるサイトです。『珠玉のプログラミング』というプログラミングにおける名著の訳者であったり、スゴイ方なんですが、サイトのテキストはかなり優しい、わかり易い文です。


単純に読んでて面白いですし、苦になりません。(それでも最初はわかりませんが)
そこが自分の中ではかなりの尊敬ポイントです。本当に賢い人はわかりやすい説明が出来る!教えてくれる人を選ぶことが大事なのかもしれません。

 

なんでプログラミングを一回もやったことないという人はこのサイトをぜひ確認してみて欲しいです。C#に触るのはそれからでも遅くないと思います。

 

さらにCで学ぶ!

苦しんで覚えるC言語

そしてこの『苦しんで覚えるC言語です。またC言語です。サイトもありますが、自分は書籍版を買いました。名前がいいですよね。信頼できる!

 

というか、むしろわかりやすいんですけどね。でこの本もですが、全部理解する必要は無いです。やはりCとC#は違いがありますから、後半はC#と関連性の薄い内容になります。なので13章まででいいと思います。ホントに基本的なことをしっかり学べます。変数の寿命(いわゆる"スコープ")とかは非常に参考になりました。

 

じゃあC#は何をみればいいのか?となるといまだによくわかりません。

 

これくらいわかり易い日本語サイトはないものか

DotNetPerlは海外の英語のみのサイトですが、項目ごとにシンプルで易しくまとめられているので非常にわかりやすいですし、下手な日本語サイトよりよっぽど初心者に優しいです。サイトとしてはC#がメインだと思いますが、その他いろいろな言語を扱っています。

なによりサンプルコードが要点を抑えたシンプルな構成なので、とてもわかりやすいのです。英語が苦手でも、サンプルだけでも読む価値はあります。

逆にわかりやすいとは、このことですね。これぐらいシンプルで整理された日本語サイトがあればいいんですが、どなたかご存知ないでしょうか?

 

応用編

 (原題)"Think Like A Programmer"

プログラマの考え方がおもしろい身につく本』

(あえてAmazonリンクは貼らない) 

この本は、まだ完全に読破できているわけではありませんが、かなりいい本です。

 

プログラミング言語の文法を覚えたとしても、プログラミングできるかといったら出来ないよね?じゃあどうすれば出来るようになるんだろう?という観点から切り込んだ一冊です。まさしく"初心者"が知りたいことが具体的に書いてあります。どういう思考プロセスが必要か、どうやってコードを書くのか、という部分です。

 

コードを自分の力で書くためのプロセスについては、自分も記事として書いていますが、これはこの本で学んだことを自分なりに書いてみたモノと言っていいです。

コードを書くには、書く前にいろいろ準備が必要ということです。

 

この本は実際にプログラミングできるようになるためには、どういうことを考えていかないといけないのか?という所をひとつひとつ丁寧に解説しています。文法として学んだ、プログラミングにおける様々な道具をどう使っていくか?ということを学べます。

  

ただし問題はサンプルコードはC++で書かれているということです。C#に慣れるとC++はC以上にややこしいかもしれません。というわけでC++の基本的な部分も学ぶハメになったんですが、幸運なことに上のC入門のほかにC++入門というページが!

C++入門

自分もC++は、かなり拒否反応がありました。(C#から見ると違和感がすごいのです。)しかしそれでも読む価値はあります。この本のサンプルコードをC#で書いたものが出たらかなり最高の教科書になると思うんですがねぇ。 


また、『プログラマの~』における"クラス"に関する言及は、C#においてもかなり指針になるものだと思います。"クラス"は初心者は考えるべきじゃない!ということを本ブログでは、声高に訴えていきたいんですが、この本の影響が大きいですね。全体的に難しいですけども、実践以外の精神論的な部分も参考になります。イライラしない!は至言です。プログラマの頭の中で何が起こっているかがわかる一冊。

  

まとめ

というわけでC#の攻略本はまだない!という結論に変わりありません!といっても、もちろん市販のC#本を全部網羅しているわけではないので、もしかしたら既にあるのかもしれませんし、これから出るのかもしれません。でも少ないでしょうね。見つけたら、ぜひ本ブログで取り上げたいと思います。


というわけで、"初心者"にとってC#攻略の鍵となるであろう、書籍やサイト群の組み合わせをここで披露させていただきました。独断と偏見によるものですが、なにかしらの参考になれば幸いです。要は自分にあったやり方をいろいろ試す、そこらのブログ見てわからなくてもあきらめない、ということが大切だと思います。急がば回れ、の精神が大切です!

 

 

プログラミングに関するクソブログ、クソ本問題。

いろいろ喚いておりますが、初心者の戯言、ということでご勘弁願います。

ちょうど初心者特有の思い上がる時期です。

  

以前にも書きましたが、基本的に多くのプログラミングについてのブログは自分勝手に書かれている場合が大半です。個人的メモも多いですよね。かといってチラシの裏にでも書いてろ!とはいえないし、自分がもしそんなこと言われたらこのブログも閉鎖ですけどねッ! でもここはちゃんとプログラミング、Unity初心者って銘打ってますので!

そこはご理解いただきたいですm(_ _)m

皆さんの忍耐に感謝。

 

初心者への壁

今や、ググればいろいろ調べられますよ、確かに。
しかし、ことプログラミングに関しては、多くのアレなブログが邪魔してきます。

ブログでなんでもアウトプットするべき!という慣習があるようなので・・・。 

  

プログラミング初心者がそういう状況で、正確で指針となりうる情報に出会えるかはジャングルの中で、針を見つけるくらい・・・とはいかないまでもかなり厳しいことだと思います。まず初心者になることが難しいんですよね。

 

プログラマの日本語力

まずなんでクソかといえば、文章として非常にわかりにくい。

プログラミング能力と一般的な言語能力はトレードオフなのでは?と最近よく思うんですけども、人にちゃんとに伝える、という機能が弱いものが多いです。
でもそりゃそうかもしれません。自分にだけわかるようにメモとして書いていれば。
(文章、説明上手い人もいますが、貴重なので大切にしましょう)

 


学び始めるに当たって、まずネットでいろいろ調べました。
最初は、単純にこちらがそれを理解するだけの知識がないから、よくわからないんだろうなぁ、と思っていたのですが、今となってはもっと上手い言い方、書き方あるんじゃねーの?と思うことがしょっちゅうあります。
素人意見です、はい。 


プログラミング能力があって、それを日本語として説明できるだけの翻案、言語能力があり、かつ教えるのが上手いって人日本にどれだけいるんでしょうか? 


なのでそのようなブログ、記事に出会ったらわからないあなたが悪いんじゃありません。

 

わかりにくい文章を書くソイツが悪いんだ!


と思いましょう!(半分冗談です。)

  

ほんとに理解してるの?

繰り返しますが、多くのプログラミング系ブログは自分のために書かれてるっぽいです。もちろん当ブログもそうですが、不特定多数に見られることは意識はしてます。

 

人にわからせる気もないですし、内容が間違っているのかもしれません。
そもそも初心者にわかりやすく書く義務もないわけですが。

 

こういう記事がはてなブログにありましたね。 

いやいや、そこはご指摘ありがとうございます!だよね?

言いたいことはわかりますが、正しさハラスメントってなんすかねって感じです。
まぁドヤ顔で指摘されたらむかつきますけどね。確かに教え方の下手な人は多いし、無知な人に知識で優位に立とうとする輩はいますよ、うん。

 

アウトプットするのは大事だけど、それを修正していくのも大事だと思うんです。
そしてネットにアップする以上、そういうことは避けられないし・・・。
そもそもそれを逃してたら、ネット中が間違いだらけになりますよ、ほんと。

本当に寛容な社会は、間違いに対して余裕をもって忠告できるし、指摘されたほうも

きちんとそれを逆切れせず受け止められるというものだと思います。  

 自分のこの乱数の記事で出したプログラムは、
一部ミスがあったんですけど、違ってました!すいません!って加筆しましたし。

間違うことが悪いんじゃなくて、それを認められない、直せないのが悪いと思うんです。もちろん初心者潰しはダメですけど。

 

そもそも、このご時勢、ネット上でちゃんと間違いを指摘してくれる人って貴重だと思います。何の足しにならないし、ボランティアですよ。

そこは笑顔でありがとうございます!といえる謙虚さを持ちたいですね。
自分としては。

  

日本語の限界?

・日本語が怪しい・・・
・書いてる人の知識が正しいとは限らない。

 という感じできました。


あと大きな問題が一つあって、日本語がプログラミングを説明するのに向いてないかも?問題ですね。これは、初心者であることを棚に上げて声高に言いたいですが、

 

結局、プログラミングって英語なんですよね。
なんで、日本語じゃ説明するのに言葉が足りないっていうのはかなりあると思います。

 

例えば、MSDNC#に関するところなんて、おそらく機械翻訳なんでしょうね。さっぱり頭に入ってきません。サンプルコードはかなり参考になりますけども。

 

これは、最初に書いた、

“文章として成立していない問題”にもつながっている気がします。
もう覚悟決めて完全英語で習ったほうがいいんじゃないか?とかも思いましたが、それはあきらめました。

 


あと以前もここで書きましたが、C#に関する、入門者本でやっぱまともな本はないみたいです。あったら教えてください。C#は初心者向けだよ!といいながら、やっぱ大人はうそつきばっかですね。他の言語がある程度できていて、それを前提にしているC#の本には多いような気がします。

自分も市販のC#本全てを確認したわけではないのでなんともいえないですが。 

 

何回も言いますが、『クラス』は実は補助的な機能であり、初心者が気にする必要は無いんです、最初は。このことをちゃんと教えてくれる本があるとしたらそれはいい本だと思います。

 


というわけで、悪態はこのくらいにして自分にとって参考になった本、サイトなど
を紹介する記事を同時投稿します。あくまで個人的体験に基づくものですが。  

こちらになります。


いろいろ言いましたが、ネット上での発言は自由ですし
それを妨害できる権利はグーグルにさえないです。(反社会的でなければ)
しかし表現の自由に胡坐をかくのではなく、
初心者もベテランもバカも賢者も、お互いに尊重しあうのが大切なのかなと思います。

 

 

Year 2017 = new Year();

というわけで、新年明けましておめでとうございます。

 

今年もUnityに関することを書いていこうと思います。

去年はどちらかというと、プログラミングに関すること中心でしたね。

 

今年こそUnity本体に着手というか

何かしらのアプリでも

作りたいですね。

 

とにかく前進あるのみ!

Unityのための打倒C# [番外編] コクのある乱数について。その2

コクのある乱数についての続きの記事です!

こちらの記事では、乱数をひたすら生成し集計して表示するというプログラムを作り、

通常の乱数コクのある乱数が実際どう違うかを自分なりに検証してみました。

コクのある乱数を生み出すアルゴリズムC#で書くと・・・

 

Random rnd = new Random();

int rNum = ( rnd.Next(0,10) + rnd.Next(0,10) + rnd.Next(0,10) 

   + rnd.Next(0,10) + rnd.Next(0,10) ) / 5

 

というものでした。5回乱数作って5で割る! 

前回のプログラムには多少のミスもあったんですが、まぁやること自体に意義があったのでやってみてよかったです。

 

今回はその後日談というわけではないですが、そのプログラムを改良、拡張したので今一度コクのある乱数、というものについて考えてみたいと思います。

 

改良した乱数集計プログラムについて

拡張した内容は、ふたつのListとそれぞれの処理です。 

・numAppearPoints
各々の数字(0から9まで)を抜き出した後、新たに元の集計のListから、その数字が全体のどの場所で出たか?というインデックスを集計する。

・pointIntervals
numAppearPointsから、その間隔、インターヴァルを計算して結果を集計するためのListです。

 最終的に三つの集計結果を各数字ごとに表示します。

  

拡張されたコード

さっそくコードをみてみます。

いつもは125%で表示しているので小さくて見づらいですね。 

f:id:miur-us:20161229011954p:plain

f:id:miur-us:20161229012039p:plain

f:id:miur-us:20161229012100p:plain

f:id:miur-us:20161229012116p:plain

 長いし、かなり見づらいですね、申し訳ない。

プログラムの流れをまとめると、

 

・モードを選択する。(通常かコクのあるモードか)
・キー押しっぱなしで乱数をドンドン作る。カウント、集計もする。
・集計された乱数を数字ごとに分類する。
・各数字がどんな間隔で出てくるかを調べる。(追加した機能)
・結果を表示する。

 

って感じです。

for文の中でfor文を二回使い、それぞれの集計をしています。いわゆるoff by oneエラーに苦しめられました。人間とコンピュータとの数の数え方の違いですね。

 

じゃあプログラム起動します。 

f:id:miur-us:20161229012242p:plain

 ここは同じです。 

f:id:miur-us:20161229012301p:plain

まずは通常モードで。

 

f:id:miur-us:20161229012321p:plain

Cキー以外のキーを押し続ければ、乱数がひたすら生成されていきます。

これも同じです。

 

Cキーを押して結果を表示します。試行数は1000回を目安にしています。 

f:id:miur-us:20161229012427p:plain

f:id:miur-us:20161229012525p:plain

f:id:miur-us:20161229012536p:plain

 ここはだいぶ変わりました。黄色くなっているのは単に見やすくするためだけです。

やはり全体的に散らばっていますね。インターバルは50回を超えることはほとんどないみたいですね。散らばってはいるが極端な間隔にはならない、という感じでしょうか。

  

それでは、コクのある乱数を見てみましょう! 

f:id:miur-us:20161229013039p:plain

 

 

f:id:miur-us:20161229013054p:plain

f:id:miur-us:20161229013102p:plain

f:id:miur-us:20161229013112p:plain

  

再度、考察。

やはり偏ってますね、何度みてもおもしろい!

4を中心にそこから離れるほどに、生成数も減るし

インターヴァルも極端になっていく、という傾向が見てとれますね!

  

これをUnityでのゲーム制作にどう活かせるか?というのは

まだ具体的なことは浮かんできませんが、何かしら役に立ってくれるだろうと思います。こっから更にもう一工夫必要かなぁ?

 

 

というわけでプログラムの改良とコクのある乱数についての再考察でした!!

 

 

 

MadeWithUnity先遣隊!Yooka - Laylee いよいよ完成!発売へのカウントダウン!

※本記事は発売前に書かれたものです。

MadeWithUnity新時代突入!!伝説的なメンバーによる、期待のアクションゲームが来る!Yooka - Layleeについて現段階での情報を確認してみます! 

f:id:miur-us:20161217022549j:plain

 画像はplaytonic games公式サイトより引用。

 

追記!

ついに予約購入し(Steam版)TOYBOXをプレイしたので、レビュー記事を書きました!

本編もプレイしたので、初感まとめました! 

 

期待のmadewithUnity

2017年になりまして、今年もMadeWithUnityのゲームがドンドン来るわけですよ。 Unityでのインディゲーム制作を目指すなら、チェックは欠かせないわけです。 

 

そんな中でも個人的にかなり注目しているのが、

Yooka- Laylee』(ヨーカとライリー)

 になります! 

 

発売までは残り1ヶ月を切りましたね!もちろん買いますし、おそらくレビューもここに書きます。が!とりあえず今書ける事を書いておきます!

先遣隊というのはそういうことですね!

 

たぶんTwitterですかね?はじめて動画を見た時、すごく懐かしい感じがして。

  

なんだろう?と調べてみたわけなんですが、開発はインディ系ですが、そのメンバーがすごいんすよ。 メンバーの過去の参加ゲームはこちら。 

f:id:miur-us:20161217020015p:plain

Playtonic Games公式サイトより一部スクショ抜粋  

 

これマジッすか?しかも音楽にデヴィット・ワイズ参加!?  

買うしか無いじゃん、こんなん。  

一人で興奮してしまいました。そりゃ何か惹かれるわけですよ。 このワクワク感はなんと言えばよいか・・・。久々にテンション上がりました。

 

オープンワールド系アクションゲームということでベースにはバンジョー&カズーイドンキーコングシリーズがあるみたいです。

  

特にスーパードンキーコング死ぬほどやりましたからねぇ。今でも普通に遊べますし。遜色なく神ゲーといえる作品です。バンジョーとカズーイは残念ながらやる機会はなくて。でもやはり良いゲームということは聞いていたんで、逆に新鮮な気持ちで楽しめる!って感じでいきます!

  

というかグラすごく綺麗ですよね。Unityも完全にクソゲー製造ゲームエンジン、という偏見から脱却しつつありますぜ!(今までももちろんドラクエなどビッグタイトルはありましたが)

豪華メンバーとはいえ、インディでこれだけのものが出来るのであれば、やはり夢は広がる一方です。まぁインディだけどインディじゃないみたいな感じかもですけど。

 

とにかく楽しみです!!

 

いろいろと推察!

でただ楽しみだなぁでは記事にならないと思ったので、公式サイトの情報などを元にいろいろ探ってみましょうか。

 

主人公はバンカズ、ドンキーよろしく二人組。

カメレオンのYookaとこうもりのLaylee

切り替えることでいろいろアクションをこなすようでまさに!という感じです。

 

Yookaの攻撃方法はクラッシュバンディクーを思い起こさせますね。

回転しての体当たり。クラッシュも90年代アクションの名作です。1,2はすごくやりましたね。 というかリメイク版が出るみたいですね、これもやりたい!

  

動画を見た感じだとバンカズ成分大目ですかね。エリア内を自由に走り回れる感じのようです。オープンワールド・アクションという感じです。

 

ただ上の動画にもありましたが、トロッコの部分はもろにドンキーシリーズですね。

f:id:miur-us:20161220235106j:plain あとモーフィングっぽい変身もありましたね。

これはヨッシーアイランドを思い起こされました。 

f:id:miur-us:20161220235336j:plain まさに『あの頃』のアクションゲームのエッセンスが注入されたものになるんでしょうね。わくわくします。もちろんただの懐古的な作品にはならないだろうとも思います。

  

もう既にいくつかのデモプレイ動画があがっているので、それで確認できると思いますが、Pagies(ペイジーズ)というページの破片を集めることでいける場所が増えていくというシステムとのこと。

 

そしてこの気だるげ?な赤いヘビTrowzerというキャラから新しい“アクション”を購入することで新しいワザを覚えていく!。 

f:id:miur-us:20161221000600j:plain

すごいズボンの履き方してんね、キミ。

 

ここら辺はバンカズですね。

 

あと追加情報として、対戦モードが告知されましたね。

ただしオフラインのみで、昔ながらの家に集まっての対戦を想定しているようです。 

f:id:miur-us:20170131235333j:plain

Playtonic Games公式サイトより引用 

対戦モードは8種類とのこと。子供たちにはぜひやってほしいなぁ。

大人はさすがに集まるのは難しいかもですがやれば楽しいだろうなぁ。

敵キャラもプレイキャラに使えるようです。

  

というわけで、とにかく発売が待ち遠しいですね。

1番上にも書きましたが、体験版でもあるTOYBOXプレイしました。

"Yooka-Laylee TOYBOX"の感想とUnityの可能性について。[ Made with Unity ]

感想含めて思ったことをまとめたので、よろしければご覧なってください。

 

本編については↓

"Yooka - Laylee" (ヨーカとライリー)の初見感想をまとめます

 

 

 

[ Visual Studio 2015 ] C#の豆知識。変数名の一括変更について

Visual Studio 2015において変数名一括変更する方法!

- Ctrl + Fキーを押せ! -

追記 : この機能は2015以降のもののようで、2015以前には搭載されていないようです。2015に特定した書き方ではなかったので訂正。誤解された方いらっしゃったら申し訳ございませんでしたm(_ _)m

 

Unityにしても何にしても、Visual Studio 2015をつかってコードを書いています。もうこれ無しにはプログラミングなんてできないよ!ってな感じでMSの思う壺なんですけどね。 

そのVisual Studioで最近、変数名をまとめて変更する方法を見つけたんでメモしておきたいと思います。

 

時短テクニック!

f:id:miur-us:20161215034028p:plain

とりあえずこういう意味の無いプログラムを用意しました。

コンソール画面に"77"という数字が映し出されるだけのものです。

  

このプログラムは"num"というInt Typeの変数を宣言してます。

それで意味も無くいろんな数字が代入されているわけですが

この"num"という変数名を変えるにはどうすればいいか?

 

いちいち手打ちで直すのも面倒です。

どの"num"でもいいのですが、とりあえずクリックします。 

f:id:miur-us:20161215034418p:plain

 そうすると全ての"num"がこのように色つきで表示されます。

methodなども同様に表示されます。わかりやすい!

 

でここで、Ctrl + Fキーです。

  

f:id:miur-us:20161215034554p:plain

 そうすると右上に小さなウィンドウが表示されます。

"num"の脇の下向きの矢印をクリックすると・・・ 

 

f:id:miur-us:20161215034721p:plain

 もう一個、入力欄が出てくるので変えたい名前を入力し、全て変えたいので右端の

アイコンをクリックします。 

 

f:id:miur-us:20161215034922p:plain

 "Variable"そのまんま"変数"ですね。

さてどうなるか!?

  

f:id:miur-us:20161215035009p:plain

おおー!!

すべての"num"が"Variable"と変更されています!

こんな他愛ないプログラムじゃなく

実際のプログラムにおけるリファクタリングにおいては

かなり重宝すると思います!

  

よりよい変数名思いついても、

どうせ読むの自分だけだし、めんどくさいし・・・

ッて感じで放置してしまうんですけど

これなら一瞬だーーッ!!

 

 おわり。

  

 

Unityのための打倒C# [0](その2)コードを書き始める前に全ては決まる!?

“プログラミングする”ということは“コードを書く”ということだけではなく、実際に書き始める前に、いくつものプロセスがあるということについて。
キーワード: 要件定義

  

↓前回の記事の補完になります。 

この記事で、コードを書くに当たっての基本的な事柄について考えてみましたが、大事なことを書き忘れていたので追加記事で補完します。

 

コードを書くだけがプログラミングじゃない、ということ  

上記事にも書きましたが、要はコンピュータに何か仕事をしてもらうわけです。

まずはこういうことができたらいいな、という欲求がまず先にあって、それを実現するためには機械にどう動いてもらうか?

そして具体的にはどういう順序どう動作させるか?ということを論理的に組み立てるというプロセスがまずあるわけです。 

 

どうしたいのか?具体的にどういう機能が欲しいのかをあらかじめまとめることを

最近知った言葉で、『要件定義』というらしいです。

  

思考を辿る。ロジックの組み立て。

他人の書いたコードを読むのは勉強になる、とよく言われます。

コードを読むという事は単に文面を読むのではなく、そのコードの背後にあるプログラマの思考を読み取るということなのだと思います。

なぜこの手段を取ったのか、と書いた人のその思考プロセスを追うことで、自分で考える上でのヒントにする、ということな訳です。

 

しかしそれは、むしろ初心者には難しい部分でもあると思います。 

 

なんでとりあえず簡単なものでいいから自分で考えて自分でコードを書いてみる、ということを優先したほうがいいのではないでしょうか。

自分の場合、その結果が↓これなわけですが。 

 

本質的には実際のコードというのはあくまで思考の結果の産物でしかない、ということが解って来ました。

ブログ等と違って、ただなんとなく書くものではないということです。 

  

コードを書くに至るまでのプロセス。

 プログラミングを書くという事は、次のように順序立てられます。 

 

・まずはその解決すべき問題を正しく理解する。
 どういった点を解決すべきなのか?何かルールや制約はあるのか?
 
・その問題を解決にはどういう道具が必要なのか?を考える。
 プログラミングで言えば、変数がどれくらい必要なのか、または配列なのか?
 for文が必要なのか?ライブラリやAPIの関数で使えるものがあるか?等ということを考える。 
 
・じゃあコンピュータに具体的にどう動いてもらうか?を論理的に組み立てる。
 (擬似コードや図を書き出すのも一つの手) 
 
・出来上がったロジックを、その言語のコードに落とし込むにはどうするか考える。

 

 

この4つの工程を経て初めて、実際にコードを書き始めるに至るわけです。  

ある意味ではコードを書く前に勝負がついていると言っても良いのかもしれません。

もちろん事前の想定通りに動くことは稀でしょうし、試行錯誤しながらコードを直していくのは当然ですが、出発点としてはこのくらい準備しなければならないと。。

大変ですなー・・・。

 

問題はこのようなことを多くのプログラミング本や、ブログでは教えてくれないんですね。読み方あるいはこういう道具があるよーという単なる説明書でしかない。もちろんちゃんとしたところもあるんですが。

ここら辺はクソブログ問題ですね。 (これについては後日。)

 

書き始めるに前に、実は最も重要な作業は終わっており、後はそれに基づいてコードを書いて、試行錯誤すると。準備の仕方もわからずに直ぐに書こうとしても、書けるわけがないなと思います。

 

まず考えてから書き始めるべし。

実際のコードを書くのはプログラミングにおいての最終工程、ぐらいの気持ちでいようと思います。  

 

 

参考文献: プログラマの考え方がおもしろいほど身につく本

     (原題: Think like a programmer)

      著 V. Anton Spraul      訳 角 征典、高木正弘

     アスキー・メディアワークス