guess you guys are not too optimistic :/
It's something we've all considered before and thought over thoroughly. We're optimistic about new ideas, but some old ideas have been abandoned for a reason.
Player-hosted servers are fine for games without persistence, but just don't work for ORPG type games.
am I over-simplifying things and not looking at the whole picture? is there really no creative way around the system?
If you want players to be able to host games for some reason other than server costs (for example, for community moderation, and player-managed sub-communities), you could still have players "create" servers that you host, or you can have players "rent" servers from you that automatically spin up a new Amazon cloud-hosted server. That could even form a minor part of your revenue stream.
but even if I enabled player-hosted games, what if most of the game routines still happen server-side? in terms of cheating it'd be mostly up to the host player to cheat (and the rest of non-cheater players would leave right away), and client cheats would be limited, like you said.
The thing with cheaters is other players can't be sure whether they are cheating or just really good.
Problems:
False-positives: I've been accused of cheating before, just because I played well in a match - I'm sure we've all had. Regardless of whether or not someone is actually cheating, the more players are aware of that cheating does occur, the more they see it around them, whether or not people are actually cheating.
False-negatives: Not every occurrence of cheating is obvious. Does your game have mini-maps with radar showing where all your enemies are? You can bet your cheaters will. Non-cheaters won't realize that, and might just think that the other players are just really good... and get frustrated that they can't ever seem to improve at the game, because everyone else is just so skilled.
Positives: Even if you do see that a player is cheating, and leave the server... and join another server that has players cheating, it'll give you the impression that the game is "filled with cheaters", and you'll start seeing false-positives everywhere, or else it'll motivate you to cheat, because "everyone else is doing it, so I need to do it to even make the game fun, and to level the playing field.", creating a self-reinforcing and growing environment of cheating in your game.
Insta-leveling: Another impact of cheating that ruins gameplay for others long-term, even if they don't play on cheater-hosted servers, is by cheaters hosting "insta-level/uber-experience" servers. Everyone else levels in 5 minutes what takes me 5 months. They get all the best items. Instantly. They get all their skills maxed, instantly.
Griefing: A cheater-ran server can be set up (easily!) to just grief players in slight ways. Make the players' bullets fly to the left, or give them spray-cones that are slightly bigger (less accurate) than other players. Make them run a very tiny fraction of an amount slower. Make them suddenly "lag" when entering a firefight (to which the players will blame you, the developer). Make them every so often accidentally flip 180-degrees around. "Chosker's game? I've played it, it was buggy like you wouldn't believe!"
player-hosted servers as opposed to running it on rented servers where a developer can always admin and manage
As I mentioned earlier in this post, just because you are hosting the server, that doesn't stop you from letting the community moderate or admin it. I think it's wise to let trusted members of the community be able to police your servers for you.
some games give some power to the players in this regard, by allowing to vote kick others.
Not if the person they are trying to kick is hosting the server. The kicking feature will be the first thing they disable. Ofcourse, the cheater can one-vote kick anyone they want to. Cheater-hosted servers disempower the community and empower the cheater. It takes away power from the very people you want to have power, and gives the power to the very person you don't want to have power.
the $6 server won't be enough for a UDK/CryEngine/Unity game, which are the top indie/hobbyist third-party engines.
Why not? UDK and CryEngine are famous for impressive graphics. Servers don't run graphics at all! The rendering engine you choose for the client doesn't determine or force the way you write your server, though it might influence it.
if an indie/hobbyist developer wants to put just 5 always-on servers that means almost $500 a month. sounds like a problem to me
Well, let's stop and think here. Are you talking indie or hobbyist? Because they are different things.
Hobbyists can run a single server, and then tell players to donate if they want more.
Indie developers can run a single server, until they get enough players that they actually need additional servers.
One physical "server" machine, can host maybe 20 of your game's software "servers", depending on how well you write your game's servers. The word "server" is often used for both the physical hardware, the virtualized operating system on the physical hardware (there may be more than one per physical machine), and then the game's server code (there may be more than one per physical machine).
It's not 1 physical machine hosts 1 software server. It could be 1 physical machine hosting 20 software servers. Or at maybe 5. Depending on how you write your code, and how powerful the machine is.
even if you could find such a server for $50, it's still $250 per month. this whole thread is about thinking of an alternative to that, aimed for hobbyists or self-funded indies. $250 per month just doesn't cut it IMO.
Again, purchase one. When you need more, purchase more. When you need more, it means you already have revenue coming in, because paying customers are already playing your game.
I am not a server architect, so take this with a grain of salt, but let's do a hypothetical scenario here.
You released your game. You charge players $5 a month (after processing fees and etc...).
Your game software server can host 30 players.
Your online-rented physical server can host 5 of your game-software-servers. This means you can host 150 players at once.
During your peak gameplay time (middle of the day on weakends, after school on weekdays), only about 10% of your total active players are online at once, statistically - I forget where I heard that statistic though. For small communities (<50 active members), my personal observation is that it's much higher as they all try to get on during 'peak time', because nobody is on during any other time and players don't want to play alone.
This means, you can support a community of about 1500 active players before you start lagging.
Because we don't want it even slightly lagging, let's say 1200 active players is the size you can support per physically rented server that costs you $100 a month.
1200 players cost you $100 a month. 1200 players pay ($5 * 1200 = $6000) a month.
For every 1200 players, less than 2% of your revenue is going to server expenditures.
But ofcourse, for every new server you add, you don't instantly poof 1200 paying customers into existence.
So how many paying customers do you need to break even on a new server?
$100 monthly / $5 per player monthly = 20 paying subscribers for each new server to break even.
These are all hypothetical numbers. But these are hypothetical numbers you can shoot towards as a goal, because the performance of your code is the driving factor. And they are on the low end of performance - honestly, unless you're running a FPS with advanced physics and everyone moving around where you having to keep every player perfectly sync'd with every other, getting 30 players per game server should be your starting situation before you optimize. With RPGs, you can easily cut corners on player synchronization that FPS's can't. And we've been having 16-32 player FPS matches running on player's machines for the past 10 years (i.e. 10-year old machines).
While your game is in the very very early state, host the servers on your own machine. That'll get you to 50 active players easily, though uptime won't be 100%.
Check the Steam stats for how many active players these million-user community games have during peak time. If you're expecting to be less popular than Ragnarok Online 2, then you probably won't encounter 2000 active users at the same time.
I was once part of a tiny hobbyist ORPG, and we were able to have 20 consecutive users on the lead developer's spare desktop. We never got above 22, merely because our community was small (too small, according to Norton Antivirus). The game server wasn't even optimized yet for large groups of players, and the thing that lagged it the most was my stupidly-large scripts written in the lead developer's custom yet-to-be-optimized scripting language. Though, one time, he had guests over in that room for a few days, so he switched to hosting the game on a laptop over wifi. That lagged.
My basic point is, yes it costs a little, but when you need to support massive numbers of users, then you should already be receiving massive amounts of revenue. You don't launch and get 10k users unless you already have a huge public presence prior to your launch. As your customers build up gradually, or in spikes, your revenue will also build up in revenue and spikes.
Plan for those numbers of users, but don't purchase/bet on it until you see them materialize.