I was the programmer of the team.
Twin Fates is a 2 players cooperation action-adventure game in which the 2 characters are linked to each other with a physical link.
It relies on platform, combat, puzzles, but most of all cooperation and communication between the two players.
The link can be seen as a weakness, but it also is their greatest strength!
These game pillars are heavily influenced by cooperation between the players, and allow to have a really rich and diverse game.
> Pull other player/elements
> Circle elements
> Swing, hang in air
> Cutting with the link
> Slingshot technique
> Behaviour-centered cameras
> Advanced Zipline editor
> Interactive element
> 100+ parameters script editor
> Utility addons for Unity3D
We were able to regularly and quickly implement new features, test them, and improve them.
Here, the physics are disconnected for the zipline
The zipline system is a good example of this:instead of using physics, the players will get in position and follow a path, that has been created by the Level Designer, and decorated (with a vine, for example) by the Environment Artist.However, the zipline is only one of the many activities possible thanks to the link.
Here are the main ones:
> Cutting/slashing elements
> Pushing/pulling heavy elements
> Circling enemies or objects
> Slingshot technique!
> Pulling your friend up
> Pulling your friend down (huehuehue)
> Getting entangled in some elements
This was a long project that required a lot of testing, improvement, and iterations.
However, we reached a point where the link is a really permissive toy, which makes the game fun for anyone while staying accessible.
Also, the players have a common base, but have very different abilities:
San, the human, can shoot, double jump, and hang on ledges.
Scyanda, the wolf, uses melee attacks, has a shield and can walljump.
I also used inheritance for other elements, such as enemies or interactive objects, since they all work in the same ways, with many differences in the execution.
These behaviors obviously had to be configured by the game designers,
but it would have been an ordeal without the editor scripts I made.
Unity3D allows creating custom editors for scripts that can use dynamic elements, curves editing, and much more, which helped us work even more efficiently.
These require creating new scripts, based on the class UnityEditor. They allow creating settings editors, quick-access interfaces, and much more.
It was a really nice experience having to create something that’s used by someone who isn’t as technically knowledgeable as me about the scripts I wrote, and it was really rewarding seeing Steven, the game designer, using them easily and happily.
It gave me many ideas, and I plan on using these editors in some of my procedurally-generated levels-based projects. Especially the quick access toolbars and the waypoints manager (used for both cameras, ziplines, and moving obstacles!).