差分

ナビゲーションに移動 検索に移動

リセットマラソン

2,330 バイト除去, 2018年2月7日 (水) 04:52
ページの作成:「'''リセットマラソン'''とは、ゲームにおいて、初期キャラクターなどが乱数で決定する場合に、目標物が出現するまでリセッ...」
ASP.NET 4から搭載されたMinify & Bundleを[[Mac]]上の[[Mono]]とNancyから使ってみる。リリースビルドするとJavaScriptやCSSから無駄が省かれるという機能である。'''リセットマラソン'''とは、ゲームにおいて、初期キャラクターなどが乱数で決定する場合に、目標物が出現するまでリセットしまくることをいう。
[[Linux]]なら[[mod_pagespeed]]で良いじゃんというツッコミは禁止である。あれはコンパイルが難しいというか配布サーバーが不安定すぎて泣ける。リセットマラソンはウィザードリィなどで有名で、高いボーナスポイントが得られるまで延々とキャラクター作成を繰り返し数時間を擁するなどということもあった。
==静的コンテンツを扱えるようにする==なにはともあれNancyで静的コンテンツを使える状態にする。*[[Nancy/静的コンテンツを扱う]] ==NuGetから必要なパッケージを入れる==[[ASP.NET]]関連のほとんどが、いつの間にか[[ASP.NET]]本体から分離されて[[NuGet]]へ移行している。[[Linux]]上の[[Mono]]でも[[ASP.NET]]を使えという思し召しらしい。[[Xamarin Studio]]からも一発で入る。*https://www.nuget.org/packages/Microsoft.AspNet.Web.Optimization/ ==web.configを編集==<pre><configuration> <configSections> <!-- 追加 --> <section name="razor" type="Nancy.ViewEngines.Razor.RazorConfigurationSection, Nancy.ViewEngines.Razor" /> <!-- 追加 --> </configSections>  <!-- 追加 --> <razor disableAutoIncludeModelNamespace="false"> <assemblies> <add assembly="System.Web.Optimization" /> <add assembly="System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> </assemblies> <namespaces> <add namespace="System.Web.Optimization" /> </namespaces> </razor> <!-- 追加 -->  <system.webServer> <!-- 追加 --> <modules runAllManagedModulesForAllRequests="true"> <remove name="BundleModule" /> <add name="BundleModule" type="System.Web.Optimization.BundleModule" /> </modules> <!-- 追加 --> </system.webServer></configuration></pre> ==バンドルを登録する==どこでもいいので登録内容が記述されたメソッドを作る。純正に右に倣えで「App_Start/BundleConfig.cs」にしておくと無難だと思われる。<source lang="csharp">using System;using System.Web.Optimization; namespace Test{ public class BundleConfig { public static void RegisterBundles(BundleCollection bundles) { bundles.Add(new ScriptBundle("~/bundles/jquery").Include( "~/Scripts/jquery-{version}.js")); } }}</source> サーバー起動時に登録する。Global.asax.cs(無ければ作る)のApplication_Startメソッドから上記の登録メソッドを呼び出す。<source lang="csharp">using System;using System.Web.Optimization; namespace Test{ public class Global : System.Web.HttpApplication { protected void Application_Start(Object sender, EventArgs e) { BundleConfig.RegisterBundles(BundleTable.Bundles); } }}</source> ==Scripts.Renderの違い==ASP.NET 4で標準の記述方法が使えない。 @Scripts.Render("~/bundles/jquery")以下を使うことで代用する。 @Html.Raw(Scripts.Render("~/bundles/jquery").ToString())ToStringを忘れると[[Razor]]が落ちる。凄い嵌った。 {{stub}}最近のiOSやAndroid向けのスマホゲームでのリセットは「アプリを消して再インストール」が基本となるため、リセマラ大前提の作りにするとアプリストアにおけるダウンロード数が伸びる(Androidではデータ全消しでもいける)。ただし、あまりの面倒臭さに利用者がゲーム本編を始めるまえに離れる原因にもなる両刃の剣である。
匿名利用者

案内メニュー