読者です 読者をやめる 読者になる 読者になる

背筋を伸ばして深呼吸

折角なので専門知識を活かしたい

スマホゲームアプリの作り方(始めましたの話)

最近ハマっていること!

最近、脱出ゲームにハマっています。

とはいっても、大型イベントに参加しただとか、なぞときカフェに足を運んだとかではなく、「リアル脱出ゲーム」なる本を購入しました。

 

リアル脱出ゲーム presents 究極の謎本

リアル脱出ゲーム presents 究極の謎本

 

 

 

「SCRAP」という団体が出した本なのですが、やってみるとものすごく難しいです。

各問題には制限時間が設けられていて、問題を解く目安にしているのですが、制限時間30分の問題でも2,3日かかってしまような状況です。しかし、一つの謎に時間をかけてにらめっこしていると、天からひらめきが降りてきて解けたりもします。解けたときの喜びは筆舌に尽くしがたいといいますか、ヤバイですね。

 

解答がページの最後にまとめられており、自力で解けるまで見たくないものですから、表紙でかぶせて隠しています。できればヒントさえも見たくはない。こうして解くまでに時間がかかるわけですね。一冊の本に何ヶ月もかけて向き合っていると、「なんて素晴らしい本なんだろうなあ」という実感が湧いてきます。一生のうちにあと何度、きちんと向き合える本と出会えるのでしょうか。本自体の料金が¥1,600ですが、謎の品質も非常に高いため、コスパがよく大変満足しています。

 

システム屋さんにもWeb化の波が来ています!

前置きが長くなりましたが、スマホアプリについてです。

長らくオンプレミスの基幹系業務システムの開発に携わってきましたが、ガチガチのシステム屋さんにもWEB化の波が押し寄せてきて、ASP.netだのJAVAだのを触ることが増えました。WEB化は今に始まったことではないですが、今や案件のほとんどはWEBです。

 

WEBのシステムというのは、なかなかコストがかかります。

Windowsの画面を作るだけなら、SEとプログラマーで事足りますが、WEBだとプログラマーの他に、WEBデザイナーなる人が必要になります。まあ、デザインができるスーパープログラマーだとWEBデザイナーが不要なのですが、HTML, CSS, JavaScriptなどのWEB用の言語を駆使することになります。ゲーム開発とかだと、ゲームバランスが大事になってきますから、開発者の他にディレクターとかですね。単純に役割が増えると開発に費用がかかるというお話です。

 

スマホアプリの開発で最適な言語は何か?

そして今や当たり前となっているスマホのアプリはというと、

.net系やネイティブの人も開発ができるし、WEB系の人も開発ができるという配慮がなされています。今となってはスマホ開発はとても敷居が低いものなのですね。

 

一昔前はAndroidアプリであればJAVA言語、iPhoneであればSWIFT言語での開発するものだった記憶しております。SWIFTに関しては無知なもので、およそC言語と似たようなものでしょうか。最近ではXamarinなる.net系のC#言語で、Andriod,iPhoneの両方が作れちゃう便利なものまであったりしますね。WEB系の人ならおなじみのHTML,PHP言語でもアプリが作れたりするわけです。

じゃあ、どの言語でスマホアプリを作るのが最適なのか。
というと、これがよくわからないものなのです。

 

例えば動作性能、

3DCGでキビキビ動くようなゲームを作りたいと思ったなら、これをWEB系で作るべきではないなあとは思うのですが、今はUnityなんていうゲームエンジンがあったりします。Javascriptでゴリゴリ動くわけですね。しかし、インターネット回線が貧弱だとWEB系のアプリではまともに遊べないわけです。ネイティブであれば、アプリからの通信は最小限に抑えられています。

 

例えば開発環境、

XamarinならAndroidiPhoneもアプリが作れて便利ですが、お手軽さは全くありません。テキストだけのアプリならWEB系で作った方が圧倒的に楽です。WEBだとAndroidiPhoneも言語間の違いを気にしなくていいですから。

 

スマホアプリといっても、何を作るか?

つまるところ、「何を作るか」ということを最初に決めないと、それを「どうやって作るか」というのは決められないわけです。HTMLアプリで作るかネイティブアプリで作るかは、同じものを作ったとしても完成までにかかる労力(コスト)が、2,3倍も開くようではたまったものではありませんね。

 

そして最初の話になるわけです。「何を作ろうか」と。

そこで、ちょうど今ハマっている脱出ゲームを作ろう!と思い立ったわけです。

密室に閉じ込められた設定で、与えられた情報とアイテムを駆使して、謎を解き脱出するわけです。

 

この類いのゲームには動きがありません。

音は鳴るでしょうが、好き勝手動き回るわけでも、ジャンプするわけでも、派手なモーションで攻撃するわけでもありません。こういうのを動的と呼んだ場合、静的であるほどWEBで開発した方がいいことになります。HTML, JavaScriptPHPなどのお手軽な言語を選択します。

結論としては、あまり動きのないゲームを作った方が楽だ!

 

最後に

その課程を少しでも文章に起こして、今後アプリを作ってみたいと思っている方の役に立てればと思った次第です。

とりあえずは、使用言語とライブラリ、データベースなどを決めてから簡単な設計に着手したいと思います。

ではでは。