In my opinion a Royalty Share can work if all Codevelopers involved have a passion for the Project. A Royalty Share still relies on Volunteered Time, even with a Contract. Without Passion, the cohesion and motivation will eventually break down. Getting Codevelopers to fall in love with the Project requires inclusion of their ideas, fast results, and equitable swap of resources. The incentive of future profits is not simply not enough. I recently experienced this.
I was working with another Developer on their First Person Open World Survivor project, my project was a First Person Dragon Crawl. They offered 3D Art Assets, I offered Blueprints. I joined their Open World Survivor with the intention of integrating common FPS game-play Combat mechanics and RPG Skills & Inventory Sub-systems for my Dungeon Crawl. This way I could achieve progress on both projects simultaneously. The inner workings for both Projects would use the same Blueprints, with completely different aesthetics on the outside.
It ended up being a one-way lop-sided deal as they were focused with strictly developing level assets for their game world. Unfortunately, the assets produced were not designed in a modular fashion, thus not flexible to be re-purposed for use in my game (or other future games for that matter). I provided Blueprints, but, did not receive any 3D assets in return. I eventually begin to focus on other aspects of my own game, simply losing interest in theirs.
In truth, each Codeveloper is here to develop their game. Techlord wants to develop this, sayato wants to develop this, zlspradlin wants to develop this. If there is no interest in each others game concept, focusing on each others project is extremely difficult. Such collaboration requires a different strategy. Firstly, we have to acknowledge we’re not developing a single project, we’re developing multiple projects. This requires engineering and designing assets to be modular and customizable for use in multiple projects to achieve progress on all of them simultaneously. Identifying common assets and subsystems for use in multiple projects is a step in the correct direction.