こんにちは。nariです。この記事はtraP Advent Calendar 2017の12月25日の記事です。
traP Advent Calendar 2017
traP Advent Calendar 2017をご存知ですか?僕はご存知です。
ご存知無い方はこちらを御覧ください : 今年もやります!! アドベントカレンダー2017 | 東京工業大学デジタル創作同好会traP
いわゆるAdvent Calendarなのですが、traPというサークルはすでに規模の大きなサークルとなっており、なんと10月23日からAdvent Calendarを始めるという奇行に及んでいます。で、今日がその最終日となっています。皆さんお疲れ様でした。
ところで、それはつまり10月23日時点でAdvent Calendarの日程が決まっているということで、実は2ヶ月前から今日この日の記事を担当することが決まっていました。
用意された期間は2ヶ月、しかも最後の記事。これはちゃんとしたものを書かなくては……
Polar Snow Fantasy
ところで、Polar Snow Fantasyをご存知ですか?僕はご存知です。
ご存知無い方はこちらを御覧ください : Polar Snow Fantasy | 東京工業大学デジタル創作同好会traP
traPのTeamPOが2015年度第2期プロジェクトとしてリリースした2Dアクションシューティングゲームとなります。ちょうど2年前のこの時期、全てを捨てて死に物狂いで開発していたのが懐かしいです。
ニコニコ自作ゲームフェス2016に投稿し、自作ゲームフェス2016 総評:RPGアツマール:RPGアツマールch(RPGアツマール) - ニコニコチャンネル:ゲーム にて以下のコメントを頂くなど、traPの中ではかなり大きな作品となりました。
●Polar Snow Fantasy
シューティングアクションです。こうした作品は動きの作り込みで快適さがかなり変わってくるので、もうひと練りしてほしかったようにも。東工大サークル作成ということで、大学でのゲーム制作が盛り上がることを期待します
参考画像 : Polar Snow Fantasyのプレイ画像
Typing War
ところで、Typing Warをご存知ですか?僕はご存知です。
ご存知無い方はこちらを御覧ください : Typing War | 東京工業大学デジタル創作同好会traP
こちらはもともとtraPの2015年度第1期プロジェクトとしてリリースされた二人プレイ専用戦略的対戦型タイピングゲームとなるのですが、2016年4月にアップデートし、プチブレイクしました。
もともとオンライン対戦が可能だったTyping Warですが、2016年4月のアップデートによって一人用モード、及びツイート機能が追加されました。
特にツイート機能によって一部界隈に瞬時に拡散し、一時期は対戦待ちロビーに数人は常駐、多いときで10人以上がプレイしているということもありました。
もともとすごかったゲームが、SNSの力を借りたことで多くの注目を集めることが出来たという一例となります。
現在でもコンスタントにプレイしている人がいることが #TypingWar - Twitter検索 を見るとわかります。
Polar Snow Fantasy EX
ところで、Polar Snow Fantasy EXをご存知ですか?僕はご存知です。
ご存知無い方はこちらなどを御覧ください : 新歓イベント ゲーム大会のご案内 & Googleカレンダーで講義日程を見よう!【新歓ブログリレー2017 2日目】 | 東京工業大学デジタル創作同好会traP、traPガイダンスのご案内 【新歓ブログリレー2017 5日目】 | 東京工業大学デジタル創作同好会traP
Polar Snow Fantasy EXはPolar Snow Fantasyを2~4人対戦ゲームにしたプロジェクトです。
上記ブログ記事等からも分かる通り、traPのイベントでPolar Snow Fantasy EXを開けばたちまち大盛況というかなりの人気作品となっています。Typing Warの例もありましたが、対戦ゲームにするとそれだけでかなり楽しく駆け引きの多い遊びになる魔力があると感じます。
さて、このPolar Snow Fantasy EXですが、実は未だに公開されていません。理由としては、後から対戦ゲーム化したことでプログラムが複雑化しメンテナンスしづらくなり、不具合やバグが増えてしまったこと、またオンライン対戦に対応していないためコントローラを1つのPCに4つ繋ぐ形式でしかプレイ出来ず、配布してもプレイする環境を整えるために一手間かかるという点などがあったためです。単に忘れていたとか面倒になったとかでは決して無いはず
CoffeeScript 2.0
ところで、CoffeeScript 2.0をご存知ですか?僕はご存知です。
ご存知無い方はこちらを御覧ください : 「CoffeeScript 2.0」リリース、最新ECMAScriptとの互換性を強化 | OSDN Magazine
CoffeeScriptはAltJSと呼ばれるようなコンパイルすることでJavaScriptに変換できる言語の一種で、Pythonライクなインデントブロック表記やRubyライクな括弧の省略などの他言語の糖衣構文が導入されたり、function
を->
で記述出来たり!== null
を?
で記述できたりclass
が使えたりとJavaScriptで頻出のいくつかのパターンが簡潔に書けるように改変されたりした言語となっています。僕は大好きです。
さて、このCoffeeScriptですが、=>
がES2015に輸入されたり、async/await
やyield
といった便利機能が追加されたりし、ES2015自身がかなりの発展を遂げた結果、今となってはCoffeeScriptは本当に駄目なのか? - Qiitaなど微妙な評価を受けています。あんなに人気だった6年前のCoffeeScriptは一体どこに行ったんだ……
しかし2017年9月、ついにCoffeeScript 2.0がリリースされました(参考 : CoffeeScript 2という新たなる希望 - Qiita)。
内容としてはES2015の機能(async/await
やimport/export
)に対応した、ということです。これによってES2015のAltJSとなったため、再びES2015の代替として使われる機会が出てきたということになります。
CoffeeScript好きだったけどasync/await
使いたいと思っていた人たちにはまた人気が出てくるんじゃないでしょうか。少なくとも僕は大好きです。
Project Obelisk
さていよいよ本題ですが、Project Obeliskについてお話します。
まずこの名前についてですが、
かっこいいプロジェクト名が欲しい
— AdventCalendar✌︎(°ω°) (@_n_ari) 2017年12月22日
po
— phi16 (@phi16_) 2017年12月22日
採用
— AdventCalendar✌︎(°ω°) (@_n_ari) 2017年12月22日
プロジェクト名が決まりました。たくさんのご応募ありがとうございました。
— AdventCalendar✌︎(°ω°) (@_n_ari) 2017年12月22日
ということで、Project Obeliskというかっこいい名前に決まりました。かっこいいですね。ちなみに意味は特に無いです。略すとpoになるというだけです。
あとこのやり取りは特に裏で合わせてるとかも全く無かったのですが、完全に欲しかった返答が秒で来てしまった形になります。
Project Obeliskの中身ですが、やりたいことは簡単です。
ここまで読んだらもう分かりますよね。
Polar Snow Fantasyをブラウザゲームとして移植し、オンライン対戦に対応させたい
というのが、Project Obeliskです。
ブラウザゲームとして作り直すことで、より多くの人にPolar Snow Fantasyを手軽に楽しんでもらいたいということと、対戦版(EX)を公開したいということを目指しています。
また、2年前に書いたプログラムを現在の知識を使ってリファクタリング・移植することで、よりメンテナンスしやすいコードにすること、リファクタリング・移植の知見を増やすこと、なども目的の一つとしてあります。
メンバーは今のところ僕一人です。
進捗報告
さて、2ヶ月の期間をもってして挑んだこのProject Obelisk、果たして完成したのか!?
[ここに進捗ダメでしたの画像を入れる]
ダメでした。理由はいろいろあるのですが、
- 現在鋭意製作中のプロジェクトのプログラムリーダーを担当していたためそもそもプログラム書く時間が持って行かれてしまったこと
- 外が寒くて相対的におふとんが暖かくなってしまったこと
- ハル研究所 プログラミングコンテスト2017が面白すぎて終わった後も少しやっていたこと
- ICPC地区予選のための練習を割と真面目にやって、参加して上位入賞したこと
- その他様々な要因やイベント
ということが重なった結果、全然進捗できませんでした。大学3年後半なら暇なものだと思っていたらそうでもなかった
ということで残念ながら完動版をお披露目することは叶いませんでしたが、今回の記事ではこのプロジェクトの始動のお知らせ(上で行った)と、現状完成しているところまでの紹介をします。
現状ですが、衝突判定、マップ読み込み、敵キャラ自キャラ、あたりがすでに移植済みです。
実装言語は上述の通りCoffeeScript 2.0で、画像描画にはpixi.jsを使っています。
2年前のソースコードを読み直している感想ですが、なかなかに何も読めなくなっていました。当時はこれを書き換えてゲームを作っていたんだと思うと驚きますね。
よく「1日後の自分という別人のためにコメントを残す」とかいうプログラマの格言みたいなものがありますが、もはや別次元の人間が書いたソースコードのようです。
現在は敵キャラの追加実装とサブウェポンの実装を行っているところです。
今後の目標
とりあえずまずは1人用モードPolar Snow Fantasyが完動するまでを目標に移植を進めていきます。
終わり次第オンライン通信の知見を集めて検証を繰り返して、最高のオンライン対戦を実現したいと思っています。
進捗状況については見せられるものができ次第ブログにて報告させていただきます。
終わりに
今後のProject Obeliskにご期待下さい。
良いお年を。