オンラインワンナイト人狼Webアプリを作った
どうも、ユゥです。
おひさしぶりぶり~~~
例のアレで自宅にいて、本職(学生)の課題もモチベが上がらないので、何か他のことしたいな~と思いながら、人狼ゲームアプリを作りました。
友達にワンナイト人狼を教えてもらって、学校でたまにやってました。スマホアプリ版のやつに課金しまくって、役職めちゃ使ってやってました。
しかし例のアレで学校にも行けず、人狼もできなくなったので、オンラインでやる方法はないのか探すと、
ありました、公認サービス!
(使用可能役職:村人、占い師、怪盗、人狼、狂人、吊人)
このサービスを使わせてもらって、友達と何回かやってました。
しかし、スマホアプリ版に慣れていた僕たちは、他の役職を使いたくなりました。
つくるかーーーーー
まず、材料を用意します。
- JavaScript
- jQuery
- Node.js
- Express
- socket.io
- サーバー
簡単ですね?🎅
うそです。
初めての非同期*1
で動くプログラムを書くことになって、どこから初めて良いかわからなかったので、とりあえず非同期といえば・・・ajaxならなんか聞いたことあるから調べてみよう。・・・と、調べて色々読んでました。
AJAXなめてたごめんおやすみ
— ユゥ (@yulu0829) April 14, 2020
諦めました。なんか難しい。調べてみると環境によってAjaxが使えるとかWebsocketがとかなんかいっぱいあるらしいです。
クライアントの環境によって最適な非同期通信を行ってくれる最強マン、それがsocket.ioっていうライブラリ?です。そんな素晴らしいものがNode.jsにあるなんて。PHPとかRubyとかわからんのでサーバーサイドもJSで書けるというのはすごい時間の短縮になりますね。
あとはExpressっていうNode.jsのHTTP通信を簡単にしてくれるやつを使いました・・・こんな感じで合ってるのかな?
Node.jsも初めてだったので色んなサイトを見ました。
めちゃくちゃ分かりやすかった〜〜〜でもejsが個人的に読み辛すぎて苦手だ〜
— ユゥ (@yulu0829) April 15, 2020
Node.jsの勉強会でお手軽にWebアプリを作った話 - RAKUS Developers Blog | ラクス エンジニアブログ https://t.co/DZOb6TyBmo
👆わかりやすさの極みでした。
そしてチャットアプリを作ってみて、
とりあえず完成しました。
あとはどうやって公開するか。
Node.jsとかnpmとか使える環境が必須です。僕はロリポップ! のレンタルサーバーを使っているんですけど、これはサーバーの管理者権限を使えるわけではないで、Node.jsは使えません。
ロリポップ!マネージドクラウド だと使えるんですけど、従量課金制は使いたくないので、従量課金制でない且つ安いVPS鯖を探しました。
決めました。
さくらのVPS 、512MBプランです。
2週間お試しができるので、今もお試し期間中です。人狼ゲームくらいなら、全然負荷もかからないし、1コア512RAMで余裕ですね。
heroku や Glitchも使ってみました。が、人狼ゲームは少し時間がかかるので、その間に無アクセスとみなされてアプリがスリープしてゲームが中断されると嫌だったのでやめました。
・・・てな感じで随分雑に紹介しました。
ブラウザでできるオンラインワンナイト人狼、ぜひやってみてください。
GitHubにカルボナーラコード*2を公開しているので、プルリクエストお待ちしております。
皆さんお体には十分にお気をつけて。
ではまた✋