ソフトを開発しようと思った動機、背景
昔からゲームが好きで、以前から自分でゲームを作りたいと思っていました。そこで自分のパソコンを持ったことをきっかけに、プログラミングの勉強もかねてC++でゲームを制作しようと思い、しばらくC++の勉強をしつつ、簡単なゲームを作ったのちにゲームを制作して公開することにしました。
当初は、以前に作った未完成のゲームをもとに「WirePlanet」とは別のゲームを作っており、画像など素材の作成も自分で行おうとしていました。ですが、初心者がプログラムを自分で組み、素材も自分で作るとなると制作にはかなり時間がかかります。制作を進めるうちにそのことに気がつき、とりあえず制作途中だったゲームと同じシステム(惑星上で攻めてくる敵を倒すなど)を使った、シンプルで短期間に作ることができるゲームを完成させることを考えました。このときに思いついたのが、画像素材の作成を最小限に抑えることができる「線だけでできたゲーム」です。プロトタイプを作成し、ブルームエフェクト(光がにじむような効果)をかけてみたところ、思いのほかきれいに仕上がったので「WirePlanet」として制作することに決めました。
開発中に苦労した点
初めて本格的に作ったソフトだったため、どのような機能が必要で、それをどのように実装するのかを完全には把握をしておらず、プログラム全体の設計もまともに立てないまま制作を開始しました。
結果として「制作しながら、必要な機能が見つかればその実装方法を考えて追加する」という場当たり的な方法で、手探りしながら制作を進めてゆくことになったのですが、進めてゆくうちに、完成するどころか実装しなければならない機能がみるみる増え、当初に立てた見積もりの甘さを痛感したことを覚えています。最終的には何とか完成させることができたのですが、開発開始時に考えていたより完成にかなりの時間がかかることになり、完成が見えてこない時期にはモチベーションの維持が主な課題となりました。
加えて「WirePlanet」のソースコードはプログラミングの勉強を始めた頃に書いたものに継ぎ足し修正してゆくことでできあがったものだったので、読みづらくて処理の流れがわかりにくい、いわゆるスパゲッティコードになってしまい、バグの修正や機能追加などにとても苦労することになってしまいました。
完成するまでに予想よりも苦労したのですが、その分、実際に完成し、無事に公開することができたときの達成感はすばらしかったです。
現在は別のゲームを制作しています。はじめは「WirePlanet」のコードを流用しようと考えていたのですが、あまりに修正や機能拡張が難しいコードに仕上がってしまっていたので、断念して結局、一から作り直すことにしました。今回は「WirePlanet」の反省を生かし、拡張性が高く、今後のゲーム制作で使いまわせるよう、事前に設計をしてから、プログラムを組んでいます。
ユーザにお勧めする使い方
難易度が高いので、初めは死んでしまってもコンティニューしつつ、最後のボスを倒すことを目標にし、慣れたらノーコンティニュークリアやハイスコアを目指してみることをオススメします。プレイのコツなどがマニュアルに細かく書いてありますので、よろしかったらご覧になってください。
今後のバージョンアップ予定
すでに完成しているので、ステージや機能の追加、難易度の調整は予定していません。バグや不具合があればすぐに修正いたしますので、よろしくお願いいたします。
(Cdec)