学生がクリエイターになるまで

自称なんでも(できるようになりたい系)クリエイターのユゥです! 日記や備忘録、作った作品を公開していきます! コメントとか残してくれたらうれしいです。

オンラインワンナイト人狼Webアプリを作った

どうも、ユゥです。

おひさしぶりぶり~~~

例のアレで自宅にいて、本職(学生)の課題もモチベが上がらないので、何か他のことしたいな~と思いながら、人狼ゲームアプリを作りました。

jinro-home.com

 

友達にワンナイト人狼を教えてもらって、学校でたまにやってました。スマホアプリ版のやつに課金しまくって、役職めちゃ使ってやってました。

しかし例のアレで学校にも行けず、人狼もできなくなったので、オンラインでやる方法はないのか探すと、

oj.bakuretuken.com

ありました、公認サービス!

(使用可能役職:村人、占い師、怪盗、人狼、狂人、吊人)

このサービスを使わせてもらって、友達と何回かやってました。

しかし、スマホアプリ版に慣れていた僕たちは、他の役職を使いたくなりました。

 

つくるかーーーーー

 

まず、材料を用意します。

簡単ですね?🎅

 

 

うそです。

 

 

初めての非同期*1

で動くプログラムを書くことになって、どこから初めて良いかわからなかったので、とりあえず非同期といえば・・・ajaxならなんか聞いたことあるから調べてみよう。・・・と、調べて色々読んでました。

 諦めました。なんか難しい。調べてみると環境によってAjaxが使えるとかWebsocketがとかなんかいっぱいあるらしいです。

 

クライアントの環境によって最適な非同期通信を行ってくれる最強マン、それがsocket.ioっていうライブラリ?です。そんな素晴らしいものがNode.jsにあるなんて。PHPとかRubyとかわからんのでサーバーサイドもJSで書けるというのはすごい時間の短縮になりますね。

 

あとはExpressっていうNode.jsのHTTP通信を簡単にしてくれるやつを使いました・・・こんな感じで合ってるのかな?

 

Node.jsも初めてだったので色んなサイトを見ました。

 👆わかりやすさの極みでした。

 

そしてチャットアプリを作ってみて、

qiita.com

 

とりあえず完成しました。

あとはどうやって公開するか。

Node.jsとかnpmとか使える環境が必須です。僕はロリポップ! レンタルサーバーを使っているんですけど、これはサーバーの管理者権限を使えるわけではないで、Node.jsは使えません。

ロリポップ!マネージドクラウド だと使えるんですけど、従量課金制は使いたくないので、従量課金制でない且つ安いVPS鯖を探しました。

決めました。

さくらのVPS 、512MBプランです。

2週間お試しができるので、今もお試し期間中です。人狼ゲームくらいなら、全然負荷もかからないし、1コア512RAMで余裕ですね。

 

heroku や Glitchも使ってみました。が、人狼ゲームは少し時間がかかるので、その間に無アクセスとみなされてアプリがスリープしてゲームが中断されると嫌だったのでやめました。

 

 

・・・てな感じで随分雑に紹介しました。

ブラウザでできるオンラインワンナイト人狼、ぜひやってみてください。

GitHubカルボナーラコード*2を公開しているので、プルリクエストお待ちしております。

github.com

 

 

皆さんお体には十分にお気をつけて。

ではまた✋

 

 

 

jinro-home.com

*1:簡単に言うとページ遷移をせずにページの内容が変わるアレあるじゃないですか、多分それのことです。多分。

*2:スパゲッティとパスタの違いがわからない。パスタのソースはカルボナーラが一番好きです