リリースしなければ、インディーズゲームはただのDLLだ。
- リリースに至れるまでの脳内マイルストーン:
- まず、ゲームのコア部分を作ってみる。
- 面白さの核となる部分を、必要最小限の作りこみで。
- プラットフォーム周りを作る(スタート画面、コンフィグとか)。
- 1. と 2. を統合して、ゲームとしての体をギリギリ成すようにする。
- あとは、リリースできるレベルまで仕上げる。
- まず、ゲームのコア部分を作ってみる。
会社のPCでよくやるネットワーク設定の意味でも振り返ってみる
- DNSサーバ
- OSに設定する(正確には、ネットワークアダプタに対して設定する)。
- これを設定しないと:
- プロキシサーバ
勉強メモ2015
● セキュリティ
- Sender Policy Framework
- 受信側メールサーバが、「受信したメールが他のドメインになりすましているものではないか」を確認するもの。
- 具体的には:
- 受信側メールサーバは、受信したメール中のエンベロープの中の「送信元IPアドレス」を調べる。
- 受信側メールサーバは、メールアドレスのドメイン(@以降の部分)について、送信元にDNS問い合わせをおこなう。
- MXレコード→Aレコード→TXTレコード
- TXTレコードの "v=sfp1" 行(SPFレコード)に書いてある許可IPアドレスと一致していたら、正規のメールだと判断する。
- そうでなかったら(許可アドレスにどれも一致しなかったら、すなわち拒否アドレス "-all" に一致していたら)、なりすましメールだと判断する。
a-sha.co.jp IN MX 10 msv.a-sha.co.jp msv.a-sha.co.jp IN A x1.y1.z1.4 a-sha.co.jp IN TXT "v=spf1 +ip4:x1.y1.z1.4 -all" # ←「a-sha.co.jp から送るのは x1.y1.z1.4 だけやで〜」
- DMZ
- 宇宙船のエアロックみたいなもん。
- 「非武装地帯」と聞くと、そこに入った時点で「安全ゾーン」みたいなニュアンスを自分は受けてしまうが、そうではない。
- そうするためのものではあるが。
- 「非武装地帯」と聞くと、そこに入った時点で「安全ゾーン」みたいなニュアンスを自分は受けてしまうが、そうではない。
- 公開サーバ群は、(FWをかませているとはいえ)グローバルなセグメントに晒されている。
- 宇宙船のエアロックみたいなもん。
- リバースプロキシ
- Webサーバを公開する際、クライアントに直接Webサーバにアクセスさせるのではなく、いったんリバースプロキシを介してアクセスさせるようにする。
- リバースプロキシは、クライアントとWebサーバのやりとりを仲介する。
- その名の通り、プロキシサーバみたいなことを、ダウンリンク側で行う。
- こうすることで、たとえば「リバースプロキシをDMZに配置し、Webサーバを別の(内側の、守られた)セグメントに配置」することで、Webサーバをインターネットに晒さずに済む。
- 仮にリバースプロキシが乗っ取られても、被害を少なくできる(Webサーバが乗っ取られたときと比べると)。
- Webサーバを公開する際、クライアントに直接Webサーバにアクセスさせるのではなく、いったんリバースプロキシを介してアクセスさせるようにする。
● ネットワーク
- HTTPのメソッド
- GET
- ボディなし。
- 基本的にはデータ受信用だけど、クエリ・ストリングで送信もできる。送信内容モロバレだけど。
- POST
- ボディあり。
- レスポンスを返すのは、実は必須ではない(普通は、投稿後のページ情報とかを返すけど)。
- GET
リーダブルコード読書メモ
- 読みやすくするヒント
- デフォルト値は最初に書いておくといいかも
- コードを言葉で説明できるようにする
C#勉強メモ
MSIL(Microsoft Intermediate Language) って?
C#で、はろーわーるど
01: using System; 02: class Sample() { 03: static void Main() { 04: Console.WriteLine("Hello, World!"); 05: } 06: }
- 01 行目:
- 「System という名前空間を使うよ」という宣言。
- System 名前空間:.NET Framework クラスライブラリのためにあらかじめ定義されたやつ。
- 「System という名前空間を使うよ」という宣言。
- 03 行目:
- C#アプリケーションの実行は、必ず Main() を呼び出すことによって開始される。
- 04 行目:
- Console は、コンソール I/O をサポートする定義済みクラスの名前。
コードレビュー、自分用の心得(自分がレビュワー側の時)
- 自分のことは(ひとまず)棚に上げる
- 以下の観点を分けて考える
- コードの作法(きれいさ、読みやすさ)
- ロジックの正しさ
- 異常系のとき大丈夫かどうか
「良いコード」についての共通認識を持つと良いらしい。
うちのコードだと、どこのどんなコードがふさわしいだろうか?
Unityなしで3Dゲームを作ろうとするのは無謀なのかもしれない。
- まともなアクション3Dゲームって、作るのにすげー時間かかる。
- ミニゲームみたいやなつでも、趣味で作ろうとすると三年くらいかかるんじゃないかな。
インディーズゲームを世に出す気なら、少なくとも自己満足レベルを逸脱して、「面白い」か「壮快な」ものを作りたいですね。
- でも最初は自己満足レベルでいいと思う。
- それを最終的に「人に触ってもらって耐えられるもの」に昇華できればよいと思う。