投稿記事

2018年 11月の記事 (4)

Heliodor 2018/11/21 19:31

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

Heliodor 2018/11/21 18:43

有料支援者限定特典

今回は有料支援者様限定、ヴィータ大脱出で使用されたプレイヤー(ヴィータ)のエロドット絵ビュワーです。
基本的には本編CGモードで見られるものと同じですが、敵キャラ表示をOFFにする機能が追加されています。

よく分からない不具合が出て、散々調べてもよく分からなかったので無理矢理解決してありますが、もし落ちた場合はご一報頂ければ。
(まぁゲームではないし、再現性も無いので再起動すればいいのですが……)

【 500円 】プラン以上限定 支援額:500円

このバックナンバーを購入すると、このプランの2018/11に投稿された限定特典を閲覧できます。 バックナンバーとは?

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

Heliodor 2018/11/16 18:12

プログラム開発環境について

何を使って開発してるんですか?という質問をたまに頂くので、開発環境について少しお話しします。

まず、プログラム的な環境でいえば、有料ツールは一切使っていません。全て無料で手に入るモノです。
ヴィータ大脱出や滅びの国の王女のプログラムはC++を使って開発しました。統合開発環境(IDE)は無料で入手できる Visual Studio Express で、これにDirectX 9.0 SDK October 2004 や Ogg vorbis, TinyXml, Lua などのライブラリを組み合わせています。

ちなみにDirectX9.0のSDKがなぜ最新版ではなく古い October 2004 なのかというと、実はこのSDKは、D3DXを使うのにDLLを必要としない最後のSDKなんです。つまり、これ以降のSDKでD3DXの関数を使おうとすると、d3dx9_43.dllとかのDLLが必要になります。そしてこれらのDLLは結構な確率でユーザーのPCにインストールされておらず、トラブルの元になります。
なので、プログラム的な利便性(新しく追加されたライブラリ関数が使えないとか)を多少犠牲にして、古いSDKで作っていました。

プロジェクトファイルは最初は手動で設定していましたが、いろいろオプション設定などを変えているうちに、クリーンな状態のプロジェクトファイルが欲しくなる場合が何回かあったため、そういうことが簡単にできるように cmake を使うようになりました。ちなみにプロジェクトは普通複数のビルド構成を含んでいますが、ヴィータ大脱出の場合は基本的に通常版と体験版があり、それぞれについて開発デバッグ用、友人テストプレイヤー配布用、製品版(デバッグ用の機能を完全に削除したもの)等があります。さらに、そのそれぞれについてステップ実行やランタイム情報の取得などが可能なDebug版と、最適化コンパイルするためのRelease版があるため、最終的には10以上のプログラム構成を含んでいます。

マップエディタなど、内製GUIツールの作成にはC#を使いました(もちろん Visual Studio Express で)。C#はちょっとしたツールを作るのにもかなり便利で使いやすく、ついでにゲームもC#で作れば楽だったのかもしれませんが、ヴィータ大脱出を作り始めた当時、まだ使っている人の多かったWindowsXPをサポートするという条件を考えた時に .net frameworkがインストールされていない可能性があったため、C++のままで行く事にしました。
(さすがにもうXPはいいよね……?という気もするので今後は変わるかもしれませんが)

GUIを伴わないツールやバッチファイル的なモノを作る時には Python です。例えばデータとexeファイル、readmeなどのテキストファイルをまとめて zip に固め、公開可能なファイルを作る作業などです。以前はゲームのスクリプトとして Python を使っていた時期もあったのですが、C側のコードがかなり巨大になってしまうことと、Pyhton のクラスをC側で定義するのが結構面倒だったので、ゲームへの組み込みはやめてしまいました。その代わりに使うようになったのが Lua です。ゲームのシーン進行や、会話スクリプトは全て Lua でやっています。Luaはとにかく構造がシンプルで、C側の実装が楽なんです。ただ、配列のインデックスが1起算なのはいまだに慣れません……。

キャラクタアニメの定義やデータテーブルなどには XML を使いました。YAML を使っていた時期もありましたが、YAMLは文法があまりにすっきりしすぎていて(冗長な情報がほとんどない)なんとなく不安に感じるという点と、タブではなくスペースでのインデントを強○されるのが個人的に嫌だったので、やめてしまいました。C側では TinyXml を使って読み込んでいます。

その他のツールとしては、、テキスト編集には Sakura Editor、バイナリエディタは Starling、zipの作成や中身の確認には7-zip portable、テキスト比較は WinMerge、バージョン管理は TortoiseHg です(そうです私はMercurial派です)。
ちなみにバージョン管理ツールは複数人で使うもの、と思っている方も多いと思いますが、これは個人で使うにも非常に便利なものです。私はバックアップと編集差分の確認、複数のPCでソースコードを同期する目的で使っています。

それと、CG関係のツールは語るとまた長くなるのでそのうち別にまとめるかも?
(ツールの変遷とか部分的に使っているものとか、まあ色々と……)。

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

Heliodor 2018/11/09 18:03

有料支援者特典検討中

現在、ヴィータ大脱出の支援者向け特典のチートツールを製作しています。

製作というよりも再構成といいますか、元々開発版で使っていた機能が色々あるのですが、第三者の使い勝手など一切考慮しない仕様だったので、なんとなく見て分かるように修正中です。




あと、ご要望のあった主人公単体でのドット絵ビュワーです。
単純に製品版のCGモードに敵キャラOFF機能を付けただけですが……これでいいのかな?w




それと、ステージ製作に使ったマップエディタがあるので、これも支援者向けに公開できないか検討中です。
かなり自分専用ツールな上に、力技でやっている部分とか色々と無理があるのですが……。

ステージひとつに限定にして、マ●オメーカーみたいに好きに作って配って遊んでもらえるように出来れば理想的ですが、さすがに手間掛かり過ぎなので、もう少し上手い方法は無いか悩み中。

……まあこちらはあまり期待しないで待っていて下さいw

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

月別アーカイブ

記事のタグから探す

限定特典から探す

記事を検索