Libraries

Do.fs

on 2022-10-11

library fsharp

InlineIfLambda属性を利用して最適化された、F#のコンピューテーション式のビルダーの実装です。
MITライセンスで単一ファイルで実装しています。 以下の型のビルダーを提供しています。

  • Option<'t>
  • ValueOption<'t>
  • Result<'t, 'e>
  • Lazy<'t>

wraikny/Do.fs - GitHub

More

SquirrelayServer

on 2021-10-12

library server csharp

SquirrelayServer は、リアルタイム通信のためのリレーサーバーです。 ルーム機能もあります。設定ファイルを記述するだけで色々な種類のゲームで利用できることを目指しています。 名前は動物のリス(Squirrel)と掛けています。

More

AwaitableCoroutine

on 2021-05-08

library csharp awaitable coroutine

AwaitableCoroutine は、async/await 構文を使用可能にしたコルーチンを提供する C# 向けライブラリです。 内部的にはTask-Like、Awaitable パターン、AsyncMethodBuilder が使われています。

More

Altseed2.TypeBasedCollision

on 2021-05-05

library altseed2 csharp

Altsees2.TypeBasedCollision は、型をキーとして衝突対象の管理を平易かつ高速に行うための Altseed2 拡張ライブラリです。

More

Altseed2 (OSS, 複数人開発)

on 2021-04-30

library altseed2 cpp csharp

Altseed2 は画面描画・音・入力・衝突判定などの機能をまとめたゲームエンジンです。

メインコミッターの一人として、主に以下の機能の開発に関わりました。

  • フォント・文字描画 (C++, medfgen)
  • ジョイスティック (C++, glfw)
  • ポストエフェクト (C++, C#, HLSL)
  • ロガー (C++)
  • .NETツールの作成 (C#)
  • 全体的なバグ修正・リファクタリング (C++, C#)
  • C++ to Rust FFIコード自動生成 (Python, Rust)
  • 一部のCI設定

EffFs

on 2021-04-09

library fsharp effect-system

EffFsは、SRTP を用いた F# の Effect System ライブラリです。

SideEffect や Dependency を静的に解決することができます。

More

Altseed2.BoxUI

on 2020-12-25

library altseed2 csharp

Altseed2.BoxUI は、ゲームエンジン Altseed2 を使って宣言的UIを軽量に作成することを支援するライブラリです。 Element による再帰的な矩形領域の計算と、オブジェクトプーリングによるキャッシュがポイントです。

解説記事を書きました。

Altseed2で軽量な宣言的UIを支援するライブラリAltseed2.BoxUIの紹介

Simple Rankings Server

on 2020-04-25

library server ranking

Simple Rankings Serverは、複数のゲームのオンラインランキングを単一のアプリケーションで手軽に管理することを目的としたREST-APIサーバーです。

主にF# + Suave + Dapper + SQLiteという技術構成です。

Affogato

on 2019-10-14

library fsharp

Affogato は F# でのゲームプログラミングを目的とした、SRTP によるベクトル型と、いくつかのアルゴリズムのためのライブラリです。

Example

open Affogato
let v1 = Vector2.init 1 0 // int Vector2
let v2 = Vector2.init 2.1f 3.4f // float32 Vector2
let v3 = v1 |> Vector.map float32 // float32 Vector2
let v4 = v2 / v3 .* 2.0f * v2.yy + v3.xx // float32 Vector2
let r1 = Rectangle.init v3 v4 // float32 Vector2 Rectangle
let k = Vector.dot v2 v3 // float32