Sliptime Sleuth
- Platform: Windows
- Tools: Unity 3D, C#
- Duration: Spring/Summer 2020
- Team: Sunburst Studio (7 people)
- Role: Systems + gameplay programmer
Contributions
- Refactored older game systems
- Implemented new puzzles/dialogue
- Designed new content with the whole team, maintaining scope for launch on Steam
Gameplay
- Travel through time with a scrolling bar, like a video player
- Your actions in the past change the future
- Solve puzzles using items and clues from different moments in time
Overview
While Sliptime Sleuth was being developed by some members of the team since late 2018,
I was brought on in early 2020 to help finish the game and prepare it for release.
-
My primary task was to implement new puzzles in the game, using the game's system of
time travelling, collecting/using items, and talking with characters - but for this project,
I am most proud my work to refactor, stabilize, and extend parts of the codebase that were up to
a year old.
-
Many core features of Sliptime Sleuth had been implemented early in development,
and depended on code that was meant to be temporary. This had not been an issue for a
while, but as we expanded the game we found that these older files were causing race conditions,
misfiring UI animations, and in rare cases locking gameplay entirely. After conferring with the
team on these bugs, we decided I should try to fix them as they came up.
-
A major obstacle to this effort, though, was the fact that the features I intended to refactor
were actively in use all over the project. Some fixes I had planned - such as creating a central state machine for the UI
- simply became unfeasible as our release date grew closer, since changing the old implementation
would break many more files than I could easily repair. While I did resolve some smaller-scope
bugs in clean ways, the team and I ultimately decided to just contain the further-reaching ones to the
best of our ability for release.
-
I learned a tremendous amount from this project! This was my first experience fully releasing
a game, and I am pleased with the work the whole team produced. In terms of programming work,
attempting to track down and fix legacy code showed me the dangers of ignoring tech debt and not
designing with modularity in mind from the start. Since then, I have carried those lessons with me
and strive to make my code legible and modular from the start.