temtemのLairs攻略と雑感

シパングアップデートみなさんは楽しんでいますか?

僕はとても楽しんでいます。

昨日、3回くらいLairsで遊んできたので、気づいた事とか個人的な意見をまとめておこうと思います。
これはアーリーアクセスのゲームver0.7.0に基づいた記事のため、今後変更される可能性があります。

また、攻略情報みてやったわけじゃないので間違いとかあるかもしれない。

■どんなコンテンツ?
Lairsは複数箇所にあり、現在挑戦出来るダンジョンは1つ
毎週クリア報酬を獲得でき、そこでしか手に入らないテムテムがいる
参加人数は3-5人。randomマッチはないのでローカルチャット募集かTwitter募集などに参加する必要あり
アイテム・テムは持ち込み不可。ダンジョン内で入手したもので戦う。

■ビルド方針
チームは基本的に宝箱からの入手か、敵と戦闘後にランダム入手か、テムテム取得ポイント(序盤のみ)から入手する。
個性はおそらくランダムで、技はタマゴ技、わざマシンなど含めて覚えるすべてから選択が可能
技は弱点をつけるようにするため、色々タイプを用意したほうがよさそう。
また、ランクマッチをやっていると忘れがちだが、「TVsが適当振りの個体」となるため、普段は特殊技しか使わないテムテムでも物理技が候補になりうる。(トゥーロックの竜巻など)
基本はクリア時には6匹にしておきたい。5匹でもクリアできるとは思うが、ダイヤの数がやばくない限りは6匹を目指す。
7匹を超えた場合は入れ替えるテムを自分で選ぶ事になる。
道中楽にすすめるテムテム(例えば高火力であったり、回復持ちであったり)は大事だが、長期的に意識しておくことがある。

ボスをどう倒すか?だ。
ボスは炎緑タイプで弱点が毒のみ。毒特攻を持っている(もっていないときもある?相手の能力は固定ではない模様)ので、毒も辛い。
セルニーフは道中は強いが、炎と草弱点はボスでは活躍しにくいと思う。
またボスは状態異常が入らないので、疲弊や睡眠は効果がない。
ただし、ステータス変化は効果があるので、ライカーンやムシュックなどで攻撃ダウンを入れると楽になる。
注意することはゲージを割るたびにリセットされるので、ゲージ割るたびに入れる必要があること。
1回入れるだけでだいぶ楽になる。2回目以降、どんどん効果は薄くなるので、乱発すればいいわけではない。

そのため、ボスに有効なデバフや耐性、攻撃手段を持っている事が大事。

ただほとんどの場合、もらえるテムテムは固定なので運では?と思われるかもしれない。
もらえるテムテムはある程度操作することができる。

敵を倒した際に入手出来るテムテムは「その敵が使っていたテムテムからランダム」だ。
特に序盤の敵の数が少ない時は何がもらえるか分かりやすい。
なので、すごい序盤でも欲しいテムがいない場合はテムではなく、宝石をもらっておくほうが良い。
またどうしてもボスが倒せなさそうなときはテムを7-8匹目を取得して入れ替えても良い。

とはいえ数は正義なので序盤ではやめに6匹にしたいところ。

■買い物方針
敵を倒したときにもらえるお金で買い物ができる。
この資産はメンバー全員で共通だ。
買い物で気をつけていることは以下
・全滅するくらいなら多く買い物しておいたほうがいい。全滅は重い。
・チームが弱い人はとにかく買い物したほうがいい
・蘇生や全回復はボスクリア時に1つ以上もって終わるくらいの気持ちでいい。(それでも足りなくなる)
・買い物中でもリアルタイムでお金は増えるので、チームが弱いときは「他の人がすすめるのを待ってお金が入ってから買う」と良い。
・クリアが難しい(チーム状況やプレイヤースキルの問題どちらの場合でも)人は遅れて進めて増えたお金でアイテムを買うといい
・マップを開くとその先で発生するイベントがすべてわかるので、「連戦がある場合は多めにアイテムを購入する」と良い。特に3連戦はアイテムないと無理。
・ボスはチームが強くないとアイテムありきなので、「そもそもある程度は購入が必要」
・共有資産なので使うの気が引ける人は稼いだ額の6-7割くらいは使う気持ちでいいと思う。全滅は重い。
・マップをみて、「仲間全員が最後のショップより先」にいる場合は全額自分で購入していい。残す意味はない。
・炎ダメージ減がボスにめっちゃ強いので買いたい。

あとボスまでが遠足のゲームなので非常に悲しい事実なのですが、
・野良でボスに挑戦できるダイヤがたまるなら最後のショップはかなり多めに買ったほうがいい。
・ボスより前の戦闘では仲間の資産が減るとクリアできなくなる可能性があるが、ボスに挑戦した後は個人ゲームなので、クリア率には関係しない。
→というか買わないと買われるので戦争。クソゲーかな?
→とはいえ協力ゲームなので節度持ってやりたいですね。

■進行ペース方針
基本進められるなら可能な限り早いほうがいい。
全滅しそうな場合などで、買い物の価値を最大化したいなら待ってもいい。
早いほうがいいメリットは以下
・仲間にバフやお金を多く配れる。遅い人が楽になる
・ボスに挑戦する権利は「ダイヤを18個集めてクリアすること」ではない。
→ 「ダイヤが18個あるとき、自分が最後の地点で試合開始ボタンを押す」ことだ。
→ どういうことかというと、18個溜まった段階で出発しないでいて、誰かが死んで復活すると「14個になって出発できなくなる」。クソゲーかな?
→ そのため、18になったらすぐボスに挑戦するべきなので進行ははやければ早いほど自分が得。(出発すると部屋から抜けた扱いになるが、ボスに挑戦できる段階で仲間の手助けはもう出来ないので早く抜けても迷惑にはならない)
→ 連絡取り合える同士でプレイしているときはこの仕様を注意し、復活するときは声かけたほうがいい。(最後のチームギア調整中に数減って出撃できないとか目もあてられない)

■退出方針
相当頑張れば3回、おおよその場合2回まで全滅出来る。それ以上の全滅はボスには挑戦できないと思っていい。
→ボスのことを考えると全滅1回調整で残りバフ選んだほうがいい気もする。そのへんはチーム内で相談。
何回死んだら退出するかは相談しておいた方がいい。なんにせよ、全滅は重い。
ボス挑戦権が獲得できないのに他の人を待たせて試合続行するのは一声かけたほうがいい。
→ 自分が勝てば18個貯まるなら、それを伝えたほうが良いと思う。

■トレード方針
ランダムでなにか差し出すともらえるやつ。
バフやリバイブが大量にもらえたり、ダイヤがもらえることがある。
ダイヤの数がやばい時は狙うのはあり。HP50%払って効果するやつはだいたいめちゃくちゃ美味しいので、トレードするタイミングがマップをみてあるなら中回復を多めに買っておくといいかも。

■戦闘方針
負けないこと
次に戦闘があるなら被弾を極力さけること
バフは引き継がれるので、(全回復取ると消える)生命力吸収使ってから倒すとかは強い
被弾量をへらすことが大事、リバイタライズがいる場合は回復ループして終わると節約出来る(時間はかかる)

■初心者へ
初めての挑戦に向けて、事前調査でこの記事を読んでいるかもしれない。
とても大事なことだと思うけれど、「数回やってアイテム購入のさじ加減覚えないとクリアは大変」と思われる。
また、普段レート戦とかしない人はテムの型とかわからなくて大変だと思います。(しかも図鑑登録してないと自分のテムのタイプみえなくてつらい)
なので、まずはプレイすることが大事!プレイ自体は3-4人でもできるので(クリアは5人が圧倒的に楽)練習や様子見募集とかするといいかも。
参加するときは事前に「未プレイ」で大丈夫か確認したほうが良いです。この人口でだめって言われることそうそうないと思いますけど、
調べていても初見クリア結構たいへんなので、気遣い大事。

■楽しい?
一人か2-3人でやれるならもっとやりたかった。(ローグライク大好きマン)
毎回違うチーム楽しいし、リソース考えながら進めていく、「ランクマにはない考えるプレイ」が楽しかった。
ランクマがストーリーのバトル1試合を濃くしたものなら、これはストーリー全体を濃くしたものだ。
5人だし時間の価値観違う人同士でやるのは苦手な人には合わないかも。

助けるよりも足手まといにならない事を意識しないといけないルールなのでしんどい。リソース管理が仲間とシェアだけでなく、テムエキスの瓶1回とか欲しかった。

一人の全滅が重く難易度は高め。そのくせタイプ偏るとマジできつい回がある。
でも特別ルール系としては良い作りだと思うので、バトルフロンティアに個人的には期待。
人を集める事が苦じゃないならおすすめ出来るけど、改善の余地ありな部分はみえてる(特にダイヤ減ると出撃できなくなるとか、最後アイテムいっぱい買ったやつが得するとか)

しばらくは週1で遊ぼうと思う。

hapi.jsフレームワークのエラー解消法

node js関連のフレームワーク勉強中。

'use strict';

const Hapi = require('hapi');

const server = new Hapi.Server();
server.connection({ port: 3000, host: 'localhost' });

server.route({
    method: 'GET',
    path: '/',
    handler: function (request, h) {
        reply('Hello, ' + encodeURIComponent(h.params.name));
    }
});

server.start((err) => {

    if (err) {
        throw err;
    }
    console.log(`Server running at: ${server.info.uri}`);
});

公式が配布しているhello worldを動かすと下記エラーが出る

TypeError: server.connection is not a function
    at Object. (/home/ユーザー名/temp/server.js:6:8)
    at Module._compile (internal/modules/cjs/loader.js:778:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)
    at Module.load (internal/modules/cjs/loader.js:653:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
    at Function.Module._load (internal/modules/cjs/loader.js:585:3)
    at Function.Module.runMain (internal/modules/cjs/loader.js:831:12)
    at startup (internal/bootstrap/node.js:283:19)
    at bootstrapNodeJSCore (internal/bootstrap/node.js:623:3)

下記部分を書き換え

server.connection({ port: 3000, host: 'localhost' });

const server = new Hapi.Server({ port: 3000, host: 'localhost' });

理由としてはhapi v17.0.0から単一サーバーの複数接続のサポートが削除されたため。

さて、これで実行すると下記エラーが出る。

Debug: internal, implementation, error 
    TypeError: reply is not a function
    at handler (/home/ユーザー名/temp/server.js:11:9)
    at module.exports.internals.Manager.execute (/home/ユーザー名/temp/node_modules/hapi/lib/toolkit.js:31:106)
    at Object.internals.handler (/home/ユーザー名/temp/node_modules/hapi/lib/handler.js:46:48)
    at exports.execute (/home/ユーザー名/temp/node_modules/hapi/lib/handler.js:31:36)
    at Request._lifecycle (/home/ユーザー名/temp/node_modules/hapi/lib/request.js:312:68)
    at process._tickCallback (internal/process/next_tick.js:68:7)

これはHapiのバージョン17でAPIが大幅に変更されたかららしい。(https://hapijs.com/api/17.1.0)
仕様変更したら変更前のソース実行時にエラーメッセージ出すとかしてほしいね?

    handler: function (request, h) {
        reply('Hello, ' + encodeURIComponent(h.params.name));
    }

上記を下記に書き換える。

    handler: function(request) {
            return 'Hello, ' + encodeURIComponent(request.params.name);
    }

そして以下が完成形のHello worldソース

'user strict';
  
var Hapi = require('hapi');
const server = new Hapi.Server({ port: 3000, host: 'localhost' });
server.route({
    method: 'GET',
    path: '/{name}',
    handler: function(request) {
        return 'Hello, ' + encodeURIComponent(request.params.name);
    }
});
server.start(function() {
    console.log('Server running at:', server.info.uri);
});

動作確認

node server.js

実行したまま、別画面を開き、実行したサーバー内部から下記コマンドを実行

pc:~$ url -X GET localhost:3000/shibamata
Hello, shibamata

shibamataは適宜変更すればその文字が返る。

日本語の情報少なすぎませんかね?

Hello worldから躓いて解決策分からないと辛いので、誰かの助けになれば。

google検索するときに変換候補を選ぶ事ができない

知人のPCで起きた問題を解決したのでメモ。

【症状】
google検索のトップページで文字入力し、ある程度まで入力してから変換候補を選んでも、
画面下のブックマークを選択してしまったり、候補が選ばれずにひらがなの入力が完了するだけになる。
サジェストが選べない。

また、シークレットモードではこの事象は発生せず、正常に候補を選択することができる。
ひらがな入力を完了させてからなら候補を選ぶことができる。

【原因】
最新のMicrosoft IMEがクソ

【解決策】
MicrosoftIMEの設定で以前のバージョンを利用するにチェックを入れる。

Temtemを2000時間遊んだ元ポケモントレーナーがテムテムを紹介する

Temtemは2020年1月21日にアーリーアクセスが開始した。

現在はPC版のみで、2021年春にコンシューマー版の販売を予定している。

当初はXBOX、PS4、Switchでの発売を予定していたが、PS4ではなくPS5での発売に変わり、XBOXも最新機種への対応へと切り替わった。
完全クロスプレイ対応で、クロスセーブに関してはやりたいけど約束はできないといったステータスのようだ。

そして、先日PS5版のアーリーアクセスが発表され、それを機会にこの記事を読んでいる方もいるのではないだろうか。

僕はこのゲームを3月から参加し、現在は国内でもっともレートが高く、全体では上位50位〜100位をうろついている。全体のレート参加者は5000人程度。
色違い粘りといったバトルに関係ない部分にかなり時間を使っているが、昨今の世界情勢の影響で出来た時間を使い、(ここ最近は標準的なプレイ時間しか取れていないが)累計でだいたい2000時間ほどプレイしている。

今回この記事を書いたのは、Temtemというゲームは対人ゲームとして、MMOとして長く遊ぶにはどうなのか?といった焦点で紹介をする。

シナリオクリアだけする方ややっても100時間程度だろうなーといった方は、この記事を読んでいる時点できっとこのゲームに少しでも興味があると思うので、やってみるのが早いと思う。

ただし、インディーズのアーリーアクセスのゲームをやったことがない方や、シナリオが完結していないのが気になる人は来年春の正式リリースを待ったほうがいいかもしれない。
なぜなら、アーリーアクセスはハグや未完成な部分が国産ゲームと比較して、非常に多いからだ。
やることが確定しているなら購入を先するのをおすすめする。今はアーリー価格だが、正式リリースまでの間、大型アプデの度に値上げを予定しているからだ。(すでに値上がっている)

さて、今回は2000時間遊んだ先駆者として、このゲームは一体どんな人に何百時間もかける価値があるのか、僕にとってこのゲームのどこが魅力的だったのか、良い所も悪い所も紹介出来ればと思う。

結論から先に言えば、このゲームは長期的に国内でプレイヤーが沢山いる状態にはならないし、配信目的でプレイしたい人には向いていない。
国内の小さいコミュニティで海外勢に切り込むか、海外勢と交流してグローバルに楽しむか、どちらかのスタイルならあっているだろう。
そして打倒ポケモンをするのことはない。これはポケモンより劣っているという意味ではなく、ポケモンにインスパイアされているが、別の場所を目指しているゲームだからだ。

それぞれ理由をこのゲームの競技性について紹介しつつ、触れていきたいと思う。

Temtemというゲームがポケモンのようなキャラクター育成対戦ゲームで、ポケモンの3値(種族値個体値努力値)についてのなんとなくの知識があることを前提に紹介する。

このゲームを語る時に必ず話題に上がるのが「乱数」だ。
このゲームの芯もいっても良いくらい、語らなくてはいけない要素だと思う。
このゲームでは試合時における「乱数」が徹底的に排除されている。
つまり、技は必ず命中するし、追加効果は必ず発動するし、急所に当たる事はないし、ダメージのブレ幅も存在しない。
また、すばやさが同族であっても明確に決められたルールによって行動順位が決定される。
とはいえ、相手のステータスは非公開だし、行動選択は同時に行うため、ゼロワンゲームというわけではない。
ポケモンの駆け引きや読み合いはそのままにシステムからもたらされる不幸や恩恵がなくなったゲームだ。
※しいて言えば後述するピックバンの先行後攻はランダムで決まる(一応均等になるように完全な乱数ではないらしいが、詳細は不明)

乱数を排除した代わりにゲームを複雑にする要素が追加されている。
1.スタミナの追加
モンスターにはそれぞれスタミナという値が設定される。スタミナの多いキャラクターから、少ないキャラクターまでいて、努力値により強化するのことが可能だ。
スタミナはターン終了時に手持ちすべてのキャラクターが回復し、基本的には長時間戦闘に出しておくことが出来ない。

2.クールタイムの追加
強力な技は基本的にクールタイムが終わらないと使うことができない。
強力でクールタイムがない技もあるが、その場合大量のスタミナを利用するなど大きなデメリットが存在する。
また、スタミナと異なり戦闘に出ている場合でしかクールタイムは進まないため、大技を溜めたりガードしたりの駆け引きがある。

3.プライオリティの追加
技の速さだが、ポケモンの優先度とは多少異なる。
ポケモンでは同じ優先度の中で素早さが早いものから行動していたが、Temtemでは素早さに掛け算をするだけだ。
つまり、高速移動を使えば、神速相手にインファイトで攻撃するのこともできる。

4.ステータス変更の仕様が異なる。
ポケモンと異なり、ステータス変更が交換しても消えることはない。
つまり剣の舞をすれば試合中攻撃は上がったままだし、嫌な音をすれば耐久が下がったままとなる。
ダブルバトルしかないゲームのため、仲間を強化する技は沢山あり、戦闘中にエースを育てるといった戦いが出来る。

5.ピックバンの追加
ゲーム開始時に8匹から5匹利用するモンスターを選ぶ。
しかし自由に選べるわけでなく、相手の選出を禁止したり、交互に選出していき対策モンスターを選ぶといったことが出来る。
現状はこのフェーズで試合の3割は実力差がついて勝敗が決まるくらいに大事なフェーズとなる。
水ばかりのパーティーを使っても、まずバン(利用禁止)から始まるため、苦手な電気タイプを禁止するようなPTも存在する。

上記のような試合を複雑にする要素が多数あるため、乱数がなくなったからと言ってゲームが単調になるようなことはない。
むしろ複雑かつ乱数がないなため、8手詰めとかが平気で試合中に起こる。

この要素のため、プレイをやり込むのは楽しいが、配信向きではない。
何故なら、しっかり考えながら見ないとどのような駆け引きがあったな非常に分かりにくい。
そしてポケモンを観戦したことがあるなら思い出してほしい。誰かが急所にあたってキレたり、技が当たるかお祈りして外してブーブー言っているのをみて笑ったり、追加効果が起きて盛り上がったりしなかっただろうか?
やってる本人は気が気でないし、不運は萎える要素かも知れない。だが、他人の不幸は蜜の味なのだ。

このゲームは技を選択した段階で起こることが大体想像つくので、一喜一憂することがほとんどない。
自ら本気の戦いをするのはいいが、ステージで戦うゲームではないと、僕は思う。

そして、非常によく聞かれるが国内でポケモン好きな人が多いからこのゲームは人口が増えるのではないか?といった質問。
これに対して僕は同じ回答をしている。
コンシューマ版が出てすぐはプレイヤーはとても増えるだろうし、少しPT育成するような人もでるだろう。だがすぐにいなくなる。
理由は4つ

1つ目はマイナー厨には非常に辛い環境であるため。
個人的な感想だが、国内はマイナー厨の方がメジャーであると思っている。
マイナー厨までは行かなくとも、ガチからあえてズラしてオリジナリティを出す遊び方に人気があると思っている。
このゲームでその遊び方をするのは非常に辛い。
乱数がないせいでネット対戦においてPT構築+実力の差がはっきりとでる。
ゲーム内のレートは400〜2000くらいの幅があるが、200違うと勝率は8割近くつくし、400離れているとゲームにならない。
僕も1600くらいあるが、同じ構築を使ってもレート1200には負けない自信がある。しかし、2000勢にはとてもじゃないけれど、勝ち星をあげる自信はない。
ワンチャン自分より上位に勝つことがほとんど無い。

そして、中央値のレート1000でも相手の構成が結構ガチかつ上手い人が本当に多いので、明らかに特殊型を作るべきモンスターをあえて物理型にする遊びをしていると、びっくりするくらい勝てないだろう。
PC版アーリーで始めた方で勝てなくてやめていく人は沢山いた。

2つ目は交流が必要であるため。
このゲームは対人戦闘以外にも人と関らないといけない場面がある。
例えばポケモンだと一人でモクモクと6vメタモンと育てたいモンスターをくっつけて卵を割っていたかもしれないが、そのやり方だと1からPT作るのに200時間くらいかかる。
詳細は省くが、一度孵化した同じ種は大量生産しやすく、新たに生産するのはとてもめんどくさい仕様になっている。
そのため、大量に孵化した孵化余りをゲーム内通貨で販売し、人の孵化余りを買うのが一般的だ。
それをめんどくさがりすべて自己産しようとしてやめていく人は多かった。売買をすると10分の1以外の効率でPTを揃えることが出来る。

3つ目は人口が西洋圏や北米などがメインのプレイヤーであるため
アジア圏はデザインのせいか人がほとんどおらず、西洋圏が非常に多い。
海外勢と戦う機会が多いゲームをやったことがある人は感じたことがあるかもしれないが、これは時差が問題になる。
日本のゴールデンタイムには人がとても少ないのだ。
これは対戦相手が少なくなるともいえるし、2つ目であげた交流という観点でも、煩わしいことが多い。
また、主要なトーナメントの開催時間が月曜朝3時開始など、グローバルに遊ぶには少々つらいものがある。

4つ目はポケモンが好きな人は多いが、ポケモンバトルが好きな人はそんな多くないため
ポケモンはキャラクターのコンテンツパワーが凄まじい。
temtemをやって感じた事は杉森さんと増田さんはマジで凄かったんだなと思う。そしてアニメや本編以外のゲーム、グッズなどコンテンツが強い。
コンテンツが強いから、コンテンツが好きだからを理由にゲームをやっている層がいる、同じ土俵で勝つことはできないし、戦うつもりもないとしている。そこで比較するものではない。
temtemの目指す所はバトル体験とMMO体験だと思っている。

このゲームはポケモンが好きな人でなく、ポケモンバトルが好きな人におすすめしたい。バトルの奥深さや競技性は非常に高い。
主観で申し訳ないが、国内にはポケモンが好きでポケモンバトルをしている人はたくさんいるが、ポケモンバトルが好きでポケモンバトルをしている人はあまりいないように思う。

以上が、僕がtemtemが日本で(発売直後以外は)流行らないと思う理由だ。

ネガティブな話ばかりしていてもしょうがないので、このゲームの良い所をいくつか紹介する。

1.インディーズゲームだけあって、開発者との距離がとても近い
公式に競技系のチャットがあるが、普通に開発者が混じって一緒に会話しているし、議論することもある。
そして、ゲームについての意見は常に募集しているし、声として多いものはわりと反映される。
種族値や技や能力の仕様など、ガッツリ調整が入る。
ナーフも利用不可になるようなものでなく、ちゃんとみんなと肩を並べるような調整がされ、数匹を除き様々なモンスターに活躍の場ができている。

2.競技性に関わる課金要素の排除
昨今のソーシャルゲームにありがちな課金した者が強い要素はもちろん、課金することで時短や間接的に有利になるものは出さない。
具体的には「対人戦闘に関わるもの、モンスターの能力値に関わるもの、モンスターの育成短縮やフィールドの移動時間に関わるものなど、課金すると有利になるものはださない」としている。
今後方向転換するかもしれないが、クラウドファンディングする段階で方針として掲げている。
カッコいい帽子とか、エモートとかは一部有料だ。
ガチャが必要な対人ゲームは、本気で遊ぶ場合、僕にはあわない。

3.世界が生きている。
野生のモンスターがそのへんにいたりするし、MMORPGだけあって、お互い作用することはないものの、好きなモンスターを連れ歩いているひとが街中を駆け巡っていたり、育て屋に預けているみんなのモンスターが走り待っていたりする。
僕はこの世界の一人の住民として、ここにいるんだなあと感じる。
お互い取り合いするのともないけど、流行りのモンスターが大量に育て屋に預けられていたり、捕獲に特化した同じモンスターをみんなが連れて人気のスポットいたり、レアな色のモンスターを連れ歩いているのを見かけて羨ましがったりするだけで、少し幸せな気持ちになれる。

4.MMORPGである。
良くも悪くも、ネトゲだ。
ゲーム内でトーナメントが開けるようになるし、ゲーム内で
チャットもギルドもある。
ギルドバトルに勝つとジムリーダーになれる仕組みも追加されるそうだ。
対人はしたいけど、交流はしたくない人には向かないかもしれないが、誰かと遊ぶ・話す・過ごすができるのはMMOならではだと思う。
英語で海外のコミュニティに参加してもいいし、日本語なら僕達のギルドも活動している。このコミュニティは日本語を標準語としている。
ソロ中心のプレイではあるが、家庭用ゲームよりも知らない人と関わる機会は多い。

——–
さて、書きたいことを殴り書きしたので、構成とかぐちゃぐちゃだが、僕の伝えたかったことは以上だ。
もしTemtemに興味を持ってくれた人がいたらうれしい。
質問はツイッターにくれれば分かる範囲で返します。(記事のコメントは気づかない)

もし、競技シーンに参加する方がいれば、大会かランクマッチでせひ戦いましょう。

あ、最後にギルドの宣伝。
僕達のクラブはメンバー募集中です。
上位プレイヤー所属数が全ギルドで7位とかなので、うちで日本勢と海外勢を倒すのを目指してもいいかもしれない。(敵にプロゲーマーとかチェスのプロとかいたりするけど。)
ギルドバトル的なものはエントリーはするが、参加は完全任意で、一切不参加でよい方針。やりたい人がやりたいことをできるギルド。(ガッツリ上位を目指したいなら、ギルドを作るか、海外のギルドに参加したほうが良い。)

戦闘嫌いで一生色違い粘ったり、ひたすら技の挙動調べてる人がいたり、やりこんではいるけど、方向性は様々な人が多い。

人のそれぞれのプレイスタイルを尊重でき、日本語で交流が可能な人なら歓迎なので、声をかけてほしい。

それでは!

LINE API(LIFF)+AWS でハンズオンしてきた

とても良かった(小並感)

AWSの資格を取得したものの、ちゃんと何か作ったことないなーとか、
他の資格とるには経験足りないなーと思ったのが参加のきっかけ。

簡単操作でやった感が出るとてもいいハンズオンだった。

ほぼ永続的にハンズオン教材や動画を残しておいてくれるそうなので、試してみたい人はぜひ。

AWSのアカウント作ったー LINEグループ作れるよーくらいで以下のようなアプリが作れちゃいます。

ボードだして、イラスト書くとそのままラインにおくれちゃう!

実際のコーディング部分はほぼなくて、値の設定くらい。
どっちかっていうと、LIFFの作り方やAWSでどう環境構築するか?みたいな部分をもりもり試せた。
ほぼ無料枠内のみで完結して、後始末手順もしっかりあり、当日はAWS社員やLINE社員の手厚い介護を受けながら試せる。

これ無料でいいのか!?

AWSで触ったサービスはS3、Lambda、APIGateway、CLOUD9、chaliceとかかな。
CLOUD9なるオンラインエディタとchaliceは初めて聞いたけど、デプロイ簡単過ぎるし、ローカルへの環境構築がいらなくてハンズオンとの相性は最高だった。

LINEのミニアプリ(LINEの中で動くアプリのようなもの)の説明や、
サーバーレスでどのようにサービスを作るかみたいな座学もあり、本当に充実していた。
また参加したいなー。

当日のハンズオン資料は下記にあるので、興味ある方はぜひ試してみてください。
LINE APIでAWS上でアプリを作ろう! 2020年版
LINE API × TECH API VOL. 2 POWERED BY AWS

ちなみに他の人に使ってもらうのは下記の丸でかこった部分を押してDeveloperからpublicに変更すればいいです。
※自己責任で。

【本日の格言】
オンプレはブサイク
※個人の見解であり、所属する団体とはry

2020年:AWSソリューションアーキテクト-アソシエイト合格体験記と書籍紹介

2019/12末、長期休暇に入るにあたり、時間取れるし何かやるかなーと思いたち、
前々から取ろうと思っていたAWSソリューションアーキテクト-アソシエイトを勉強して取得してきました。

1中旬に取得したので、だいたい2週間ちょっとくらい。
その間にどんな勉強したかを忘れないうちに書いておきます。
合格体験記とか勉強法は記事がたくさんあると思うので、
実際に利用した勉強サービスや書籍を紹介したいと思います。

■スペック
AWS未経験
インフラほぼ未経験
アプリエンジニア数年

■今回購入したもの
AWS認定アソシエイト3資格対策(書籍)
この一冊で合格!AWS認定テキスト&問題集(書籍)
一夜漬けAWS認定ソリューションアーキテクトアソシエイト(書籍)
AmazonWebServices 基礎からのネットワーク&サーバー構築(書籍)
AWS WEB問題集で学習しよう(WEBサービス)
公式模擬試験(WEB)

■無料で利用したもの
blackbelt
公式のよくある質問
公式のサンプル問題

■AWS認定アソシエイト3資格対策(書籍)
おすすめ度:★★★☆☆
勉強時間:1週読む(1.5日)
AWS認定試験でソリューションアーキテクトの本が乱立する中、DeveloperとSysOpsも抑えた1冊
3資格コンプリート目指す人が読む分にはいいかなーと思いつつも、それぞれの資格の境界線が曖昧であることや
いざソリューションアーキテクトを受かった後にDeveloper勉強しようにもいまいち使い勝手が悪く、
初動にざっくりやるにはいいけれど、試験前日に読む書籍ではなかったなあという印象でした。

■この一冊で合格!AWS認定テキスト&問題集(書籍)
おすすめ度:★★★★☆
勉強時間:2週読む、付属の問題をすべて完璧にする(2日)
問題集が欲しかったために購入したが、問題はそんなに多くない。
内容としては既に古いものもあったが、内容も図解がわかりやすく概ね満足した。
模擬試験の難易度が他の書籍に比べて高く、本番以上だった。
ただし、本番にでない形式の問題があるなど、出題形式に慣れたい場合は不向き?
この一冊で!とあるが、各種レビューサイトにもかかれているが、この一冊だけで合格は結構しんどいと思う。
というか、1冊だけで合格がしんどい資格だと思います。
おすすめは2~3冊購入して情報の網羅性を高めることと、2~3冊で重複する内容は出やすいものなので、複数冊買う方がいいんじゃないかなと思います。

■一夜漬けAWS認定ソリューションアーキテクトアソシエイト(書籍)
おすすめ度:★★★★★
勉強時間:3週読む、付属の問題をすべて完璧にする(4日)
2020年発売の書籍。情報も新しい。一番のおすすめ。
章構成が実際の出題カテゴリとリンクしていて、公式の模擬試験で点数が悪かった場所を重点的に勉強も可能
ページ上部にポイントとなる概要、その下に解説という形式をとっているため、試験前日にポイントを読む→分からなければ解説を読む
といった勉強がとてもしやすかった。
また、問題の出題形式についての具体的な解説やこのサービスの問題はこういったことが聞かれるといった内容がかかれている(実際にでた)
受かるために必要な情報が凝縮された一冊でした。
模擬問題の解説がめちゃくちゃよくて、他の問題集は正解の理由が書いてあるだけで、
誤答に対して、なぜそれがだめなのか?について丁寧に記載されている点が本当によい。
今から受ける人がいれば絶対にお勧めしたい一冊です。

■AmazonWebServices 基礎からのネットワーク&サーバー構築(書籍)
おすすめ度:★★★★☆
勉強時間:1週読みながらハンズオン(2日)
AWS試験を受かるには手を動かすことだ!といった話を聞くことも多く、まず触ってみるかーと吟味して選んだ一冊。
勉強後にちゃんと終了させれば無料枠で出来る内容しか記載されておらず、やろうと思えば1日かからずできる量であることがよかった。
結論として、短期間で受験するなら実際に触る時間を机上で勉強した方が時間効率はいいように感じた。
しかし、この書籍のハンズオンはネットワーク未経験だった自分にサブネットやTCP/IPの内容をわかりやすく書いてくれたおかげで後の勉強がやりやすくなったことや
1冊勉強を終えたという達成感、NAT関連の問題にはまず間違えずに即答出来るようになり、自信がついたことなど、
短時間のハンズオンでありながらメンタル面でとてもプラスになった。
ただし、利用するソフトウェアのversionのかみ合わせが悪く、本の通りにやるだけだと動くところまでいかず、トラブルシューティングに時間がかかって計2日かかってしまった。
ちょっとそこだけは残念だなーと思いつつ、書籍だから仕方ないと割り切った。
もし買ってつまった方は以下の記事を読んでもらいたい
awsでWordPressが500エラー時の対処法

■AWS WEB問題集で学習しよう(WEBサービス)
おすすめ度:★★☆☆☆
勉強時間:2日?
スマホからも利用できる問題集。4500円くらい。
勉強法や合格体験記を読んでいるとよく話題にあがるサイト。
問題数は多く、移動中ができるのは魅力だがそれだけのサイト。
AWSの知識を増やすにはいいけれど、出題の仕方や実際の試験で問われるベクトルと異なる問題も多数あり、
ping-tなどの資格問題サイトを経験した後だと間違えた問題を一覧でみるとか、問題にフラグをつけるといった機能がなく
ただただ使いにくかった。
時間に余裕があるときに壁打ちを繰り返すにはいいかもしれないけれど、
スマホからできることのメリットを生かせないなら、値段と比較してしまうと個人的にはあまりおすすめできない。

■公式模擬試験
おすすめ度:★★★★☆
勉強時間:半日以下
問題数は少ないけど、良質な問題
難易度は低めなので油断しないように。
ただ、答えもらえないのがただただマイナス。

■blackbelt
おすすめ度:★★★☆☆
勉強時間:2日
公式の情報動画、無料。
最新の情報がでるが、厳密な情報も多いが、情報過多でノイズになりがち。
分からないサービスを理解するにはかなり良かった。
問題解きつかれた頭で受け身で勉強もできる。
問題点は物量がすごいことと、ITの知識がちょっとないと内容が難しいことがある点。

■公式のよくある質問
おすすめ度:★★★★☆
勉強時間:1日
公式のサービス別よくある質問。
ここから出る問題も少なくない。ただ物量があるため、頻出サービスの苦手分野だけ読むほうがいいかも。
理解度の低いサービスの理解度は一気に上がる。

■公式のサンプル問題
おすすめ度:★★★★☆
勉強時間:30分
簡単すぎる問題。ただすぐ終わるし無料なのでとりあえずやっとけ感はあります。

【おまけ】ネットで出ている情報で古かったもの・誰かに教えてほしかったもの
・2018年3月くらいから新試験が開始されていて、8月頃に旧試験が終了した。
・2020年3月頃から更に新試験が出る。難易度はあがりそう、現試験もいつかは終わる
・資格の有効期間が2年から3年に延長された
・プロフェッショナル試験は前提のアソシエイト試験をもっていなくてもよくなった
・遠隔カメラで監視されて英語でチャットみたいな話も聞くけど、そんなことはなかった。会場によるかもしれないけど最近の受験記事できかない。

awsでWordPressが500エラー時の対処法

Amazon Web Services 基礎からのネットワーク&サーバー構築 改訂版を読みながらAWSをいじっていた時躓いたので
同じ状況の人のためにメモ。

■状態
CHAPTER8 DBを用いたブログシステムの構築 の項目内
8-4 WordPresssを設定する において
サーバーに接続しようとした際、500エラーが返却されてページが表示されない。

■原因
最新のWordPressが求めるPHPのバージョン条件を満たしていない

書籍出てから結構立つし、しゃーないよねって話。

以下、上記書籍の手順通りに作成している場合の原因確認方法と解決方法を記載する。

■確認方法(直し方知りたいだけの人はここは飛ばす)
まずPHPのエラーは以下のコマンドで確認できる。

sudo less /var/log/httpd/error_log | tail -20

すると以下のようなエラーがでているはずだ。

[Sat Jan 04 19:53:14 2020] [error] [client *****] PHP Parse error:  syntax error, unexpected '.', expecting '&' or T_VARIABLE in /var/www/html/wp-includes/functions.php on line 1064

これは、WordPress 5.2ではPHP 5.6.20以降が必要なだが、古いPHPを利用してるときに発生する。
参考サイト

蛇足だが、インストールされてるPHPのバージョンを確認するのは以下

yum list installed | grep php

私の環境ではPHP5.2であったため、そもそもバージョンが足りていなかった。

■解決方法
理想はPHPのバージョンを7.xにすることだが、少々めんどくさい
また、今回はネットワークの勉強やAWSをさわりたい人がやっていると思うので、
書籍から大きく変わらない手順で対応するため、WordPressのバージョンを落とす。

以下のコマンドで配置したファイルの削除を行う

 
cd /var/www/html/
sudo rm -rf ./*
cd 
rm -rf wordpress

8-3 でwget で行ったコマンドを以下に読み替える

wget https://ja.wordpress.org/wordpress-4.9.13-ja.tar.gz

※併せてtar の展開コマンドも変える。

以降の手順は書籍通りに実施すれば500エラーが出ずにWordPressのページが開けるはずだ。

以上

EXCELで最初に出てくる指定値以上(以下)の条件を満たす行を取得

エクセルであるセルの範囲で条件を満たす一番上の行を取得する方法について、ちょっとつまづいたのでメモ。

★前置き
MATCHに同値であるものを探すオプションがあり、以上や以下が指定できるため、解決と思っていた。

しかし、MATCHはソートされていることを前提としている。
■参考
MATCH関数(Microsoftサポート)

つまり、以上、や以下でなく同値であるものを探す場合や、探査する列がソートされている場合はMATCHを利用するだけでよいが、
範囲内の条件を満たす、一番上の行を取得といった動作はしないのだ。
※MATCHで以上を指定すると、条件を満たすいずれかの行をとってきているようだ。二分探索とも違うし、アルゴリズムは不明。
※Microソフトがソートしろといっているからソートしないで利用すれば、よくわらかない動きをしてもしょーがない。

今回はソートを行わずに条件を満たす最初の行を取得したい。

★解決策
配列数式を利用する。

=MIN(IF([探索する範囲と条件],ROW([探索する範囲の行数])))

探索する範囲と条件 : A1:A10>100 など
探索する範囲の行数 : (A1~A10を探索するなら)1:10

気をつける点は・・・
セルの中身を確定する際にShift+Ctrl+Enterで確定させる。(ちゃんと確定させると入力した内容に中括弧がつく)
配列数式を利用する際は必要な使い方らしい。わかりにくい。
ただエンターを押してしまうと一番上の数値(配列としてみたときの最初の値)が表示されてしまう。

エクセルを利用する場面はなかなか無いけれど、仕事上どうしても使わないといけないときの忘却録

Pythonで設定ファイルをいいようにするクラス

自分用で覚えがき

Pythonで標準で設定ファイルをいじいじする機能があるじゃないですか。(configparser)

自分用のツール作るときはソースに直書きだったけれど、配布のこと考えたり、取り回し考えると
設定値は外だししてたほうがいいんですよね。

ただ、configparserってファイルないときや設定値がないときの処理がめんどくさくて、
機能追加したときに各自propertiesを追記してもらわないといけなかった。
足りない設定値は自動追加しておいて、値書き換えるだけにしたくてもそもそ書いてた機能をきれいにまとめて
ラッパークラスを書いた。

ソース

基本的にやってくれることは、ファイルなければつくって、設定値なければdefault値突っ込む。
なにか必要になれば都度更新すればいいかな。
どこにでもありそうだけど、自分が使いやすいようにしてみた。