The game I've been developing for the past 3 years has a level editor which allows user created levels to be shared between players. I'm close to a point where I'm considering early access (open alpha) and I need to start thinking about how are people actually going to share their levels.
As of right now, it's super easy to export the level code with a few clicks, shared on a website like pastebin and imported by copy/pasting it inside the editor. That's fine and I'm willing to use this method for now (I mean look a Path of Exile for example, 50% of this game is played outside of the client [joking of course]), but I kind of want to make this process more integrated into the game itself. The game is not locked to a specific platform or launcher so it needs to have its own way of handling this logic.
These are challenges I see:
- User authentication (for submissions)
- Level code and metadata storage
- Level approval and status
- Level rating and stats
- Level filtering (browse and search)
And with that in mind these are the possible scenarios I see:
- Integrate everything in-game, submission, searching, voting, etc.
- Move submission to an online platform outside of the game while having the searching and voting in-game
- Moving everything to an online platform including submission, searching and voting.
- Forget about everything and have manual sharing between users (as it is right now) while select few levels can be featured directly in-game and updated regularly with new ones.
As a front-end developer with limited back-end knowledge I know how this could work and might even be able to code the app myself with some outside (stackoverflow) help.
Having in mind everything I mentioned above, do you think this is even worth doing? Should I instead opt for the more manual approach, like people sharing levels to me directly and if they are fun enough I can feature them in-game?
If I go down the automated path do you have any ideas/technology that I might not be aware of that could make this whole process easier? Maybe a third-party solution that can handle authentication, submissions and storage?