From c5e2a6c07ced20fa7d4e535dfad0ecceb73ea0a7 Mon Sep 17 00:00:00 2001 From: Mayuki Sawatari Date: Mon, 20 Nov 2023 16:13:33 +0900 Subject: [PATCH 1/4] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 6d36013..bcf5406 100644 --- a/README.md +++ b/README.md @@ -199,7 +199,7 @@ await looper.RegisterActionAsync((in LogicLooperActionContext ctx) => { // Something to do (low priority) ... return true; -}, LoopActionOptions.Default with { TargetFrameRateOverride = 10 }); // The action will be called at 10fps. +}, LooperActionOptions.Default with { TargetFrameRateOverride = 10 }); // The action will be called at 10fps. ``` The granularity of action execution changes based on the execution frequency of the main loop itself. This means that the accuracy may be inferior to the target frame rate of the Looper. @@ -222,4 +222,4 @@ await looper.RegisterActionAsync(static async (ctx, state) => ``` > [!WARNING] -> If an action completes immediately (`ValueTask.IsCompleted = true`), there's no performance difference from non-async version. But it is very slow if there's a need to await. This asynchronous support provides as an emergency hatch when it becomes necessary to communicate with the outside at a low frequency. We do not recommended to perform asynchronous processing at a high frequency. \ No newline at end of file +> If an action completes immediately (`ValueTask.IsCompleted = true`), there's no performance difference from non-async version. But it is very slow if there's a need to await. This asynchronous support provides as an emergency hatch when it becomes necessary to communicate with the outside at a low frequency. We do not recommended to perform asynchronous processing at a high frequency. From 35bd0a095e34b4b1088db05e89f6365d9624f78d Mon Sep 17 00:00:00 2001 From: Mayuki Sawatari Date: Mon, 20 Nov 2023 16:14:08 +0900 Subject: [PATCH 2/4] Update README.ja.md --- README.ja.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.ja.md b/README.ja.md index a4775f8..b134b7e 100644 --- a/README.ja.md +++ b/README.ja.md @@ -196,7 +196,7 @@ await looper.RegisterActionAsync((in LogicLooperActionContext ctx) => { // Something to do (低頻度) ... return true; -}, LoopActionOptions.Default with { TargetFrameRateOverride = 10 }); // 10 fps で呼び出される +}, LooperActionOptions.Default with { TargetFrameRateOverride = 10 }); // 10 fps で呼び出される ``` 注意点として大元のループ自体の実行頻度によってアクションの実行粒度が変わります。これは Looper のターゲットフレームレートよりも正確性が劣ることがあるということを意味します。 @@ -218,4 +218,4 @@ await looper.RegisterActionAsync(static async (ctx, state) => ``` > [!WARNING] -> もしアクションが同期的に完了する場合 (つまり非同期メソッドであっても `ValueTask.IsCompleted = true` となる状況)、async ではないバージョンとパフォーマンスの差はありません。しかし await して非同期処理に対して継続実行する必要がある場合にはとても低速になります。この非同期サポートは低頻度の外部との通信を目的とした緊急ハッチ的な役割を提供します。高頻度での非同期処理を実行することは強く非推奨です。 \ No newline at end of file +> もしアクションが同期的に完了する場合 (つまり非同期メソッドであっても `ValueTask.IsCompleted = true` となる状況)、async ではないバージョンとパフォーマンスの差はありません。しかし await して非同期処理に対して継続実行する必要がある場合にはとても低速になります。この非同期サポートは低頻度の外部との通信を目的とした緊急ハッチ的な役割を提供します。高頻度での非同期処理を実行することは強く非推奨です。 From f7d25d6a247891beb72e927b7eac8156c7705ee5 Mon Sep 17 00:00:00 2001 From: Mayuki Sawatari Date: Mon, 20 Nov 2023 16:14:21 +0900 Subject: [PATCH 3/4] Update README.ja.md --- README.ja.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.ja.md b/README.ja.md index b134b7e..7e04b65 100644 --- a/README.ja.md +++ b/README.ja.md @@ -1,5 +1,5 @@ # LogicLooper -.NET Core でのサーバーアプリケーションでループを使用したプログラミングモデルを実装するためのライブラリです。 +.NET でのサーバーアプリケーションでループを使用したプログラミングモデルを実装するためのライブラリです。 主にサーバーサイドにロジックがあるゲームサーバーのようなユースケースにフォーカスしています。 例えば次のようなゲームループがある場合、これらを集約して素朴な `Task` による駆動よりも効率の良い形で動かす方法を提供します。 From 5a81d1c7be3c7dd8084f75435b602d48bfbc744b Mon Sep 17 00:00:00 2001 From: Mayuki Sawatari Date: Mon, 20 Nov 2023 16:14:32 +0900 Subject: [PATCH 4/4] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index bcf5406..06aa082 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ [日本語](README.ja.md) -A library is for building server application using loop-action programming model on .NET Core. This library focuses on building game servers with server-side logic. +A library is for building server application using loop-action programming model on .NET. This library focuses on building game servers with server-side logic. For example, if you have the following game loops, the library will provide a way to aggregate and process in a more efficient way than driving with a simple `Task`.