Any one of your example URLs should be able to rank. However, there are some that might perform better than others.
Google's guidelines suggest keeping it as simple as possible. In particular, they note:
Overly complex URLs, especially those containing multiple parameters,
can cause a problems for crawlers by creating unnecessarily high
numbers of URLs that point to identical or similar content on your
So, what this means in practice is that the URL
index.php?q=blog&category=game&id=free-mmorg-review could be duplicated as
index.php?q=blog&id=free-mmorg-review&category=game (as you noted). Along with duplicate content, that could create lots of URLs for Google to crawl through. I'd skip that one unless you are prepared to combat duplicate content issues and parameter ordering issues (which lead to major headaches on the best days).
Your first example (of
https://www.example.com/index.php?blog/game/free-mmorg-review) is simpler and would probably avoid some of those issues. But, the "index.php" being in the URL is somewhat unnecessary and keeps the URL from being simple. The example of http://www.example.com/?blog/game/article_title is simpler still but the question mark could still be problematic.
The reason why simplicity works, and I think the bigger issue to consider here, isn't so much about "can it rank?" but rather "would people click on it if it did rank?" Moz has a good article about URL best practices and one of the things they talk about is the readability for humans. That "index.php" in the URL or even the "?blog" makes the URL somewhat less friendly for a human searching on Google.
When URLs look different and weird that can reduce the number of people clicking through--this is especially true for less tech-savvy audiences. In tests I've done for clients, search results containing a URL with any kind of non-alpha-numeric character can get a lower click through rate than a URL that looks much friendlier like
There isn't a hard and fast rule here. If it were me, I'd do everything I could to get the index.php and the question mark out of my URLs to stay as simple as possible. "?blog" is simpler than "index.php/blog/etc". If that isn't possible, I'd do my best to keep an eye on click through rates from search results to see what kind of impact the URLs have. If CTRs end up lower, that could help inform a decision of moving to a server that supports mod rewrites.