サイファシストを改修します

表題にもありますように、おかげさまで現在サイファの亡霊の皆さんにご愛顧いただいているサイファシストですが、改修作業を行っています。
開発はもうほぼ終わっていて、バグ取りとかちょっとした調整とか、あとは私しか使用しないような管理機能の実装が残ってるくらいです。
本記事では、簡単な改修の動機や経緯、主なアップデート項目、そして簡単な告知なんかを記載します。
ご興味があれば読んでみてください。

告知

まず最初に告知です。
サイファ10周年ということで、TCGフェスなんかも控えていますし、コミュニティが衰えるどころかまだまだ活発なのを実感しています。
Youtubeに動画を投稿したり、ブログを書き続けていたり、そういう方もまだまだたくさんいらっしゃることを認知しています。
そのため、まだまだサイファを盛り上げるために、サイファシストからもそういったコミュニティへの導線を強化できればと考えています。いわゆるリンク集みたいなやつです。
ご希望の方がいれば、是非下記情報を@miktto@ragnellike_までお寄せください。

  • お名前(HNでかまいません)
  • WebサイトやYoutubeチャンネル等のURL
  • あればバナー画像、なければリンクに表示してほしいテキスト
  • 掲載してほしいコメント

改修の動機や経緯

(興味なければ読み飛ばしていいです)
サイファシスト改修にあたって、一番の動機はメンテナンスコストの増大が挙げられます。
サイファシストは当初、前身となる「FEサイファデッキレシピ検索ツール」という無味乾燥な名称で2020年2月にリリースされました。
Twitterや各ブログ等で投稿されているようなサイファのデッキレシピを1か所に集約し、検索性を高められれば、よりデッキ構築のアイデアや知見をプレイヤー間で共有できるのではという思想で、主に「検索」に重点を置いて開発されたという経緯があります。
詳細はこちら↓
ragnellike.hateblo.jp

その後、サイファのデッキレシピを作るうえで欠かせなかった外部サイトの閉鎖や、公式サイト閉鎖によってカードリスト検索ができなくなるという問題に対処するため、これらの機能を代替する形でサイファシストに載せ続けてきました。
ただ、これらは当初から実装を想定していた機能ではないため、初期設計が甘かったのもあってかなり無理して開発をしていたという経緯があります。
必要に迫られて作ったというのもあって結構短い期間でサクッと作ってしまったんで、あまり設計についてちゃんと考えなかったせいで、後になって自分で書いたソースコードなのに読解が面倒になってしまったんですね。そして徐々に機能を追加していくのが億劫になっていきました。

あと単純に、スキルアップを目的としているのもあります。
(ここは専門用語たっぷりなのでもっと読み飛ばしていいです)
筆者はプログラマーなので、それなりに技術に対しての欲求というものがあるんです。
サイファシストはWebフレームワーク等なにも使用していないネイティブPHPでの実装なんですが、これだといわゆるMVCモデルを実現できてないというのも気になってましたし、SNS連携やメール認証といった機能もライブラリ等は流石に利用するにしても自分で開発しなきゃいけないというのも面倒くさかったです。
そういった開発上のコストを低減しつつ、フレームワークを利用した経験があるというのを実績として積みたかった、というのもあります。
本職はゲームプログラマーなんでWebまわりはそこまで業務でも触らないんですが、まったく使わないわけでもないのでそういう時に手を上げやすくするというのはスキルの幅を持たせるという意味で非常に大切です。
今はChatGPTやGemini、Github Copilotといった開発を支援してくれるAIもあるので、そういったものも最大限活用しつつモダンな開発に触れることで、プログラマーとしての地力を高められれば幸せだなと考えました。

まあそんな感じの理由で漠然と作り直したいな~とはずっと思ってたんですが、昨年はおかげさまでそれなりの額の応援をいただいたのもあってやる気が出たので着手することにしました。
重ね重ね、その節は本当にありがとうございました。
改修自体は2024年11月ごろより開始してるのですが、途中ちょくちょくやりたいゲームが挟まったりしたのでその間は全く作業してませんし、実質3か月くらいでつくりました。
これリリースしたらゲームたくさんやりたいです!おすすめのゲーム教えてください!!!

アップデート項目

サイファシストと比較して、追加、改修、削除した項目などいくつかありますので、これらをご紹介させていただきます。
※随時追記予定です。

ページ全体

  • ヘッダーやフッター、ウインドウなど、全体的に青を基調としたデザインに統一しました

トップページ

  • タイトルロゴを設定しました(ロゴデザインは素人なのでもっとかっこよくしてくれる方がいればぜひお願いしたいです)
  • メインとなる機能を画面上部にアイコン表示しました
  • トピックスとして新たに「最近検索されているカード」を追加しました
  • 「最近検索されている主人公」「珍しい主人公」について、主人公名のテキストのみ表示から、各キャラクターカードの切り抜き表示に変更しました

カード検索

  • カード検索条件の表示を変更しました
    • 検索条件表示をクリックすると条件をクリアすることが出来ます

デッキ検索・分析

  • 検索フォームの色指定を各シンボルアイコン表示にしました
  • デッキ検索条件の表示を変更しました
    • 検索条件表示をクリックすると条件をクリアすることが出来ます
  • 検索結果のデッキ一覧表示をサイファのカード風のデザインにしました
  • 引用リンクのURLが丸見えだったのをボタンで隠蔽するようにしました
  • 検索にかかる処理の最適化を実施し、動作が速くなっています
    • 特にデッキの採用色検索を実行すると体感できると思います
  • ログインしていれば、検索されたデッキをコピーしてデッキを作成できるようにしています

デッキ作成

  • 従来の仕様である、ログインしないとデッキを作成できない仕様に戻しました
    • これは残すか検討したのですが、「同じ内容のデッキが連投されるのを防ぐ」という仕様と相性が悪かったのでオミットしています
    • 強い要望があれば再検討しますが、ログインまわりも強化したので以前のような問題は起きにくくなっており、これでもあまり問題ないと思っています
  • デッキ作成画面のレイアウトを大幅に変更しました
    • 1種のカードにつき1枚、そこで枚数や表示順を設定するようにしています
  • 同一ユーザーが全く同じ内容のデッキを複数投稿できないようにしました
    • デッキコピー等でデッキ投稿が乱立され、サーバーストレージ等を圧迫しないようにするための措置です
    • ユーザー情報、主人公名、デッキに採用しているカードの内容(ソート順は考慮しない)が完全同一のデッキは複数投稿できません
    • またこの機能追加により、予め旧サイファシストに投稿されているものでこの条件に引っ掛かるデッキは、新サイファシストでは1つを残して削除されます
  • デッキ作成中の状況を随時キャッシュしているので、投稿せずにページを遷移してしまった際などに途中から復帰できるようにしています
  • デッキ作成後、デッキが公開設定の場合は即座に検索対象にも反映されます
  • デッキ作成後、デッキが非公開設定の場合は即座に検索対象から削除されます

コミュニティ

  • 従来「みんなのデッキ」と表記されていた機能に相当するもので、名称を変更しました
  • デッキ投稿日時の他、デッキ更新日時も表示するようにしています
  • ログインしていれば、投稿されているデッキをコピーしてデッキを作成できるようにしています
  • 投稿者のリンクをクリックすると、以前はX(旧:Twitter)のページに遷移させていましたが、サイファシスト上のユーザープロフィールページに遷移するようにしています
  • ユーザープロフィールページでは、投稿者が公開設定にしているデッキを確認することが出来ます
  • また、連携しているSNSにも遷移できます(現在はX(旧:Twitter)のみです)

ログイン・マイページ

  • Xのみだったログインから、メール認証機能を追加しています
    • サイファシストをご利用の方はアカウントをすでに新サイファシストに移行済みなので、これまでと同じXアカウントでログインしてください
    • ログイン後、マイページからメール認証を追加できるので、ご利用したい場合は設定してみてください(ご利用は任意です)
  • マイページでは、プロフィールテキストと、お気に入りのサイファのカードを3枚まで設定できます
    • これらはプロフィールページでも表示されます

今後対応予定

  • 詳細は告知済ですが、サイファ関連コミュニティへのリンク集みたいなものを新設予定です
  • デッキに設定するタグを削除する機能を作ってなかったので作ります
  • 他のSNSでも連携してログインできるようにするかもしれません