And the World Went Dark

Role: Production Lead
Engine: Godot
Team Size: 6
A game about choosing people over progress:
Trek through a magical and twisted world in this you-are-what-you-wear turn-based rogue lite! Grow your skills and uncover the secrets of the gods all growing closer to your party members. In the end, you must decide which is more important: victory, or the people who can get you there?
Spiderweb Development
In working on this project, I found many unique ways to organize the team and enhance cross-discipline work. To plan out our development in a way that reflected our team dynamics, I used a unique system I named “spiderweb development.”
This system also allowed me to manage our scope, notably allowing our team to add features back in rather than taking them out. It also worked well with our team dynamic, in which each discipline was deeply interconnected, allowing for cross-discipline work, tight communication, and an overall cohesive game.

Spiderweb development is similar to spiral development, but with several key differences. While in both systems, you could stop at any point and find a complete product, in spiderweb, different segments of the product are developed in parallel and may be at different levels of completion when development is finished. To begin spiderweb development, we planned finite scope endpoints at the beginning, as opposed to planning for infinite scope increase with the only constraint being time. We defined one end goal for each “segment” of the final product: the end goal for the game’s map was a node-based map that spanned multiple visually distinct areas, the end goal for the combat was a deep turn-based combat system with many types of effects beyond dealing damage, and the end goal for the narrative was a narrative that changed gameplay as the characters developed over multiple runs. These goals were daunting, but were more like guidelines pulling us along than features we planned on completing. After defining our end goals, we planned out the assets, programming structures, and design considerations we would need to create to get there. The asset lists and scrum tasks that we created made up the “spokes” of the spiderweb, the guidelines that we could use to eventually achieve our end goals. Using the spokes, we began adding the most fundamental features to the game, analogous to the first and smallest spiral in spiral development. However, because spiderweb development divides the project up into segments, different people on our team were able to work on different segments at the same time. Certain segments were often further along than others, but at any given point, the segments combined formed a functional game. If the work in a segment was unstable, like a strand of webbing only attached to one spoke, it could be cut off and the web returned to a finished state. For workflow organization, we initially utilized an agile scrum approach, with frequent scrums and short sprint-lengths, tracked on a Miro. We additionally used spreadsheets for tracking certain development pipelines such as audio, items, art, bug-tracking, etc. Using spiral development is difficult when you want to build systems to support all their future functionality at once. It would be technically possible to go back and change non-modular, non-reusable code made for spiral one into reusable code in future spirals, but neither core programmer felt like that was a good or efficient idea. Everyone working simultaneously in-engine with spiderweb development allowed our production pipelines to exist in parallel with fewer bottlenecks and dependencies slowing the process. While this caused the project to have a slower start, it created a solid foundation upon which the rest of the game was built.
Team Communication
- What is Your Dog? -
When someone hears “picture a dog,” they all imagine a dog, but it will differ in size and species and color from everyone else's. This example, while comical, demonstrates how everyone can think they are on the same page but have entirely different ideas about a project.
That’s why, in development, I always ask my team “What are your dogs?” In this exercise, each explains where they think the project is now, where it’s heading, and where their piece fits in. This is helpful in streamlining daily Standups, but also when discussing new ideas or updating old ones.
- Handling Disagreements -
While our team norms and development system kept things on track, some members of the team still had difficulty communicating their thoughts and ideas. To ameliorate this, I took a day to set up one-on-ones with each team member, using question-based discussion to understand both where they thought the project was going and what they were trying to get out of it. After this, I created a board organizing everyone's thoughts and held a meeting to hone the project. Additionally, I established new systems to fix issues between disciplines, including a system where each person involved in a decision had to voice their opinion. This system lasted through the rest of development, practically eliminating team arguments and misunderstandings.
Managing Scope
As development progressed, I regularly evaluated our remaining work against our timeline and identified areas where our scope exceeded what the team could realistically complete. I cut our scope by:
Combining similar elements
Leading meetings asking questions on feature necessity
What does this feature do?
What does it do that other features don't?
How long will it take to create and implement?
What does the game look like without this feature?
Clearly defining and organizing wishlist items
This method allowed out team to add items back in rather than taking them out
.png)

Due to our spiderweb setup, our team understood where we wanted to go, but also that we may not be able to get there. Because of this, we descoping a lot, to the point where we were prepared to cut major features. While these were difficult decisions, it allowed our team to create a smaller, more polished project rather than a larger, less refined one. Inside this system, we were able to add planned features that were cancelled due to descoping back in once more essential features were completed. The main downside of this way of operating was that plans needed to rapidly adapt to the existence of certain features. For example, the team decided to designate “hearthlight banter” as a stretch goal, so the narrative operated under the idea that hearthlight banter would not be a part of the game. Because of this, there was an effort to tell the entire story in just cutscenes and barks, without furthering character discussions. When banter was added back in, some of the cutscenes needed to be trimmed to accommodate this change. Still, while this was a small hurdle, it would have been much harder to write the game assuming banter would be implemented only for the team to be unable to get to it. The existence of multiple areas was another aspect that we descoped in order to preserve the integrity of the game. Originally, the game had three unique areas, but we decreased this to one in order to polish that area as much as we could. Still, the ability to expand the amount of areas is readily available in the code, with the ability to quickly change background, character placement, and lighting effects. Overall, the team found that being prepared to scale back on features served to elevate the final product. Sacrificing scope for polish allowed our team to focus on creating excellent, portfolio-ready work that we were proud of as whole.