オープンソースってどうやるの?

アバター
Dixq (管理人)
管理人
記事: 1662
登録日時: 15年前
住所: 北海道札幌市
連絡を取る:

オープンソースってどうやるの?

投稿記事 by Dixq (管理人) » 9年前

そういえばある程度規模の大きなゲームのオープンソースってあんまり聞かないですね。

龍神録2をオープンソース化しようと思っていたんですが、
そうするとネタばれはおろか、課金システム作ろうとしているのに
お金の部分いくらでもいじれてしまいます。
改ざん防止策を取っているコードを読まれて改ざんされるかも・・・

ってかソースコードがあるのだからそもそもデータの改ざんすら必要ない。
player->money = 1000000;
とか書けばいいわけだし・・。
自分で変更したデータでビルドしたり変な海賊版が出回る可能性も。

龍神録のようなゲームを作りたいと思ってくれる人の参考になることをしたいと
思う反面こういう対策どうしたらいいのか悩んでいます。
何か良い策はないでしょうか?

アバター
Dixq (管理人)
管理人
記事: 1662
登録日時: 15年前
住所: 北海道札幌市
連絡を取る:

Re: オープンソースってどうやるの?

投稿記事 by Dixq (管理人) » 9年前

龍神録プログラミングの館の時はグローバル変数を用いた構造に全部作り変えてHPに掲載する専用のコードを一から作ったわけですが
(あぁ早く館閉鎖したい・・・)
新しく全く別の公開用プログラム作らないといけないんですかね。
私は一刻も早く「新・龍神録プログラミングの館」を作って
現行の館を閉鎖したいのです。。。

YuO
記事: 947
登録日時: 14年前

Re: オープンソースってどうやるの?

投稿記事 by YuO » 9年前

オープンソースと秘匿情報 (ここでは課金系) は相性が悪いですね……。
というか,ソースが公開されている以上秘匿でもなんでもなくなるので……。

「ベースシステム」と「派生システム」という形に分離して,ベースシステムをオープンソース化,派生システム (龍神録2バイナリ) に秘匿情報を入れておくくらいでしょうか。
ライセンスは他人のコードを利用する場合のものなので,自分の書いたソースコードに対して自分が設定したライセンスは無視できますし,複数の矛盾するライセンスを設定する(e.g. MySQL : GPLv2とプロプライエタリ)こともできます。
が,ベースシステムに対するパッチが第三者からGPLで提供された場合,そのパッチを龍神録2バイナリに取り込むことが出来ない,という問題は発生します。
このあたりは割り切りだと思いますが,パッチに関してはそれを見た人はバイナリ用のライセンス安全なパッチを書けない可能性もあるので難しいところです。
ref) Ruby 1.9.2リリースとWEBrick脆弱性問題の顛末 - 西尾泰和のはてなダイアリー

アバター
Dixq (管理人)
管理人
記事: 1662
登録日時: 15年前
住所: 北海道札幌市
連絡を取る:

Re: オープンソースってどうやるの?

投稿記事 by Dixq (管理人) » 9年前

YuOさん

なるほど、そうですよね。
コメント頂いた情報を元に考えてみます。
メニューの作り方的なことは掲示板でもしょっちゅう聞かれるのでその部分だけ公開したりモジュール単位で公開したりしましょうかね。
ありがとうございます!

アバター
Hiragi(GKUTH)
記事: 167
登録日時: 14年前

Re: オープンソースってどうやるの?

投稿記事 by Hiragi(GKUTH) » 9年前

>龍神録プログラミングの館の時はグローバル変数を用いた構造に全部作り変えてHPに掲載する専用のコードを一から作ったわけですが
(あぁ早く館閉鎖したい・・・)
新しく全く別の公開用プログラム作らないといけないんですかね。
私は一刻も早く「新・龍神録プログラミングの館」を作って
現行の館を閉鎖したいのです。。。

こ、困る...! 何時か新しい館が開かれたとしても現在のゲームプログラミングの館のように残しといて欲しいです...
受験終わったら再開するつもりですし。 その館の設計方法がどうであれ一応途中だし...(自己中

なんていう人は私以外でも居るんじゃないでしょうか?

アバター
Dixq (管理人)
管理人
記事: 1662
登録日時: 15年前
住所: 北海道札幌市
連絡を取る:

Re: オープンソースってどうやるの?

投稿記事 by Dixq (管理人) » 9年前

グクス君

あぁここにも被害者が・・。

どぶろく
記事: 75
登録日時: 13年前

Re: オープンソースってどうやるの?

投稿記事 by どぶろく » 9年前

わっ私も困ります。
グクスさんとまったく同意見です。残しておいてー。
(グローバル変数の方が分かり易いですよ、グローバル変数にまったく抵抗感無し)。

アバター
Hiragi(GKUTH)
記事: 167
登録日時: 14年前

Re: オープンソースってどうやるの?

投稿記事 by Hiragi(GKUTH) » 9年前

>どぶろくさん

グローバル変数の設計は超マズイらしいんですよねー、
まぁ新しい館がオブジェクト指向もしっかりと理解できる凄い館なら乗り換え(?)ももちろんアリですけど、
難しいんだろうなぁ...(願望)

どぶろく
記事: 75
登録日時: 13年前

Re: オープンソースってどうやるの?

投稿記事 by どぶろく » 9年前

>グクスさん
「オブジェクト指向もしっかりと理解できる凄い館なら」ってところが良いですね。
「JAVAでRPG制作」の動画を観て、なるほどって思ったこともありました。
今はインターネッとがあるので、説明のうまい人がいるので、難しいものでも理解できてしまいます。
オブジェクト指向かぁ・・・若いっていいなぁ。

アバター
Dixq (管理人)
管理人
記事: 1662
登録日時: 15年前
住所: 北海道札幌市
連絡を取る:

Re: オープンソースってどうやるの?

投稿記事 by Dixq (管理人) » 9年前

グローバル変数使うと他人が見たとき、または、1年後の自分が見たとき、変数がどのタイミングでどこで変わっているのか全く把握できなくなってしまうんですよね。
後はモジュールを多重化しようとしたときグローバル変数を使っていたら多重化できなかったり、
後バグがあった時それを取り除く際、見ないといけない個所が1クラス→全体になるので飛躍的に困難になります。
更に、他のゲームにあるモジュール、例えばキーコンフィグやパッド関連などのモジュールを移植する際、クラスになっていれば
ポンと移動できますが、グローバル変数と密着していると引きはがすのに一苦労です。
他にも挙げたらきりがない位グローバル変数の悪しき部分はあります。
もし新しい館を作るなら完全にC++になってしまいますが、それだとハードルが上がっちゃいますかね・・。
なるべくゲームプログラミングの館もピュアCで通してきたんですが。

どぶろく
記事: 75
登録日時: 13年前

Re: オープンソースってどうやるの?

投稿記事 by どぶろく » 9年前

こっこれって、いきなり難しい問題になってきたような・・・。
陶芸家が気に入らない作品を自分で割るような感覚なのでしょうか。
一番いいのは管理人さんの思った通りにやることです。
ハードルの高さは学習意欲?の問題なので、ピュアCでも分からない人はいつまで経っても分かりません。
完全なC++いいじゃないですか。管理人さんが思い描く新しい館を作るべきです。
偶然にもDXライブラリの全キー入力を学習しようと龍神録プログラミングの館を見ようと思っていました。
動きのあるゲームじゃなくクロスワードパズルを作ろうと思っていたんです。ただそれだけー。