ネットワーク

まずは下の動画を見て下さい。

※曲は僕の大好きな Lose Yourself です。

閲覧ありがとうございます。このページではオンラインゲームの作り方を解説します。
当方は
世界中の誰かとランダムにマッチングして、1:1で対戦するカードゲームを作った経験を持ちます。

http://jamfolder.work/DMS

残念ながらサーバー台を捻出できなくなったり、モチベーションが落ちたりして現在はサービス終了しています。

オンラインゲームを作るルートはいくつもあります。
僕が取ったルートはこちらです。
C言語→C++言語→DXライブラリ→Winsock2→Linux/CentOS7 & BSDSocket

ちなみにDXライブラリはゲームの根幹の部分を制作するのに必要なだけで、通信機能とは一切関係ありません。お好きなライブラリでどうぞ。


他には……
C言語→C++言語→UnrealEngine
C#言語→Unity
Java言語→サーバーサイド

などのルートがあります。

僕が取った具体的なルートを提示します。
ここに書いてある修行を全てこなすことができれば、オンラインゲームは作れるようになります。

C言語→C++言語→DXライブラリ→Winsock2→Linux/CentOS7 & BSDSocket
スラスラわかるC言語 (Beginner’s Best Guide to Programmin)
・表記されているサンプルコードを90%以上写経する。(書き写す)
・読み進める過程で、なぜこうなるのかを理解する。

独習C 第4版
・表記されているサンプルコードを90%以上写経する。
・読み進める過程で、なぜこうなるのかを理解する。

やさしいC 第5版
・ポインタの章, 配列・ポインタの応用の章のみ読む
・読み進める過程で、なぜこうなるのかを理解する。

C言語→C++言語→DXライブラリ→Winsock2→Linux/CentOS7 & BSDSocket
C++ の絵本
・表記されているサンプルコードを90%以上写経する。
・読み進める過程で、なぜこうなるのかを理解する。

独習C++ 第4版
・表記されているサンプルコードを90%以上写経する。
・読み進める過程で、なぜこうなるのかを理解する。
(第9章は第13章の後に取り組んでも可)

リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)
・1回読む。(サンプルコードの写経は必要ない)


C言語→C++言語→DXライブラリ→Winsock2→Linux/CentOS7 & BSDSocket
https://dixq.net/g/ にてDXライブラリの基礎を学ぶ。

https://bituse.info/game/shot/ にてオブジェクト指向的ゲーム開発(機能分割型ゲーム開発)の基礎を学ぶ。


C言語→C++言語→DXライブラリ→Winsock2→Linux/CentOS7 & BSDSocket
マスタリングTCP/IP 入門編 第5版
・1回読む(サンプルコードの写経は必要ない)

猫でもわかるネットワークプログラミング 第2版
・第1章/第4章/第6章/第7章のコンソールの部分だけを勉強する。
・上記の章の表記されているサンプルコードを50%(コンソールの部分)以上写経する。
・読み進める過程で、なぜこうなるのかを理解する。
・Win32GUIの話は理解さえできればよい。また、サンプルコード写経の必要はない。

WinSock2プログラミング―Windows Sockets APIによるネットワークプログラミングのすべて
・1回読む
・表記されているサンプルコードの内、気が向いたものは写経する。
・読み進める過程で、なぜこうなるのかを出来る範囲で理解する。

DXライブラリもWinsockも、関係ないライブラリとAPIなので、そのままincludeすると競合します。
競合を回避するには下のリンクの記事を読んで下さい。
DXライブラリとWinsock2を併用する方法
http://jamfolder.work/archives/22073653.html


C言語→C++言語→DXライブラリ→Winsock2→Linux/CentOS7 & BSDSocket
Linuxネットワークプログラミング
・表記されているサンプルコードを90%以上写経する。
・読み進める過程で、なぜこうなるのかを理解する。

サーバーサイドプログラムは家の余っているPC等にLinux/CentOS7等をインストールしてEclipse CDT を使用して書く。また、完成したサーバーサイドプログラムはさくらVPS等に載せる。

詰みそうなポイントは当ブログの記事(http://jamfolder.work/Programming)にも書いてある
WSAEventSelectの挙動などで分からないことがあれば参考にして欲しい。


また、本当に分からなくて困った時はこちらのメールへ相談頂ければ対応します。
但し、私も1人の人間なので解決できない問題もあります。
(★を@へ変更して下さい)
duemachine★gmail.com


結局のところゲーム制作は根気と根気と根気である。
簡単に諦めず、なんとか喰らいつこう。


また、実際にすぐに作り始めたいという方のために、
講座をご用意しました。オンラインゲームの作り方【0限目】
読み進めるためにはC言語とネットワーク概論の知識が必要です。

C言語に関しては、↓のページから勉強することができます。
わかりやすい C言語入門

ネットワーク概論に関しては、↓のページから勉強することができます。
ネットワーク概論

実際に僕が作成したゲームのソースコードはこちら
DM Simulator ソースコード
このエントリーをはてなブックマークに追加

CPUの脆弱性Spectre と Meltdownに対応しなければいけなくなりました。
ホストサーバのOSをアプデして脆弱性の対策をしてくれるとのことです。

サーバの構成はこんな感じです
ホストOS{仮想化ソフト{仮想マシン{ゲストOS{私のApplication}}}}

つまりレンタルサーバー会社の仮想マシンを構築している総本山のOSをアプデして対応するとのことです。

アプデにともなってホストサーバをリブート(再起動)するので、客(僕)のサーバ(ゲストOS)も強制再起動することになります。

つまりホストサーバのアプデが完了次第、レンタルサーバー会社からアプデして下さいとメールが来ますので、適切なOSにアプデして下さい。

普通にコマンドを叩いてOSをアプデすればよいです。

追記:より詳しく知りたい方はこちら
https://www.rbkyan.com/blog/2018/01/07/meltdown%E3%81%A8spectre%E3%81%AB%E3%81%A9%E3%81%86%E5%AF%BE%E5%BF%9C%E3%81%97%E3%81%9F%E3%82%89%E3%82%88%E3%81%84%E3%81%AE%E3%81%8B%EF%BC%9F/
このエントリーをはてなブックマークに追加

root で yum -y install screen を実行。
コマンド screen を打つ。
各々自分のプログラムを実行する。
(screenはブロッキングを起こすプログラムでも問題なく使用できる)
ctrlキーを押しながらaキーを押し、ctrlを押したままaキーを離し、dキーを押す。
(デタッチする)

screen -ls コマンドで現在のスクリーン一覧が表示される
(Detachedの行の先頭から.までがスクリーンのIDである)
screen -r スクリーンのID コマンドでスクリーンに場所を移す。
(アタッチする)
このエントリーをはてなブックマークに追加

フォルダ単位では送信できないので、まず
mkdir コマンドで/homeなどにフォルダを作成し、
コンソール内へドラッグ&ドロップで、一つずつSCPで送信する。
送信し終わった後、実行権限(chmod)を与えることを忘れずに。(実行ファイルであれば)
このエントリーをはてなブックマークに追加

vi には入力モードとコマンドモードがある。
iを入力して入力モードになる。これでファイルを編集する。
Escを押すとコマンドモードになる。これでコマンドを打つ。
コマンドモードで:を押すとコマンド受付画面になる。
wqを押すと保存して終了
このエントリーをはてなブックマークに追加

↑このページのトップヘ