I'm Gil and I develop free software with a focus on usability.
Godot addons
- Lua GDExtension: A native extension for using the Lua language in Godot 4.1.2+
- Lua PluginScript: a PluginScript for using Lua as a scripting language in Godot 3.X based on LuaJIT
- Dockable Container: dockable/tiling UI panels Container addon
- Dispatch Queue: threaded and synchronous Dispatch Queues
- CFFI GDExtension: native extension for calling C functions via libffi in Godot 4.1+
- Objective-C GDExtension: experimental native extension for calling Object-C methods at runtime in Godot 4.1+
- InputKeyEvent Grabber: editor plugin with a button that grabs key events and populates an
InputEventKey
instance, great for creatingShortCut
resources - FixedCellGridContainer: simple grid Container with fixed size cells
- Cubic Bézier Controls: bubic Bézier curve Resource and Controls for visualizing and editing them
Unity packages
- Easy Project Settings: easily create custom Project Settings by adding the
[ProjectSettings]
attribute to yourScriptableObject
subclass - Flex UI: Flexbox layout support for Unity UI using the Yoga layout engine
- Camera Viewport Rect: automatically setup
Camera
viewports fromRectTransform
s - Gesture Recognizers: touch/pointer gesture recognizer scripts based on
EventSystem
handlers orInput
(Tap/Multitap, Long Press, Pan, Pinch, Twist, Swipe, Edge Pan) - Update Manager: simple to use Update Manager pattern + Jobified Update for MonoBehaviours and pure C# classes alike
- SQLite-net: SQLite-net for Unity, supports Windows, Linux, macOS, iOS, tvOS, visionOS, Android and WebGL
- SQLite Asset: read-only SQLite database assets for Unity with ScriptedImporters for ".sqlite", ".sqlite2" and ".sqlite3" files
- SQLite Asset - CSV: easily import ".csv" files as read-only SQLite database assets in Unity
- Key-Value Store for Unity: Key-Value Store save system interface and implementations for Unity
- Texture Apply Async: alternative to Texture2D.Apply() that doesn't require synchronizing with the render thread, avoiding stalls in the main thread
- Conditional Objects: modify
GameObject
s andComponent
s at Prefab/Scene import time, based on build configurations - Prefab Pool: Prefab instance pool that is configurable in the Inspector, supports any engine Object type and is available as a serializable C# class, MonoBehaviour and ScriptableObject
- Back Button Stack: easily manage a stack of objects that respond to the ESC button / Android Back button
- Safe Area Layout: uGUI layout group that makes children respect the Safe Area
- Gradle Wrapper: automatically generate Gradle Wrapper (gradlew) when exporting Android projects
- Serializable Collections: serializable versions of
Dictionary
,HashSet
andKeyValuePair
for Unity 2020.1+ - Gradient Rect: Unity UI component that generates meshes using
Gradient
s - Rounded Corners: Unity UI component that generates meshes with rounded corners
- Lottie Player: player for Lottie animations, powered by rlottie, multithread/Job System-friendly
- F# for Unity: F# scripting in Unity with automatic compilation
- Managed Jobs: use classes and other managed types with Unity's Job System
- Main Thread Task:
Task
/UniTask
-based Main Thread dispatcher classes, noGameObjects
involved - TaskFactoryObject:
TaskFactory
Unity objects plus a collection ofTaskScheduler
s with optional limited concurrency - Non-alloc Enumeration: non-alloc enumerables for Unity structures and C# IList/IReadOnlyList
- Native Collections Stream: Stream, TextReader and TextWriter implementations backed by Unity Native Collections
- Scene Reference: autogenerated ScriptableObjects that are stable references to the scenes configured in Build Settings
- Asset List:
ScriptableObject
that automatically aggregates assets usingAssetDatabase.FindAssets
- PlayerLoop Helper: single file helper class for registering/unregistering systems in Unity's PlayerLoop
Lua modules
- molde: zero dependency, single file template engine for Lua 5.1+ with builtin sandbox support
- stringstream: object that loads chunks of strings on demand compatible with a subset of the Lua string API suitable for parsing
- wildcard_pattern: use shell-like wildcards as Lua string patterns with support for importing gitignore-like file content
- argmatcher: simple command line argument matcher for Lua
- nested: generic nested data structure file format, where data is formed by nested lists with both sequential data and key-value paired data
C/C++ libraries
- flyweight.hpp: single header implementation of the Flyweight design pattern for C++11
- SQLiteVfs.hpp: single header with classes for easily implementing SQLite VFS shims in C++
- cdedent: pure C implementation of Python's textwrap.dedent, with C++ wrappers.
- pega-texto: Parsing Expression Grammars (PEG) runtime engine for C
D libraries
- bettercmath: -betterC compatible 3D math library for D
- betterclist: -betterC compatible dynamic list backed by array for D
- flyweightbyid: -betterC compatible Flyweight template based on explicit named ids for D
- soa: -betterC compatible Struct Of Arrays template for D
I'm also a musician and have some songs recorded 🎵
Feel free to reach me about anything at all! ^^