その他

GSD


また2次創作です。すみません。

このゲーム自体は2013年に開発を開始して、2015年に完成させたものです。
ボクの処女作でして、ボクのエッセンスが色々詰まってます。今遊んでもそこそこ面白いです。

で、結局RPGツクールって完成させられるのかという話ですが、ボクは完成まで27ヶ月掛かりました。
いやきついですマジで、正直2013年にタイムスリップできるなら、ボクはボクに「辞めておけ」と言うでしょう。

なにがきついかって、自己肯定感が凄く低いんです。RPGツクールという名前がよくないんです。Unityでゲーム作ってるって言うとなんかおしゃれですが、RPGツクールにはそんなものはないです。名前が絶望的にダサいんですから。

「RPGツクールでゲーム作ってます」って人前で言える人はそうそういないと思います。そんな感じで自分の自尊心が低くなるので、リアルがどんどん腐っていきます。

なんかネガティブなことばかり書いていますが、こういうことは完成までずっと考えていたので、
しょうがないです。RPGツクールには感謝と恨みがたっくさんあります。
前回のデジタルTCG作ったので開発手順とか考えてたことをまとめてみたからも垣間見えるように、ゲーム開発はどろ臭いです。

なんで27ヶ月も掛かるかというと、これはRPGツクールだけでなく他のツールを使ってもそうなります。開発初心者って、自分を客観視できないんですよね。主観でしか評価できず、故にテストプレイに飽きて削除を繰り返します。

これは単純に、初見のテストプレイ時の自分の感想を書き留めておくことで回避できます。プレイヤーは初見なんですから。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

RPGツクールなので技術的な話とかはぶっちゃけないです。スクリプト素材とかイラスト素材とかをふんだんに使っているので、自分の存在意義を問うことになります。
自分って何者なんだろうと自問自答をずっと繰り返しながら制作するので、また飽きて削除とかしてしまうのです。まあ、一本完成させれば自分が何者なのかは分かりますけどね。

答えは……デザイナーです。そう、ゲームデザイナー。リソースを組み合わせてより良いものを作る人。料理人とかMAD動画作成者が近いですかね。

実は実制作期間は5ヶ月です。前半の22ヶ月はRPGツクールの操作に慣れたり、作っては消したりを繰り返してました。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
まとめ
正直RPGツクールだろうがプログラミングだろうがほっとんど何も変わらないから、さっさと完成させてプログラミング勉強して欲しい。RPGツクールでゲーム完成させた後にC言語を勉強しても命令の記述がなにもかも同じでびっくりするでしょう。そして、C++とオブジェクト指向を学んで、これはイベントを作成する機能だと直感で理解できれば最強です。その導入の為のツールとしてはRPGツクールは最高ですね。
このエントリーをはてなブックマークに追加

DMS


開発環境:Win7 & 8.1 + Visual Studio 2015, 17, Eclipse CDT
使用言語:C/C++ + DXライブラリ + WinSock1, 2 + BSDSocket


はい、2次創作です。すみません。
あと、このゲームは今からちょうど1年半前に開発を開始して、そこから5ヶ月で完成まで持って行った作品です。なぜ今になって掘り出して書いているかと言いますと、完成させてから1年が経過して、自分の中で整理できたからです。

システム的にはShadowverseとかHearthstoneとかWAR OF BRAINSとかと同じだと思います。オンライン対戦ゲームはボクの能力の限界を超えていたようで、今見ると酷いコードがたっくさんあります。

まず、オンライン部分の開発は後回しにしました。オフラインで動く部分を全部作りきってから、TCP/IPの勉強を開始した程です。具体的にはデッキを作成/編集して、テキストファイルへ保存する部分です。これは単純に各カードに一意のIDを与え、識別し、エディタ(ゲーム内の)からドラッグアンドドロップでデッキリストへ追加するというものです。
no title


で、保存ボタンが押された時にテキストファイルへそのIDを出力します。
ゲームを起動するとそのテキストファイルからIDを読み込んでデッキリストを生成するのです。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

オンライン部分なんですけど、当初は自宅にサーバーとしてデスクトップを立てて、クライアントのアクセスをそこで受け止め、IPアドレスを交換しあってました。
……のですが、火事が怖いのですぐレンタルVPSへ切り替えました。
さくらVPSを借りて、そこでIPアドレスを交換するマッチングサーバー(プログラム)を動かしていたのですが、HTTPで通信するように書けばさくらサーバーでも運用できたのかもしれません。詳しくは知りませんけど。

マッチングはUDPで行い、IPアドレスを交換した後はTCPで通信していました。ですが、マッチングもTCPでやるべきだったと反省しています。UDPでやる意味がないです。
あと、クライアントプログラムが今見ると本当に酷いです。
WSAWaitForMultipleEventsとWSAEnumNetworkEventsを両立していると言えばその酷さが分かるでしょう。エラー処理もぐちゃぐちゃだし、connectのブロッキングは回避していないしで、書き直す気力も起こりません。
最近WinSockの勉強をやり直してやっとこさきれいなプログラムが書けるようになりました。
絶対に挫折させないWinSock

でもTCPはレコード境界を作らないので、その辺りの処理をプログラマが実装しなきゃいけないのがなんとも面倒くさいというか、レコード境界付きTCPを誰か作ってください。20年待ちます。

あ、あと、WinSockもBSDSocketも中身はほとんど同じなので、参考書の中身が大分被ります。違う部分の方が少ないので学習は楽です。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
カードの効果は……
とりあえずボクは毎フレーム毎にバトルゾーンのカードが効果を発揮していないか確認していましたが、今思えば無駄だったと思います。プレイヤーがアクションを起こした後に1度だけ確認すればよいですね。

カードの情報を保持するクラスを作成して、他のクラスのメンバとして使用していました。例えばデッキクラスから生成されるデッキオブジェクトの実態はカードオブジェクトの配列です。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
グラフィカルじゃないよね……?
はい。DXライブラリを使うのはこれが初めてで……というかそもそも画像の表示とSEの再生にしか使ってないです。

なので演出の凝り方とかよくわかんないです。
でもアニメーションの再生は分かりました。フレームを確保する関数を書いて、その関数へ渡したフレームの間は他の関数の処理を止めればよいのです。
これを利用して呪文を発動した時だけはちょっとだけかっこよく表示されるようにしています。
(51秒目から)


というか当時は数学もIとIIをやった位で、その上なにもかも忘れていたので、画像の斜め移動とかはやっつけで書きました。sinとかcosとかにラジアンすら渡してません。適当に数値を代入して、1時間位掛けて目当ての方角へ移動する値を見つけてはそれを保存しておくという、他のプログラマが見たらドン引きするような手法をしていました。

だってこの為だけに数学やりたくなかったんですもん。時間もありませんでしたし。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
まとめ

すごく楽しかったけど大変でした。
もうオンラインゲームは作りたくないです。考えることがたくさんありますから。
でもまた作りたくなってるんですよね。もし次作るとしたらオリジナルのカードゲームにしようと思います。やっぱり2次創作は精神的に辛いです。
このエントリーをはてなブックマークに追加

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

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

閲覧ありがとうございます。このページではオンラインゲームの作り方を解説します。
僕の名前はRyuです。
世界中の誰かとランダムにマッチングして、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


結局のところゲーム制作は根気と根気と根気である。
簡単に諦めず、なんとか喰らいつこう。
このエントリーをはてなブックマークに追加

F12とDM Simulatorの更新を通知するTwitterアカウントを作りました。

https://twitter.com/dmsbot(こちらです)

というのも、このサイトやソフトウェアがあまりにも不定期更新なので、

「DMS更新されてないかな~?(わくわく)」
「更新されてなかったorz」

となってしまうからです。
つまり当サイトを閲覧してる方の負担が大きいので、こちらで通知しようという魂胆です。

ツイートは機械が行いますので中の人はいません。
もしよろしければフォローして下さると嬉しいです。

今まで作らなかったのは、アンダーグラウンドなソフトウェアだという自覚があったからです。
ですが、名目上F12の更新を通知するbotなので問題はありません。
このエントリーをはてなブックマークに追加

対応しました。

このソフトウェアが仕上がってきたら、64bit専用版とかも出したいですね(より高速に動くらしい)

最近ニコニコ動画の広告がたくさん突っ込まれてて驚きました。

いやはやありがとうございます。

しかし突っ込んだところでなんの音沙汰もないのが悲しいですよね(自虐)

私も本当はこのソフトウェアに心血を注ぎたいのですが、

リアルが……
このエントリーをはてなブックマークに追加

↑このページのトップヘ