Team Workflow
Team Workflow
Hi everyone, is there a suggested workflow for team members to work on the dialogue? In other words, if I, as the developer, wanted to give my partner, the designer, the ability to create and edit conversations and events, what would be the best way to integrate their work into the main project?
Re: Team Workflow
Hi,
Whether you're one person or 100, I strongly recommend using a version control system. Each of you can have your own local copy of the project and commit your changes to a single authoritative version.
A dialogue database is an asset, like an animator controller or an image file. Only one person at a time can work on asset. If you're editing a dialogue database, let your partner know not to touch it until you're done. Then you can push it up to the version control repository and they can pull down your updated version before they start editing it. If you're in the same place, you can pass around a physical token to the one who's allowed to edit the database. If you're working remote from each other, communicate over discord, etc.
The most common approaches for teams are:
1. Use a single dialogue database, and pass around a token so only one person at a time edits it.
2. Or use multiple dialogue databases. Typically you'll have an initial database that defines your the actors, quests, and global variables; and additional database(s) that contain your conversations. (See Working With Multiple Databases)
3. Or use a third party multi-user authoring system such as articy:draft Multi-user. The downsides are that it's pricey, you have to set up a server, and of course you have to learn how to edit content in articy. But multiple people can edit the articy project at the same time.
One of those approaches will take care of conversations.
The Dialogue System has a robust sequencer system that your designer can use to design events. The sequencer has commands to activate/deactivate GameObjects, move objects, play animations, etc. You can also add your own custom sequencer commands and Lua functions to the project. So your designer should be able to create a lot of content without touching any scenes, and possibly even without touching Unity if they're editing in a third party app such as articy:draft or Chat Mapper or the Neverwinter Nights Toolset or etc.
However, if your designer needs to actually hook up activity on scene objects, such as placing triggers in scenes, they'll need to edit the scene. Like other assets, only one person at a time should edit a scene. You can use the same type of token or communication to make sure only one of you at a time is editing a scene.
Whether you're one person or 100, I strongly recommend using a version control system. Each of you can have your own local copy of the project and commit your changes to a single authoritative version.
A dialogue database is an asset, like an animator controller or an image file. Only one person at a time can work on asset. If you're editing a dialogue database, let your partner know not to touch it until you're done. Then you can push it up to the version control repository and they can pull down your updated version before they start editing it. If you're in the same place, you can pass around a physical token to the one who's allowed to edit the database. If you're working remote from each other, communicate over discord, etc.
The most common approaches for teams are:
1. Use a single dialogue database, and pass around a token so only one person at a time edits it.
2. Or use multiple dialogue databases. Typically you'll have an initial database that defines your the actors, quests, and global variables; and additional database(s) that contain your conversations. (See Working With Multiple Databases)
3. Or use a third party multi-user authoring system such as articy:draft Multi-user. The downsides are that it's pricey, you have to set up a server, and of course you have to learn how to edit content in articy. But multiple people can edit the articy project at the same time.
One of those approaches will take care of conversations.
The Dialogue System has a robust sequencer system that your designer can use to design events. The sequencer has commands to activate/deactivate GameObjects, move objects, play animations, etc. You can also add your own custom sequencer commands and Lua functions to the project. So your designer should be able to create a lot of content without touching any scenes, and possibly even without touching Unity if they're editing in a third party app such as articy:draft or Chat Mapper or the Neverwinter Nights Toolset or etc.
However, if your designer needs to actually hook up activity on scene objects, such as placing triggers in scenes, they'll need to edit the scene. Like other assets, only one person at a time should edit a scene. You can use the same type of token or communication to make sure only one of you at a time is editing a scene.
Re: Team Workflow
Wow, Tony, thank you so much for your in depth reply. This gives me a great starting point for my solution.
Regarding this token, are you referring to something specific, or just a general mechanism for check-in/check-out.
Regarding this token, are you referring to something specific, or just a general mechanism for check-in/check-out.
Re: Team Workflow
Any general mechanism for check-in/check-out will do.