Adventure games have cutscenes and I’m currently deciding what the best way of doing them is.
1. Play a video
Pros
- Looks exactly the same on all devices.
- Guaranteed not to fail mid-animation because of a bug in the game engine.
- Unlimited possibilities: use as many effects or tools as I’d like. Not limited by the processing power of the device.
Cons
- Using effects/assets not available in game will make it more obviously look like a video.
- Adds additional workflows and rendering steps, making it more difficult to change or iterate on the video.
The workflow issue could become a benefit when working in a team, as production could run in parallel and the video just dropped in at the end. Doesn’t apply here, though.
2. Use Existing Assets and Game Engine
Pros
- Fits seamlessly into the game
- I can reuse existing assets and effects.
- Easy to change—scripted actions rather than rendered video means I wouldn’t require any additional rendering steps or workflows and changes can even be made while the game’s running.
Cons
- Limited by actions and scripting available in the engine. Anything custom would need to be programmed.
- Less precision (e.g. no keyframing, no minor adjustments of movements not already available in the animation system).
3. Create a Custom Cutscene Engine on top of Game Engine
Pros
- I can build in as much control as necessary to get the desired effects.
- I can add whatever additional effects I want.
- Reuse all the existing game assets.
- Ability to edit while the build is running.
- Still looks like it belongs in the game.
Cons
- I’m maintaining an animation app now. Cool.
- I will be limited by the frames available for each animation, albeit with more control within those animations (e.g. dynamically change framerate, frame order, etc.)
I love the idea of a custom cutscene animation app that sits on top of the game engine, because of course I do. I want more apps to maintain.
However, in the interests of getting out a Minimum Viable Product, I think that probably sticking with the game engine and just accepting or working around the limitations of it will provide the best flexibility/quality trade off for the moment.
Thankfully, the engine has a comprehensive trigger system that allows animations, character movement, sound effects, state changes, and even scene transitions.
All that’s really required is for me to just switch off player interaction for the scene and make sure there’s some sort of transition at the end and it should all just work.