Posted On: 2024-01-08
A year ago, I committed to a new planning approach, where I would start each week with a detailed plan, and end it with a retrospective of assessing how the week went. As I look over how the year unfolded, I find that there's need for revision: although the weekly plans were a great boon when things were going well, they were ill-suited to certain kinds of issues, and I had to outright stop using them at one point in order to break out of a cycle of futile toil. In today's post, I'll dig into what went wrong with my planning, as well as some changes to my approach that I hope will make it more resilient to such issues in the future.
Back in May, I delightedly documented the many successes I'd had with my new planning approach, and outlined both what I'd accomplished and what I planned to do next. The last item on that list, the "Faux Physics", represented something which, much like Autonomous Agent Movement, was something I'd worked on off-and-on over the years. Broadly speaking, the Faux Physics was intended to serve as a physics simulation that eschews the realism of more general-purpose physics systems (no bouncing/no springs/etc.) in favor of highly consistent and stable numerical values. Having a high degree of consistency is especially important for my project because the save system I use preserves everything with the maximum possible precision. Where an ordinary simulation might have its small errors accrue over a few hours at most, my project preserves those errors so that they accrue across not only a single play session, but the entirety of a player's engagement with the work.
One important thing to note about Faux Physics is that it is a very high-level description - more an "idea" than anything else. Ideas are not really actionable - there are many different ways to go about realizing an idea - so in order to get actual work done, it's necessary to break an idea down into concrete "tasks". Using the weekly planning approach, I would incrementally create tasks: although a single idea might be made up of dozens or even hundreds of tasks, I'd only take the time to define the one or two that I planned to work on that week. Every week I'd repeat the process, slowly chipping away at the idea until there was no work left to do.
I started in on the Faux Physics on Week 12 with a single innocuous task: update position over time. At the start of each week, I carved out one or two tasks, gradually making progress on the Faux Physics. Despite that seemingly reasonable approach, the retrospective for Week 16 shows the first signs of a larger problem: although I was making progress on tasks relating to specific kinds of collisions (that week was collision between a rotating object and a stationary one), I'd noticed that work on collision in general was taking longer than many other ideas that I'd tackled using weekly plans. Unfortunately, I didn't do anything with that observation at that time.
By Week 20 progress was starting to drag, as individual tasks became increasingly specific to deal with the increasingly complex system that I was building. To fight against this trend, I'd started allocating tasks to identify places where I could reduce scope or cut corners without compromising the idea I was working towards*, but in order to fit these new tasks into my schedule, I had to forego working on anything unrelated to Faux Physics. My retrospective for week 24 perhaps best captures my mindset at this time: alongside my other Faux Physics tasks, I'd spent some time trying out (yet another) third-party physics system, only to be disappointed in the results. In the takeaway for that week, I wrote "this physics rewrite is as important as ever, [I] need to continue with it."
Week 27 marked a significant shift in my approach. In my previous retrospective, I'd committed to a "serious re-evaluation" of whether continuing work on the Faux Physics was worth it. In doing that evaluation, I realized I had to set some kind of goal; it was impossible to complete every feature the Faux Physics needed, and it was proving increasingly difficult just to squash the critical bugs in the existing feature set. Instead of trying to make incremental progress, I resolved to set a concrete deadline for myself: Week 35 would be the start of September, and I resolved that, after that point, I would create no more Faux Physics tasks, no matter what state it was in.
Despite that resolution, Week 31 was the final weekly plan of 2023. It has no mention of the Faux Physics (save for an obscure note in the margin: "6+2 weeks remaining"). All development on Faux Physics had stopped - and with it, all development on my project as a whole. On the back of that plan - where the retrospective normally goes - is a blank page that speaks more clearly than anything I'd written up until then: I'd burnt out.
After that, I did what it took to recover: I read up on new languages and tools for no purpose beyond the joy of it. I reignited my love for creating games by breathing life back into one of my favorites. Above all, I made peace with where my project had ended up: going forward, it had to use a prebuilt physics system, and it would never be as stable as I wanted it to be.
By October I'd mostly recovered, and I set about making a new plan. This final plan for the year would be in my old style: a high-level goal, broken down into medium-sized chunks, and absolutely nothing to say about the individual tasks that make up that work. As I worked through it, I carved out tasks as needed - never bothering to write them down or otherwise organize what I was doing. Unlike most of my plans, this particular one had a concrete deadline*, so I naturally found myself cutting things that were unnecessary and maintaining a significant forward momentum. Ultimately it paid off, and I got the project to where I wanted it on time (albeit without a few things I'd wanted to include at the start.)
Reflecting on what happened with my weekly plans, it's clear I need a different approach going forward. While the weekly plans worked well for maintaining momentum on individual tasks, they provided nothing to help make sure that the larger goals behind them were actually achievable. Conversely, the approach I used in October was great for keeping scope in check and making sure that I was only working on things that mattered, but I struggled to keep momentum over the long term, as any breaks or distractions would leave me with no sense of where I'd left off or what was left to do on a particular task. As such, I plan to combine these two planning approaches together in my work throughout 2024: I have already defined an (arbitrary) deadline and scheduled checkins along the way, but I will also be resuming my weekly plans. Here's hoping that having these higher-level overviews of where I'm headed will help me course-correct sooner, so I don't end up sinking 15+ weeks into a burnout-inducing trap.