ゲーム「リトルセイバー」の専用ページを作成しました

近日公開予定のゲーム「リトルセイバー」のページを作成しました。とはいうもののまだゲームを公開していないため、側と一部のページを作成したぐらいです。明日の仙台コミケ249で体験版を配布するのでそれに合わせて最低限の情報を載せたぐらいになっています。

残りの情報の掲載についてはおいおいやっていく予定ですが、その前にリトルセイバー正式版の完成がまだなので先にそっちの方をやります。1月公開予定でしたが、体験版の作成や仙台コミケの準備など予想以上に時間と取られてしまったのでおそらく公開は2月になるのではないかと思ってます。楽しみにされていた方申し訳ありません。日曜大工でなかなか作業が進みませんがもう少々お待ちください。

明日、1/14(月) の仙台コミケでリトルセイバーの体験版を配布いたしますので、プレイしてみたい方はぜひお手に取っていただければと思います。先着順になっておりますので、なくなり次第配布終了となります。あと、1人CD1枚となっていますので、代理で複数受け取りなどはできません。ご注意ください。

Share this...

ホームページサーバーを移転しました

以前お知らせしたとおり、ホームページを運用しているサーバーを移転しました。ドメイン(sorceryforce.net)はそのまま流用していますので、ページへのアクセスについては特に変わらず、今まで通り参照することが可能です。

ただ、ブログについてはアドレスが「http://sorceryforce.net/wordpress/」から「http://blog.sorceryforce.net/」に変更となっています。これについても前の投稿で書いた通りなんですが、アプリケーションサイトの中に WordPress のサイトを作っていたので、これを別サイトに独立させて作りました。アドレスが変わってしまう問題がありますが、リダイレクトさせるようにしたので問題ないはずです。

一応移転は完了したのですが、全ページ見まわしたわけではないので、もしかしたら不具合があるかもしれません。また、ブログについては一部のページで画像が表示されない可能性があるかもしれません。何かあればブログのコメントか Twitter などでお知らせください。

ここから移転についての余談になるのですが、ホームページを移転する際は、先に移転先に同じサイトを構築しておいて、動作確認が終わったらドメインの参照先 IPアドレスを変えるという方法を考えてました。実際にそう行ったのですが、想定外だったのは参照先の IPアドレスを変えるために DNS を変更したのですが、あれって即座に反映されないんですね。ドメインを新規で登録すると割と早くアクセスできていたので、同じ感覚で切り替えられると思っていました。

で、実際にやってみたら最長で2日間ぐらいかかって、最初は何が原因で繋がらないのか全く分かりませんでした (500 エラーとか出る)。まあいろいろいじったりしていたら PING が送る先の IP アドレスがまだ変わってないことが分かったので、とりあえず待つことにしました。

意外と興味深かったのが、アクセスする PC によって同じタイミングでも接続しようとする先が違うことでした。ある PC はすでにアクセスできるようになっていたり、とある PC はまだだったり、さらにはルートドメインは正しい IPアドレスを指すのに、サブドメインは前の IPアドレスを指していたりと、どういう仕組みになってるんだろうなと思いました。

とりあえず移転は完了したので、その間ブログに書けなかった内容を後で書いていきたいと思います。

Share this...

ホームページの移転について

現在 sorceryforce.net のサイトはレンタルサーバー「ExpressWeb」で運用しているのですが、今年でサービスを終了するようなので、移転を考えなければいけなくなりました。契約期間はまだあるので今すぐということではないのですが、近いうちに別サーバーにサイトを移す予定です。

このサイトは ASP.NET で作っているので、移転先も Windows Server にする予定です。特別 Web サービスを公開しているわけではないので、ドメインの切り替えとかうまくいけばアドレス変わることなくダウンタイムは特にないかもしれません。

ただ1つ問題があって、このブログだけ WordPress で動いているのでもしかしたら移行は単純にいかないかもしれません。割と変な構成で作ってしまっていて、ASP.NET アプリケーションの中に WordPress が存在するという意味不明な構成になっているため、移行先で正しく動かせるか自信がありません。

なのでもしかしたらブログのほうだけは別のサイトで運用する、という形になることも考えられます。過去記事がうまく移行できてページIDも同じであるならばリダイレクトでうまく制御できると思いますが、移行がうまくいかなければ記事が消滅ということになるかもしれません…。

まあ、まだちょっと先の話なので、日が近づいて来たらまた書くつもりです。

同人誌、同人ゲーム、同人ソフトのダウンロードショップ - DLsite
Share this...

ホームページ「sorceryforce.net」の実行環境を変更しました

内部フレームワークを変えただけなので見た目とかは特に何も変わっていません。

開発環境を Windows 10 や Visual Studio 2015 に移行したりしていたのですが、ついでなのでホームページを動かしている ASP.NET の中身もいろいろバージョンを上げてみました。もし挙動などがおかしければコメントいただけると助かります。(WordPress 側は特に変えてないのでブログのほうは大丈夫だと思います)

一応変えてみたものは次の通りです。

  • ASP.NET 4 → ASP.NET 4.5.2
  • .NET Framework 4 → .NET Framework 4.5.2 (サーバーがいつの間にか 4.5 対応していたので上げました)
  • Entity Framework 5 → Entity Framework 6.1.2 (4→5 みたいに API 変わってなくてよかったです)
  • jQuery 1.8.2 → jQuery 1.10.2

ただ、Web サーバーのほうが権限の問題で Roslyn を使おうとするとアクセス権エラーが発生してホームページがまったく動かなかったので、web.config から「system.codedom」を抹消して使用しないようにしました。というか自作サーバーでテストしていたときは普通に動いていたのに、いざ本番ホームページサーバーにあげたら不明なエラーが発生して動かなかったので結構焦りました。一時期ホームページが開けなくなっていたのはこのためです。

ちなみに、作り直す前のプロジェクトを VS2013 から VS2015 に移行した時に図のような警告が出ていたので、SQL Server 2012 Express LocalDB を入れようかと思ったのですが、新規に作り直した時に認証系などをすべて外したので警告は出なくなりました。

2015-09-09 20_17_36-Microsoft Visual Studio

Share this...

ホームページ(sorceryforce.net)の障害の対応終わりました

2014/08/05 23:50 ころにホームページの方を復旧いたしました。

原因については前の投稿の通りデータベース破損によるものでしたので、サーバー管理者に削除してもらって作り直しました。

ほんとは最近のバックアップがあればそれをリストアして完了の予定だったのですが、2月ごろにバックアップを取って以来、まったく取っていなかったという失態を犯してしまっていたため、どうしようかと少し悩んでいました。orz

とりあえずローカルにはホームページとほぼ同じテーブルレイアウトを保持していましたので、いったん2月のバックアップDBをリストアし、ローカルからサーバーへのテーブルレイアウト同期 SQL を発行しエラーが発生しないように修正、更新履歴等必要な情報を一括アップロードしてとりあえず問題なく動いている感じがします。

もしなにかおかしな挙動をしているようであればブログにでもコメントください。

余談:Outlook の予定表にバックアップスケジュール入れていたんですが、2月ごろからまったく通知されなくなったんですよね・・・。

Share this...

ホームページ(sorceryforce.net)の障害について

2014/08/05の朝あたりからホームページ(sorceryforce.net)を閲覧するとエラーページが表示される状態になっております。

原因としてはデータベースに障害が発生しており、データベースの入れ替え作業が必要なのですが、おそらく作業は深夜あたりになりますのでそれまでお待ちください。

※ホームページとブログでは別々のデータベースを使っているのでブログ側は問題なく動いてます。

Share this...

ホームページの方をいろいろ更新

去年更新の方が停滞していたので、今年は少し更新するようにしました。ブログの方にもちょくちょく書くつもりだったんですがタイミングがなかったので今回まとめて書いておきます。ちなみに更新しているのは「sorceryforce.net」の方で「sorceryforce.com」ではありません。今後は「sorceryforce.net」の方を中心に更新していくつもりです。

各 Tips に概要を追加

各コンテンツのページの最初に概要が入るように、一応ローカルでも概要を登録していたのですが、サーバープログラムの方でまだ出力対応してなかった(というかローカルで作った概要すら取り込んでいない状態だった)ので、今回プログラム改修する際に概要を表示できるように対応しました。とはいってもコンテンツ内容量よって概要を入れるか入れないか切り分けていたりするので全ページに概要が表示されているというわけでもないのですが…。

各 Tips ページにツイートボタンを追加

Twitter のツイートボタンをページの後ろあたりに入れてみました。デフォルトではツイートするときに「ページタイトル – URL」となるのですが、タイトルによっては自分で文章いれてツイートしたのかわかりにくくなりそうだったので、ツイート文章の最初に「Read : xxxx」とつくようになってます。

今回入れたページは Tips 系のページだけになってます。他のページに入れるかどうかは検討中です。

各 Tips 公開

Project Linker を使用して複数のプロジェクトでソースコードを共有する

Visual Studio で複数のプロジェクトでソースコードの共有を自動化させる拡張プラグイン「Project Linker」を使用した説明を載せました。

Project Linker 2012 を Visual Studio 2013 で使用する

Project Linker 2012 は Visual Studio 2012 にしか対応していないため、これを Visual Studio 2013 で動作するための手順を載せています。

リモートデスクトップによる接続を行うための設定

元々の記事は sorceryforce.com の方に載せていたのですが、Windows 7, Windows Server 2008 R2 までしか書いてなかったので、今回 Windows 8, Windows 8.1, Windows Server 2012, Windows Server 2012 R2 を追加しました。

Windows 8, Windows Server 2012 で IME の入力状態をアプリケーションごとに持たせるようにする

元々ブログに書いていた記事なのですが、ブログのコンテンツはどんどん埋もれていってしまうので新たに書き起こしました。Windows 8.1, Windows Server 2012 R2 の確認も追加しました。

Share this...

ホームページを多言語対応しました

ホームページ「ソーサリーフォース.net」を多言語化対応してみました。対応している言語は列挙するのがちょっと大変なので書きませんが大体40か国語ぐらいに対応しています。主要な言語については大体サポートしているつもりです。

1年前に英語には対応していましたが、なんとなくやってみた程度だったので、半分ぐらいは翻訳されていない状態でした。最近プログラムの方をさわる機会ができたので今回一気に多言語対応しました。ただ、ページによってはそもそも多言語化する必要のないところもありますので、そこはそのままにしてあります。

多言語化の仕組みなんですが、sorceryforce.net ではサーバープログラムに ASP.NET MVC を採用しています。ASP.NET MVC にはローカライズの仕組みがあり普通に多言語化する分にはこれを使って作ります(作ると思います)。

ただ、調べてみると言語が増えるたびにファイルが増えて行くというなんとも嫌らしい構成になるらしく、数言語ぐらいならまだしも全世界対応ってなると相当な数になるみたいです。ビューを言語ごとに作成するとなると、レイアウトとか変更するたびに全ファイル修正しなければならなくなり、ビューの修正が億劫になってしまいます。私も Windows From でちょろっと多言語化やってみたのですが、同じように Windows Form のデザインを言語ごとに作る必要があり、とてもめんどくさそうなイメージがありました。まあ、ASP.NET MVC ならビューの継承、Windows Form ならフォームの継承を使ってある程度はごまかせるのですが、テキストが右⇒左方向だったり、翻訳語のテキストが長くなったり、文字の大きさが変わったりするので結局は微調整に時間を取られそうな感じがしますね。Windows Form は問題が顕著になりますが、Web ならレイアウトはある程度ブラウザが補間してくれるのでなんとかなりそうな気がしますが。

で、そんなこんな考慮してみて、最終的には多言語対応はすべて自前で実装しました。Visual Studio のリソース入力もめんどそうだったので、テキストはすべて Excel で管理し、日本語さえ入力すれば後は半自動的に他の言語に翻訳してくれるようにしました。半自動っていうのは、テキストを入力した後に頻繁に翻訳されても困るので、入力した後にバッチ叩けばプログラムにまで自動反映されるよー、っていう感じにしてあります。

実際にビューに出力する方法としては、テキストはすべて ID 管理されているため、.cshtml とかで @Model.GetMessage(なんちゃらID) のようにしておけば、後はブラウザの言語を判定して対応する言語で表示されるようになっています。ID は列挙体なので、ID 名でどんなテキストかわかんなくてもマウスカーソルを合わせれば summary で元の日本語が表示されるのでとても便利です。

あと、この仕組みはプラットフォームに依存しないようにしてあるので、ASP.NET でなくても、.NET Framework であれば他のアプリケーションにも適用できるようになっています。クライアントツールとかゲームとか Windows ストアアプリとか。まあ、まだホームページにしか使ってないので、機会があれば他のソフトも多言語対応してみたいですね。

ちょっといろいろ長くなってしまい、また内部的な話になっていしましたが、要はホームページを多言語化対応しました、という話でした。

Share this...

レスポンシブデザインにしてみた

最近話題になっているレスポンシブデザインをホームページの方に適用してみました。とはいっても sorceryforce.com の方ではなくて sorceryforce.net の方です。

レスポンシブデザインと大々的に描いてますが、適用しているのはブラウザの幅に合わせてレイアウトを変更している部分です。スマートフォンとかのようなブラウザサイズが小さい画面でもコンテンツをなるべく表示できるようにしています。まあ、もともとPC向けのサイトなのでページによってはそれほど快適になるわけではないんですけどね。ここらへんは CSS の調整次第かと思います。

sorceryforce.net の方はサービス系のアプリとかを公開するために作ったんですが、しばらく放置気味だったのでこれから少しずつ構築していく予定です。外部コンポーネントとか使わずに自分で構築しているので結構時間がかかったりとかテストが面倒だったりしていますが、そのかわりすべて自分で制御できるので自由度は高いですね。

Share this...