Skip to content
View jolexxa's full-sized avatar
💖
making magic
💖
making magic

Organizations

@VGVentures@chickensoft-games

Block or report jolexxa

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
jolexxa/README.md

🤠 about me

I'm an engineering manager at Very Good Ventures, the creator of Chickensoft, and a board member of the IGDA Twin Cities. I care about open source, enjoyable architecture, and the idea that making games and apps should actually be fun.

Joanna May

BlueskyMastodonLinkedInChickensoft DiscordTwitch


I love everything people, game dev, compilers, native and mobile apps, NLP, music production, etc.

🐤 Chickensoft

I created Chickensoft in 2021 as a home for my Godot + C# experiments. Over time, it has evolved into a grassroots community for Godot + C# developers and a suite of open source packages. Today, Chickensoft is a volunteer organization with a team dedicated to furthering Godot + C# development.

Chickensoft kicked into high gear when I wrote It's time to make that indie C# game in Godot — it had a little moment on Hacker News which helped kick off the community as we know it today.

🚩 Projects

ProjectWhat it does
🕹️GameDemoFully tested 3D game built with Godot + C#.
🤖GodotEnvManage Godot versions & addons from the CLI on every platform.
🧱GodotGameC# game template with CI/CD, testing, and overage.
💡LogicBlocksHierarchical, serializable state machines that generate diagrams as you code.
💉AutoInjectReflection-free dependency injection for Godot node scripts.
🚀setup-godotGitHub Action to run Godot headlessly in CI/CD.
🧪GoDotTestTest executor for Godot and C# — debug from VSCode, collect coverage, run from CLI.
🔮IntrospectionBuild-time mixins & metadata generation for AOT-safe reflection.
📦SerializationSerializable models with AOT support and System.Text.Json compatibility.

...and many more — save file systems, native platform extensions, logging, collections utilities.

📐 Enjoyable Game Architecture

I ported architectural patterns from React/Flutter/Vue to Godot's scene tree and wrote about it extensively. The result is what I affectionately refer to as Enjoyable Game Architecture — a modular, testable, and consistent approach to building games. I created the Chickensoft Game Demo to accompany the blog.


🎤 Appearances

WhenWhereTalk
🎙️ Dec 2024Nice Games PodcastSerialization — Saving, loading, and why it's harder than you think
☁️ Apr 2024Google Cloud Next 2024Build AI-Powered Games with Gemini and Flutter
🎮 Mar 2024Minneapolis Game Dev MeetupMaking It Fun to Make Games With Godot & C# (The Chickensoft Story)

✍️ Writing

WhenWhereArticle
Jun 2024ChickensoftSerialization for C# Games
Dec 2023ChickensoftEnjoyable Game Architecture
Nov 2021VGV BlogHow to Use Bloc with Streams and Concurrency
Jun 2022MediumIt's Time to Make That Indie C# Game in Godot

C#DartTypeScriptGodotFlutter.NETGitHub Actions


Pinned Loading

  1. chickensoft-games/GodotEnvchickensoft-games/GodotEnvPublic

    Manage Godot versions and addons from the command line on Windows, macOS, and Linux.

    C# 575 31

  2. chickensoft-games/GameDemochickensoft-games/GameDemoPublic

    The Chickensoft Game Demo — a fully tested, third-person 3D game built with Godot and C#. Now with saving and loading!

    C# 609 58

  3. chickensoft-games/LogicBlockschickensoft-games/LogicBlocksPublic

    Human-friendly, hierarchical and serializable state machines for games and apps in C#.

    C# 308 14

  4. chickensoft-games/GodotGamechickensoft-games/GodotGamePublic

    C# game template for Godot 4 with debug launch configurations, testing (locally and on CI/CD), code coverage, dependency update checks, and spell check working out-of-the-box!

    C# 410 29