作品やら思ったコトを書き留めておく、付箋みたいなトコロ。
M.E.の思うトコロ
サーバーのメンテナンスについて。
メイン用に Phenom II x6 1090T を買いました。(まだ届いてないけど)
これと入れ替えると、Athlon II x4 630が余るので、これをサーバーに付けます。
メインの交換用が届き次第、入れ替えるので、
一部サービスがメンテナンス中は止まります。なにとぞ、ご理解ください。
サーバーが2コア→4コアとなり、余力が多くなるので、楽しみです。
これと入れ替えると、Athlon II x4 630が余るので、これをサーバーに付けます。
メインの交換用が届き次第、入れ替えるので、
一部サービスがメンテナンス中は止まります。なにとぞ、ご理解ください。
サーバーが2コア→4コアとなり、余力が多くなるので、楽しみです。
コメント ( 9 ) | Trackback ( 0 )
コワリス・壊にランキングを実装。
コワリス・壊にランキングを実装しました。
前のバージョンのランキングには脆弱性があったため、
新しいプロトコルで作りました。不備も発見できて調度良かったです。
色々、前のランキングとは仕様が違います。
・登録したか確認が出る様になった。
・バージョンや難易度、オプションごとにランキングが分けらた。
・ランキングを、名前で前方一致検索できるようになった。
と、結構変わったところが多いです。
さて、今日からはネットワーク対戦のロビーをつくっていく予定なのですが、
ロビーの構造でちょっと悩んでいます。
2人用、5人用、7人用と、分けようと考えていますが、フリーな人の扱いに悩みます。
たとえば、たった今ログインしたばかりの人を、いきなり呼び寄せられるかとか。
この場合は、参加したいゲームに各自が登録するということで、解消しようかなぁ・・・。
そして、ゲーム中に飛び入りとかも実装したりとか。
2人用 対戦部屋リスト(完全版での従来のロビー)
5人用 対戦部屋リスト(部屋を作って、参加者待ち)
ランダム 5人対戦(定員が満たされたら部屋を作成して開始)
ランダム 7人対戦(定員が満たされたら部屋を作成して開始)
という感じにしようかな・・・?
前のバージョンのランキングには脆弱性があったため、
新しいプロトコルで作りました。不備も発見できて調度良かったです。
色々、前のランキングとは仕様が違います。
・登録したか確認が出る様になった。
・バージョンや難易度、オプションごとにランキングが分けらた。
・ランキングを、名前で前方一致検索できるようになった。
と、結構変わったところが多いです。
さて、今日からはネットワーク対戦のロビーをつくっていく予定なのですが、
ロビーの構造でちょっと悩んでいます。
2人用、5人用、7人用と、分けようと考えていますが、フリーな人の扱いに悩みます。
たとえば、たった今ログインしたばかりの人を、いきなり呼び寄せられるかとか。
この場合は、参加したいゲームに各自が登録するということで、解消しようかなぁ・・・。
そして、ゲーム中に飛び入りとかも実装したりとか。
2人用 対戦部屋リスト(完全版での従来のロビー)
5人用 対戦部屋リスト(部屋を作って、参加者待ち)
ランダム 5人対戦(定員が満たされたら部屋を作成して開始)
ランダム 7人対戦(定員が満たされたら部屋を作成して開始)
という感じにしようかな・・・?
コメント ( 17 ) | Trackback ( 0 )
やっと、AESを付けれた・・・。
ようやく、両方のソケット側にAESを実装できました。
思ったより時間がかかってしまいました。
今、暗号化の部分を全部有効にするべく残りの実装とデバグをやっています。
今、開発中のプロトコルは、機能的には承認局のないTLS1.2みたいなものです。
これが形になれば、大体セーフティーな感じの通信ができます。
ただ、承認局を通さないため、騙りやなりすましに弱い気がします。
落ち着いたら、ここいら辺の対策をしないといけませんね。
思ったより時間がかかってしまいました。
今、暗号化の部分を全部有効にするべく残りの実装とデバグをやっています。
今、開発中のプロトコルは、機能的には承認局のないTLS1.2みたいなものです。
これが形になれば、大体セーフティーな感じの通信ができます。
ただ、承認局を通さないため、騙りやなりすましに弱い気がします。
落ち着いたら、ここいら辺の対策をしないといけませんね。
コメント ( 1 ) | Trackback ( 0 )
自分で考えた暗号が、既存のモノに似てる。
自分で考えた暗号が、RC4とかいう既存の暗号にかなり近いみたいです。
まぁ、暗号とかは、昔から考えぬかれた分野だし被ってもおかしくないよね~。
さて、なかなかAESの実装方法がわからない・・・。
ライブラリとして簡単そうなOpenSSLのAES系の関数の使い方が見つからない・・・。
RC4(もどき)の暗号強度もそこそこらしいので、AESを無理に実装する必要はないけど、
今後のことを思うと、強度的には付けておきたいですね。
まぁ、暗号とかは、昔から考えぬかれた分野だし被ってもおかしくないよね~。
さて、なかなかAESの実装方法がわからない・・・。
ライブラリとして簡単そうなOpenSSLのAES系の関数の使い方が見つからない・・・。
RC4(もどき)の暗号強度もそこそこらしいので、AESを無理に実装する必要はないけど、
今後のことを思うと、強度的には付けておきたいですね。
コメント ( 0 ) | Trackback ( 0 )
工期の遅れは、入念な単体テストと可用性の探求?
この後、色々ネットワークを使った別のゲームを作る予定で、
部品の流用を考えながら作業しているから、
今すぐには絶対に使わない部分まで実装している事に気がついた。
これが工期の延長の主因なのかな・・・。
あと、サーバなので、単体テストでしごいているんだけど、
これが、執拗にエラー回避処理を付ける原因になっているっぽい。
まぁ、本運転中にデバグするよりはましかな・・・。
部品の流用を考えながら作業しているから、
今すぐには絶対に使わない部分まで実装している事に気がついた。
これが工期の延長の主因なのかな・・・。
あと、サーバなので、単体テストでしごいているんだけど、
これが、執拗にエラー回避処理を付ける原因になっているっぽい。
まぁ、本運転中にデバグするよりはましかな・・・。
コメント ( 7 ) | Trackback ( 0 )
そういえば、何度も予定よりも遅れてしまっているなぁ・・・。
予定を立てると、その2倍~3倍かかるという不思議・・・。
多めに見積もって2倍で宣言しても、やっぱり宣言より2倍かかってしまう。
なんとからなんのか・・・。
多めに見積もって2倍で宣言しても、やっぱり宣言より2倍かかってしまう。
なんとからなんのか・・・。
コメント ( 2 ) | Trackback ( 0 )
コワリス壊オンラインのロビーの通信の暗号化のおはなし
コワリス壊オンラインのロビーを、通信の暗号化からつくっています。
今度はしっかりと、部品単位でわけて設計しながらやっていますので、
バグとか鯖落ちが起きないようにデバグできることと思います。
また、暗号化を盛り込むことで、以前できなかった
IDを使ったレーティングやランキングを行えるようになると思います。
サーバー実装の進行具合としては、
・サーバーの概念設計
・スレッドをクラスでラッピング
・スレッドセーフなデータ保管クラスの作成
・サーバーソケットをクラスでラッピング
・クライアント用ソケットをスレッドクラスを継承してラッピング
・C用のRSAライブラリをクラスでラッピング
・共通鍵暗号をクラスでラッピング
・Cのzlibをメモリ使い回し設計でクラスにラッピング
・クライアント用ソケットクラスを改変して、
暗号化・復号・圧縮・解凍を内包した
ソケットのカスタムクラスの作成 ←今ここを実行中
これからの、サーバー実装の予定
・スレッドクラスを継承してクライアント用クラスの作成
・ロビーやランキングの処理部分を旧サーバーから移植
・ロビーを部屋割り式に改変
・結合デバグ
・仮公開(これ以降は動かしながら実装)
・IDのメール承認用クラスの作成
・ID管理クラスの作成
・レーティングの実装
・あとは要望次第
てか、実装するのはたいてい1時間もかからないのに、
デバグで3時間以上かかるのは何とかならないものか・・・。
今度はしっかりと、部品単位でわけて設計しながらやっていますので、
バグとか鯖落ちが起きないようにデバグできることと思います。
また、暗号化を盛り込むことで、以前できなかった
IDを使ったレーティングやランキングを行えるようになると思います。
サーバー実装の進行具合としては、
・サーバーの概念設計
・スレッドをクラスでラッピング
・スレッドセーフなデータ保管クラスの作成
・サーバーソケットをクラスでラッピング
・クライアント用ソケットをスレッドクラスを継承してラッピング
・C用のRSAライブラリをクラスでラッピング
・共通鍵暗号をクラスでラッピング
・Cのzlibをメモリ使い回し設計でクラスにラッピング
・クライアント用ソケットクラスを改変して、
暗号化・復号・圧縮・解凍を内包した
ソケットのカスタムクラスの作成 ←今ここを実行中
これからの、サーバー実装の予定
・スレッドクラスを継承してクライアント用クラスの作成
・ロビーやランキングの処理部分を旧サーバーから移植
・ロビーを部屋割り式に改変
・結合デバグ
・仮公開(これ以降は動かしながら実装)
・IDのメール承認用クラスの作成
・ID管理クラスの作成
・レーティングの実装
・あとは要望次第
てか、実装するのはたいてい1時間もかからないのに、
デバグで3時間以上かかるのは何とかならないものか・・・。
コメント ( 5 ) | Trackback ( 0 )