管理人が自分のホームページで質問するなんて前代未聞かもしれませんが恥をしのんで質問します。近日公開が近づいている四聖龍神録2ですが、制作に1年半かかった作品でコード規模は完成時には8万行前後になるかと思います。参考:http://dixq.net/ryujin2/そんなコードをオープンソースで公開したいと思っています。絵も全て自作、音も自作、ストーリーもプログラムも全て自作(Remicalsoftサークル作)です。Githubに公開し、龍神録プログラミングの館のように作り方の紹介サイトも作ろうかと思いますが、ここで困ったことがあります。ソースコードが開示されれば海賊版も出すことが可能だし、改造したセーブデータも作り放題です。攻略しなくてもエンディングが見れる等、ソースコードを全て公開するとゲームとして機能しなくなります。いうことでオープンソースにすることで誰かゲームを作りたい人に貢献したいという気持ちがある一方で自分が全力で作って来た作品を守りたい気持ちも大きいです。ゲームとオープンソースは相性が悪いのだと思いますが、自分の作品を守りつつオープンにする何か良い方法はないものでしょうか。2年前コードが第三者に知られてもセキュリティが担保出来る仕様に改良してから公開する・・・とかやりますと、ゲームの仕様に依っては、動作に支障が出かねない上、膨大な工数が必要になりそうですね。案を提示する為にも、ソースコードを公開して下さい・・・とかやりますと、質問者様の懸念が早速現実になりかねませんしね。現実的な回答になっていませんが、私はこの質問に哲学的な面白みを感じましたよ。2年前ゲームのうちの,正しく「映画の著作物」的な面白さの部分はオープンにする事と相反してしまう面白さだと思います。いわゆる,ネタバレによって面白さが減じる部分です。それに対して,ゲーム自体としての面白さに関しては,公開する事によって面白さが減少することはないでしょう。オフトピック例として挙げるなら,ソースコードが公開されているわけではないですが,スーパーマリオブラザーズは各種ブロックの配置から敵の配置までわかっています。それによって面白さが減るものではありません。どちらを重視するかは作り手次第だと思います。OSIの言う「オープンソースライセンス」やFSFの「フリーソフトウェア」では,ユーザーによる改変は許可されるようなライセンスになります。個人的には,その改変によって面白さが減ったり,ゲームとして機能しなくなっても,それは改変を行ったものの責任なのでかまわないのではないか,と思ったりします。オフトピックオリジナルでない四聖龍神録2の改変版での評価は,オリジナルの四聖龍神録2の評価とは別物ですし。最終的に,dixqさんが「何を守りたいか」ということに帰着するのではないかと思います。自身の作ったゲームのバランスそのものを修正されたくない,というのであれば,オープンソースとは相性が悪いでしょうし,改変版の面白さまでは保証できないと割り切ってしまえば,オープンソース化することが可能だと思います。あと,日記の方で少し書きましたが「オープンソース」と「ソースが公開されている」は別の概念なので,オープンソースでないライセンスを付与する事で,少なくとも修正したものの公開を禁じることはできますし,改変したセーブデータの利用を禁じる事も(ライセンス上は)可能です。白い恋人さんコメントありがとうございます。海賊版そのものが出回ってしまっては手の打ちようがないと思っています。私ではない制作者が海賊版龍神録2を公開してしまうような事態が起きるという事です。龍神録プログラミングの館公開した1年後位は専門学校の卒業制作にそのまま出されているという報告が相次いだり企業に自分の作品として提出されているという報告が相次ぎました。完全なゲームとして完成している龍神録2のコードを公開したら前述のようなことが後を絶たないのではないかと言う懸念もあります。2年前YuOさんコメントありがとうございます。確かに開示したコードのライセンスをきちんと守ってくれる人であれば懸念は無さそうですが、そうでは無い人もいるでしょうから不正な海賊版が出回りそうな気がしています。オープンソースと言うと改変自由なので、ここでは一旦ライセンス的に再配布や改変したデータ・ゲームの配布は無しにしたとしましょう。最初から自由にし過ぎるとオリジナルがどれか分からなくなりそうなので、公開から2年位はライセンスで守ろうと思います。龍神録1ですら不正にデータを改変する方法やセーブデータの公開が複数のホームページやブログでされているのでソースを公開したら完全に制御不能になりそうです。卒業制作や企業の入社試験の作品持ち込みに利用されることが龍神録プログラミングの館で多かったのでそのような事態になることも懸念しています。コピーしたら透かしが入る的な巧妙な工夫が出来たらいいんですが、そういういいアイディアないでしょうか・・。無いですよね・・プログラムが全て公開されている以上。ライセンスで守った上で一面のプログラムだけ公開するようなスタンスが妥当な所でしょうか・・。懸念事項が分かったので、個人的にプログラミングの問題としては面白いネタなので、もう1案書いてみます。完全な解決にはなっていませんが、コードを全て公開する事を諦めて、1.プログラムの動作に絶対に必要になる、自作が難しい処理2.「このソフトウェアはコピーです!!」の透かしを強制的に入れる処理を結合した処理をDLLみたいな物にして、ソースコードを公開する。すると、ソースをパクっても、上記DLLモドキが無いと動作しないので、強制的に透かしが入ってしまう。いう様な仕様にすれば、スクリプトキディは音を上げるかもしれません。DLLだと、それなりに知識のある人に解析される可能性があるかもしれませんので、一工夫必要なのかもしれません。私が最近注力して開発に励んでいるプログラムは、為替取引等の自動売買を行うプログラムでして、もしかするとご存知かもしれませんがMetatrader4というソフト上で動作するMQL4という言語(C/C++を踏襲した言語)で開発されるものです。初期のMetatrader4ではMQL4で書いたコードをコンパイルして生成されたロードモジュールが簡単に解析されてしまう脆弱性があり、オリジナルのコピー品が溢れた時代が有りました。現在では同様に解析しようとすると、完全に実行可能な状態には復元出来なくなり、ロードモジュール→解析→リコンパイルとすると、コンパイルエラーになるような対策が施されている様です。この事例でいう解析対策に類似する物を実装出来れば、全てオープンとは行かなくても、ある程度オープンソース化は出来るのかもしれません。私が質問者様の立場だったら、面倒臭いので、やはり当面はソースは非公開にするかもしれません。白い変人さんあ、お名前間違っていましたすみません、、、。札幌在住なもので白い恋人という文字に見えました。面白い情報ありがとうございます。プログラムの動作に絶対に必要になる、自作が難しい処理ここ難しいですね・・。この処理を外して自分で書いてしまえばいいってことですよね。弾幕ゲーなので外せないモジュールをDLL化するなら弾幕モジュール部でしょうか。そこを隠すとオープンにする意味が無いような。譲れる部分、譲れない部分をまず整理してみることにします。剥ぎ取るのが難し目なコーディングで透かしを入れるようにし、それでも取れてしまうのであればよくできましたってことで海賊版が出てもしょうがないと考えましょうか・・。その透かしを入れるいい方法ありますかね。DXライブラリのDraw系メソッドを検索していき対象の透かしコードをコメントアウトしたらそれで済んでしまいそうな・・。ミクプラは自由にリンクできます。