I made a large Italian people who want to make video game with me at this moment I got 32 people in team that learning everyone the role they want to do.
I want to start from indie developing till I made a big studio based economy on marketplace. The problem was that i got a lot of people who work with me and to make few exercise on level design for example I need to share few package I bought in marketplace. This is a lot of inconvenient to set up a server our share via 3rd part servers content to other members. And if someone need tweak a project we making is really tedious. So I got in mind a feature you can add to solve this problem to me and a lot of other teams, so lets start!
First by first i think was good idea to make a system like a guild of mmo games. Where there is 1 Administrator who can add members, promote them to certain role, give them access to certain projects ect. Need to be made a little system of different permission can had be flagged for different roles. For Example:
Admin - Got All permission
Co-Admin - Got All permission except promote people to Co-Admin, and remove members.
Project Administrator - Got permission to give access to different projects where they got project administrator permission
Normal Member - Got permission to access only to own projects our to projects shared from project administrator our higher.
What need in this system?
- For roles need make something like a Class Role:
String Role Name - Just a name that can be assigned by admin for the Role
List String Roles - Bottom + to add new role and - to remove 1
Bool list for permission to be changed for different Roles
- A class for the members like
String Nick name
Bool Development Team (this need to remember who now is in study position and who already can work on projects)
Bool List Role assigned
List Project on work to - a list of project from main account in what this member work at
- Need a menu where all roles can be assigned a been changed only by Admin
- Need a secondary menu where co-Admin can promote people but cant degrade
- Need Groups where people can be stored. For Example all team got 10 people. 5 of them work only on project A other 5 of them work on project B so Admin made the group and assign to it a master member cold Project Admin that can invite people on this group.
For what we need this groups? For a internal group chat and if possible for a group vocal chat. And to let know to the admin how much people work on with project so if need to assign 1 new member he can decide where is needed.
- For a right work need that project been stored in a UE4 server. You think immediately about conflicts if more that 2 people work on same project. I got an answer. Need a internal check in unreal witch item need to be saved so this member working on them.
1st type of solution (easiest 1): When a member open a project and this project was shared with more members server block access to open this project to other members, so conflicts was solved.
2nd type of solution (medium): When server see that 1 item need to be saved in one of the projects is no more editable from other members till who working on it don’t click upload option. Server check all references used to make this item like textures and freeze access to be modified and deleted by others. When a member click save all ask if he want to update modified files. If he do it server update files in the storing system and send a notification to other members that they can unlock content freeze our locked.