I recently had the thought of working on a sort of on-premise login system for Unity games and selling it.
Before I put in too much work I’d like to gauge how much interest there is for something like this.
Some details:
The system is built on a Node.JS TCP socket server. Doing it this way I think lets me add many more powerful/engaging features than your average “My First PHP Login” system - since communication with the server is a real-time socket connection rather than limited to request/response over HTTP.
It could also help reduce network traffic for the same reason - for instance, let’s say the system has a PM feature (which it probably will) which notifies users when they have a new message in their inbox. Now we could go with PHP and have the client poll the GetMessages.php script every X seconds. OR, we can have the client just sit back and wait for a notification from the server.
There’s also what happens when a user tries to log in on multiple machines at the same time, and how to handle logging out. In PHP, there’s no real good solution for this (there’s no active connection, so you can’t really detect when a user closes the game without explicitly logging out). But, with a NodeJS server I can easily keep track of logged in users associated with active sockets. Socket dies? Log out the user. User tries to log in on another machine? Check currently logged in users, don’t let them log in if they already are.
That said, here’s what I’m thinking for feature list:
- Login/registration/password reset (of course). Configurable behavior for multiple login (player tries to login to the same account on multiple machines at the same time) - either refuse new connection, or disconnect previous connection.
- Admin actions. You can temporarily disconnect users (which will immediately log out that user and give them a warning message), can ban users (which will log them out, give them warning, and not let them log back in), etc.
- Friends lists. Players can send friend requests to other players, accept or decline requests from other players, and view profile information of their friends. Players will also get online/offline notifications of their friends.
- Messaging. Players can send messages to their friends (in real time - client gets instant notification of new message)
- Game invites. Players could invite their friends to whatever match/room they are currently in (“[player name here] has invited you to a match” or something like that)
- Stats/Leaderboards. You can submit stats from the client - like Kills, Deaths, Wins, etc. You can also requests ranked player listings of any stat from the server - daily, weekly, monthly, or annually.
- Achievements. This ties into the stats system, so you could create an achievement list which consists of Name, Description, Tracked Stat, and Threshold. When a stat is submitted from the client, if it meets the requirements of an achievement the server automatically notifies the client that they have unlocked the achievement. Could also have the achievement automatically increment a particular stat upon being unlocked (gamerscore, anyone?).
- [MAYBE] Gamercards. The NodeJS solution could, in addition to the socket server, also provide an HTTP server which could let users share Gamercard URLs (which would serve up a dynamic image with their stats and such), embed them as forum signatures, etc.
As mentioned, this would be on-premise (purchase and install on your own server), not a hosted solution. It would be built on Node.JS and MongoDB, and the code would be completely open to modification.
Thoughts? Any interest in something like this?


