The theme of the jam is “It takes two to tango” a ton of multiplayer/couch co-op games were made, so try all the jam games with a friend! Twin Blade Tango is 2-player only, and requires at least one controller. I hope to add a cpu player for single-player experiences.
Animation Setup
We (four animators and two programmers) made great use of the AnimationTree, I learned a ton about animation pipelines. A small state machine like this one, proved super powerful.
Surprisingly tough to keep a scene tree and it’s node names consistent between Maya, Blender, and finally Godot; Maybe there is some way to rename the node on import? Custom animation tracks could solve this, but the custom tracks were consistently overriden when reimporting/editing animations.
Code Sample
I was able to remap controller inputs with a P1
and P2
action set, changing the device ID based on which controller pressed a button.
const input_strings: PackedStringArray = [
"P%dLeft",
"P%dRight",
"P%dForward",
"P%dBackward",
"P%dAttack",
"P%dThrow",
]
# in _input()
for a in input_strings:
var b: String = a % for_player
for e in InputMap.action_get_events(b):
if e is InputEventJoypadButton or e is InputEventJoypadMotion:
e.device = event.device # remap device id
Our healthbar uses a subviewport on a Sprite3D, this needed a script to get the path once the player is instantiated into the scene, since it requires a path from the root and the subviewport texture fails to create one correctly as assigned.
The enemies were originally very aggressive, at the last minute in a sleep deprived whirlwind I added two randomly timed timers to make them loiter. The waiting added a lot of character and made the game much easier, though I’m still not sure exactly how the code works, it certainly can be simplified.
Screenshots
I am really happy with what we made! Join game jams! Make friends! Wooo!