2. How does one technology compare to another? I honestly can't say. I haven't used the others so I don't even know how well they perform on their own, let alone compared to one another. :(
The reason why I decided to go with WordPress was because i had created a very very, very simple login kit using vanilla php and mysqli and that asset sold like hotcakes for months... yet apart from saying "Yes, this username and password match what was stored back when the account was created" the asset didn't do anything else. By adding WordPress to the mix I was able to make use of their security features and user tracking across server contacts (i.e. I didn't have to send the username and password along with every single server contact and re-authenticate the user with every single contact) and also, thanks to the WP codebase it meant I could very easily add loads of new features very easily.
Working with WP was both fun and offered great flexibility. I fell in love with it, simple as that :D
As for how well it performs, well, like I said above, Unity calls WP, WP does stuff and send back a custom text response instead of generating an HTML page (using the themes and templates and all that stuff) so from Unity's end there really isn't much going on: Contact the server, wait for the reply then do something. On the WP side of things, that works like WP normally works (except it doesn't generate the HTML output) so if your question is "How well does WP perform for a busy site with millions of people?" then you need to contact the WP guys and ask them for those figures cause that sounds like something they might know... from my end, using my kits is 100% the same as making people visit your website.
- Considering 26% of the entire internet runs on WP I would assume it doesn't do a bad job, though ;)
- I myself was curious about all the SQL queries WP runs and how it will affect performance so I spoke to a DBA who all but laughed in my face as he told me that mySQL can easily run hundreds of thousands of instructions at the same time so no way would I be able to create a tool that will break SQL... So, basically, subject to things like record locking, of course, it seems me thinking my kits will break the website is akin to me having an ego the size of the moon... apparently ;) :P
- BUT, having said all of that, there is one very important thing to note! Since this works like a web page this means my kits are meant to be used passively, not for real time games. I.e. Login in now, fetch the player data a second later, submit a high score every 5 or 10 minutes, save the game data whenever he reaches a save point and click's "Yes, please save" then wait for the server to say "I'm done"... do NOT try and save player position and rotation 50 times a second. That will absolutely NOT work!!!
If you want to use the kits for use with multiplayer games like shooters or MMOs etc, the by-the-frame updates will be handled by your server application but the data itself... well... thisi s where my kits get interesting. :D MBSCore (The broken asset of the Asset Store) has a class called CML which runs everything in all my applications. CML is like XML on steroids with loads of search and filtering functions that allow you to view your CML object as an in-memory database... and i mean that in every sense of the word. Every single CML object can contain any number of "tables" if you care to go as complex as that, otherwise you could simplify your life and use one CML object for each table.
The key thing to keep in mind here is that when your player logins in, you contact the server to fetch all his data. You then keep that data in memory inside that CML file and use that single object for all your game data (achievements, inventory, game settings, position, rotation, quests, whatever you want) and whenever the player reaches a checkpoint or whenever you feel like it you just send all or parts of that data to the server to say "Track this for next time" and then don't even bother with the server result. Send the "store this" command and continue playing. Next time the player logs in after starting your app, all the data is fetched again and you use everything from there. (You don't HAVE to do it this way but I tend to do it this way as it makes sense to me to do this).
What this boils down to is that your players log in and then don't contact the server very often after that... so will millions of players that only contact the server every few minutes kill your server? I doubt that but, like i said, I am not the expert in THAT particular department. All I can do is make an educated guess based on my understanding of the kits and the DBA who laughed at me when I asked if my kits could kill the server ;)
Hope that answers your questions :)