Archive of blog posts (in reverse chronological order)
2024-11-04
Breaks Happen2024-10-07
Lessons From A (Good) Mystery2024-09-02
Programming Pattern: Event Sourcing2024-08-05
Abstraction And Iteration2024-07-01
Planning To Write2024-06-03
Three Kinds of Stuck2024-05-06
Status Update: May 20242024-04-01
Beyond Weekly Plans2024-03-04
Good Code Versus Working Code2024-02-05
Rendering Curves In Godot2024-01-08
Planning Retrospective: Weekly Plans Are Not Enough2024-01-01
Happy New Year 20242023-12-04
A Language for Stage Directions2023-11-06
Three Advantages to Using Godot2023-10-02
5 Years, 5 Phases2023-09-04
Old Prototype's Source Available (Under New Name)2023-08-07
"Table Flip" Ported to Html52023-07-03
Multiple Points of View In Storytelling2023-06-05
Strategies for Cutting Work2023-05-01
Successes Of The Past Four Months2023-04-03
Parallel Development Using Git Clone2023-03-01
Site Status Update: Intermittent Outages2023-02-06
Better Feedback2023-01-02
Reflecting On Annual Planning2022-11-28
4 Years - Part 22022-11-14
4 Years - Part 12022-10-31
Rewriting the Save System2022-10-17
Analyzing FFRK: From Self Expression to Open Puzzle2022-10-03
Open Puzzle As Elemental Genre2022-09-19
Introduction To Burst2022-09-05
Happy Labor Day (2022)2022-08-22
Elemental Genres: Why We Play2022-08-08
Simulating With Integers2022-07-25
Deep Diving Versus Pivoting Away2022-07-11
Programming Concept: Events2022-06-27
Importance of Serialization2022-06-13
Efficiency Versus Maintainability2022-05-30
Code Messy, Commit Clean2022-05-16
Programming Concept: Abstraction2022-05-02
Autonomous Agent Movement Part 4: Triumph2022-04-18
Victory Conditions: Fixed Versus Flexible2022-04-04
Building Better Random Encounters2022-03-21
Autonomous Agent Movement Part 3: Challenges2022-03-07
Autonomous Agent Movement Part 2: Purpose2022-02-21
Tune In Next Time2022-02-07
Autonomous Agent Movement Part 1: Introduction2022-01-24
Planning 20222022-01-10
Postmortem: 2021 Holiday Outage2021-12-27
Technical Issues And Holiday Cheer2021-12-13
Writing Month Retrospective2021-11-29
Tips For Introductions2021-11-15
Storytelling And Player Experience2021-11-01
Status Update: A Month of Writing2021-10-18
Have You Seen: Shadertoy2021-10-04
Three Year Retrospective2021-09-20
Programming Concept: Wrapper Objects2021-09-06
Editor Windows to the Rescue2021-08-23
Schedule Change Strategy2021-08-16
Update: Schedule Change2021-08-09
Flying Into Problems2021-08-02
Lessons From Using Clipper2021-07-26
Expressing Game Feel2021-07-19
Easier If Everyone Flies: Part 22021-07-12
Easier If Everyone Flies2021-07-05
Programming Basics: Learning to Switch Languages2021-06-28
Too Many Games: Post-Jam Update2021-06-21
Jam Game Retrospective2021-06-14
New Jam Game2021-06-07
Ink vs Yarn2021-05-31
Sometimes... Breaks2021-05-24
Why Developers Sometimes Use Finite State Machines2021-05-17
Flipping the Frame2021-05-10
Blog Navigation Improvements2021-05-03
Island in a Sea of Rework2021-04-26
Legacy PDB Warnings In Unity2021-04-19
Sharing With Enemies2021-04-12
Design Thinking: Stamina in Action Games2021-04-05
Stamina in Three Genres2021-03-29
The Language of Unity 3D2021-03-22
Tutorials for Machines2021-03-15
Unpacking a Problem2021-03-08
Pitfalls of Alternate String Implementations2021-03-01
Programming Concept: C# Expressions - part 22021-02-22
Programming Concept: C# Expressions - Part 12021-02-15
Learning From Other Works2021-02-08
Applying Agile to Writing2021-02-01
Why Not RSS?2021-01-25
Lifting a Rock2021-01-18
Building Better Analogies2021-01-11
Lessons From A Bad Story2021-01-04
Planning 20212020-12-28
Happy Holidays (2020)2020-12-21
How Not To Make A 2D Mirror2020-12-14
Salience As A Routing Tool2020-12-07
Consistently Configuring Collision2020-11-30
Unity Dependency Locator2020-11-23
Automated Testing in Unity 3D - Part 32020-11-16
Automated Testing in Unity 3D - Part 22020-11-09
Automated Testing in Unity 3D - Part 12020-11-02
Steps to Replicate2020-10-26
Goals of Programming2020-10-19
Leveraging Tooltips for Narrative Value2020-10-12
Reusing 2D Sprite Animations in Unity2020-10-05
Two Year Retrospective2020-09-28
Three Approaches to Game Balance2020-09-21
Using Content Backlogs2020-09-14
Overcoming Differences with Curiosity2020-09-07
Narrative Deadlines and Interactivity2020-08-31
Creating UI Tabs in Unity: Part 42020-08-24
Creating UI Tabs in Unity: Part 32020-08-17
Creating UI Tabs in Unity: Part 22020-08-10
Creating UI Tabs in Unity: Part 12020-08-03
What Else Have You Tried?2020-07-27
Continuous Improvement2020-07-20
Catching Player Disappointment Early2020-07-13
A Tale of Testing2020-07-06
Analyzing Assumptions2020-06-29
Site Update: Glossary Added2020-06-22
Validation Through Use2020-06-15
Exceptions Are Not Errors2020-06-08
Why Use JSON?2020-06-01
The Impact of Choosing Tools2020-05-25
Programming and Understanding "Why"2020-05-18
Software Compromise2020-05-11
Data, Algorithms, and Philosophy2020-05-04
Almost2020-04-27
Software Optimism2020-04-20
State, Writing, and Scope2020-04-13
A Key Problem2020-04-06
When to Change Tools?2020-03-30
Solving Problems with Unity's Audio Mixer2020-03-23
Debugging a Mysterious Crash2020-03-16
A Break as a Tool2020-03-09
Feature Expectations2020-03-02
Yarn Command Attributes - Part 42020-02-24
Yarn Command Attributes - Part 32020-02-17
Yarn Command Attributes - Part 22020-02-10
Yarn Command Attributes - Part 12020-02-03
Persistence In Scenes2020-01-27
Flexibility and Replanning2020-01-20
Scene To Blank2020-01-13
Planning 2020: Part 22020-01-06
Planning 20202019-12-30
Happy Holidays (2019)2019-12-23
Diagnosing Early Performance Problems2019-12-16
Paper Prototyping2019-12-09
Input Retrospective2019-12-02
Game Genre Problems2019-11-25
Input Actions2019-11-18
Accidental Pitch Polish2019-11-11
Challenges of Vertical Slices2019-11-04
Programming Concept: Race Condition2019-10-28
Insurmountable, Easy, and Nuanced2019-10-21
ECS Architecture2019-10-14
The Missing Constraints2019-10-07
Programming Concepts: Caching2019-09-30
One Year Retrospective2019-09-23
Writing as Curation2019-09-16
Status Update: Ailments and AI2019-09-09
Iteration and Improvisation2019-09-02
Avoiding Overflowing Text2019-08-26
Quality of Life Improvements2019-08-19
Looping Natural Sounds2019-08-12
Musings About Opinions2019-08-05
Game Jam Retrospective: GMTK 20192019-07-29
Approaching Jam2019-07-22
Save Architecture Part 2: Loading2019-07-15
Save Architecture Part 12019-07-08
Lessons in Structure2019-07-01
Too Early to Be Technical2019-06-24
User Experience Everywhere2019-06-17
A Measure of Progress2019-06-10
Salient Branches2019-06-03
Blogging Cadence2019-05-31
Feedback Friday Followup2019-05-27
Blog Post Next Friday2019-05-20
Goals of Prototyping2019-05-13
Software Architecture Planning2019-05-06
Announcement: New Prototype Available2019-04-29
Announcement: New Prototype Next Week2019-04-22
Fixing the Present, Planning the Future2019-04-15
Input Challenges2019-04-08
Six-Month Retrospective2019-04-01
Upcoming Retrospective2019-03-25
Prioritization2019-03-18
Accidental Reuse2019-03-11
Input Decisions2019-03-04
Planning - March 20192019-02-25
Asynchronity in Unity2019-02-18
Status Update: Gameplay Prototype2019-02-11
Opinion: Meaningful Moral Choice in Games2019-02-04
Art Pipeline Part 32019-01-28
Art Pipeline Part 22019-01-21
Art Pipeline Part 12019-01-14
Design of Movement2019-01-07
Planning 20192018-12-31
Prelude To Planning2018-12-24
Normal Maps2018-12-17
Planning The Aesthetics2018-12-10
LiteDB And Unity2018-12-03
Retrospective of A Notebook Prototype2018-11-29
Sunk Cost Lessons2018-11-19
Notebook Prototype2018-11-12
Planning the Mechanics2018-11-05
Automated Deployments2018-10-29
Site Updates Coming Soon2018-10-22
Yarn Spinner Extras Part 2: Return Values2018-10-15
Yarn Spinner Extras Part 1: Variables in Text2018-10-08
Planning the Theme2018-10-01
Beginnings and Planning2018-09-03
Vision and Focus Part 22017-05-24
Vision and Focus2017-05-06
Time and Hobbies2017-03-02
Beams of light2017-02-13
Updated Site and Extended Robot2017-01-30
Almost an update2017-01-16
Approach to Prototyping2017-01-02
Happy New Year (2017)2016-12-18
New Prototype: "Falling"2016-12-04
On Representing Data2016-11-20
Current Prototype Status Update2016-11-06
Developer workflow2016-10-23
Programming Concepts: Reflection2016-10-09
Build Tomorrow Now Working2016-09-25
Update Schedule2016-09-10
New Site!