Woven
Technologies
Platforms
Woven is a third person action adventure game created by Alterego Games and published by StickyLock Studios. The game features a woven plush elephant exploring a woolen world. The player solves puzzles by swapping knitted animal parts for different abilities.
My Role
By the time I arrived the game was nearly done. My job was to make sure the game was ready to be released on all other platforms than PC. Which meant porting a whole lot of systems to the Xbox One, PlayStation 4, Nintendo Switch, MacOS and Linux.
This meant changing the game setup an initialization architecture to support the active user paradigm used on the Xbox One where anyone at any time can log out due to all sorts of reasons. Porting and abstracting the file based the save system and file IO to the platform specific APIs. Implementing achievements/trophies for all platforms that support it and creating systems for delivering Microsoft's 'Rich Presence' feature. Among a whole host of other things.
Another responsibility of mine was to make sure the game would pass certification. This includes testing all the edge cases and making sure the game didn't break any of the rules set by the guidelines set by the console creators.
Optimization & Debugging
In the final stages nearing the release time window I was also tasked with solving and debugging crashes we experienced on the consoles. Most of these resulted in out-of-memory errors during scene transitions. This was a trivial matter of releasing unreleased handles to resources and clearing all references in the loading screen.
Besides working on debugging crashes I was also tasked to figure out ways of optimizing the game for lower-end hardware such as the Nintendo Switch. Here we decided on a strategy of implementing dynamic resolution rendering and more aggressive texture compression. Which is kind of using a sledge hammer to hammer a tiny nail. However due to strict budgetary- and time constraints in addition to unfamiliarity with profiling strategy and profiling tools this was deemed the best option at the time.
Lessons Learned
This was essentially both my first commercial game release in addition to the first game I had ported to other platforms than VR and PC. During this project I have learned:
- to find information on console specific forums
- use the Pix and PlayStation specific profiling and frame debugging tools.
- Learned how to implement file I/O on the three consoles.
- Implement achievements.
- Make games builds ready for debugging on devkits and how to set all the parameters for publishing.
- What the console requirements and application architecture constraints are when developing for consoles.
Reflection
It was pretty stressful in the beginning. Especially since I was given no guidance nor any help with figuring out all of the console development quirks. I was given the log-in information and privileges to access the console documentation pages and the trust that I would be able to figure it out.
In the end everything worked fine and it only took two tries to get all versions through certification. I and the company learned a lot. All of which we used in the second game they would release later.
I learned to work in a team and to estimate time and work within the constraints of a deadline. I've also learned not to feel solely responsible for the shipping of the title, as I did in the beginning and middle of the project. This gave me a lot of unnecessary stress. That support from the management team was fantastic. They gave me a lot of time and were extremely supportive during my growing pains.