• Create Account

A bare-metal server, capable of doing FPS-type gameplay, is about $99 at game server hosting companies like ServerBeach, and you can find cheaper options if you look around. For development, Amazon ECC is great, because you pay by the hour, and if you need a few hours a week, it's really cheap. Always-on hosting is not as competitive in pricing, though. enum Bool { True, False, FileNotFound }; ### #7Chosker Members - Reputation: 488 Like 0Likes Like Posted 03 August 2013 - 01:55 AM guess you guys are not too optimistic :/ am I over-simplifying things and not looking at the whole picture? is there really no creative way around the system? Magicka is an example of the model I described. save for the fact that characters do not level up (and the only persistence in them is some spells you unlock along the way, and their weapon, the latter being something almost irrelevant for gameplay), players can host games and they automatically come up in the game's server browser. I remember playing co-op with a friend and having other unknown guys jump into the game. another example is Torchlight 2. it can be played in online servers and LAN. though the torchlight wiki claims it is peer-to-peer, the description makes it sound more like server-client with seamless host migration (not an easy thing to code either). then again TL2 has no real limiting for cheaters. but it seems tolerable from what I've read. Servers have to share some information, otherwise the clients won't know what to show on-screen. The key is to not share anything that the player shouldn't be knowing. Don't share information about enemy or ally players who aren't visible, for example. But calculating server-side who is and is not visible puts extra burden on the server. So servers compromise and willingly share a bit more information than is needed, so the server can run faster, but also don't share other information, to reduce the power given to cheaters. There are still alot of cheaters, and a decent amount of cheats, but the cheats are less overpowered, and the cheaters have a higher percentage of being caught. By letting users run servers, then you give cheaters 100% power, with absolutely zero way around it. Servers have to be the "authority" that says what is, or is not, the "truth" about the state of the game world. Handing that authority to cheaters makes games enjoyable to nobody except the cheaters, no matter how well designed it is. With FPSs, this is less of an issue, because persistence isn't a problem. Found a server with cheaters? Switch to another one. With MMOs where your character progresses, nothing makes your progress seem more irrelevant than seeing cheaters max out in 15 minutes the same levels that took you 15 months. As much as I dislike cloud computing and want software ownership for individuals, videogames streamed over the internet is the only guaranteed way to eliminate 99% of cheating and 99% of piracy, because it is the ultimate authoritarian server architecture - the server doesn't share anything except the video feed that the client displays onscreen. However, that's still a dozen years away from becoming a commonplace reality with MMOs, because it'll put way too much load on the servers. yep I get it. the more remote and authoritative the server is and the less code it relies on clients to run, the less you can cheat. as it becomes more 'player accessible' whether in running code or even allowing a player to be the host, it gets easier to cheat. 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. I also agree that cheaters are harder to catch in player-hosted servers as opposed to running it on rented servers where a developer can always admin and manage. some games give some power to the players in this regard, by allowing to vote kick others. often comes with bullying though, but most times it's better than forcing them to deal with a cheater wether they like it or not. Using your players' PCs instead of game servers could make the network code even more complex. You still have to write all the code to host a game no matter what box does the work, but now you also have to transfer state from your server to the host PC, and you have to worry about things like NAT tunneling and how to choose the host. Your host is no longer just running on one platform you control, so you have to be more concerned about whatever your gamers might have on their PCs, and what Internet connections they have. A process written for your game servers can have simple, secure, fast access to your other gamer servers to call remote procedures and fetch whatever data it needs from your databases. A process written for the client needs to be isolated from game servers for security, and is also relatively isolated due to the latency and bandwidth restrictions. The money spent on renting servers makes live easier for indie game developers. I'd rather pay for servers than deal with trying to make a peer-to-peer persistent world. like I said the server-client model is still used (not real peer-to-peer). and it's aimed for engines that already support players acting like servers at the same time (a listen server, or non-dedicated server), which UE3, CryEngine and Unity support. it's like FPS's where you can go to Multiplayer and click Host Game, and start playing while you're also the server. so no extra netcode is needed, except for the part of saving/loading characters into a webserver (which I had assumed). of course this way player-servers can cheat themselves, but so can anyone running their own UT3/BF/TF2 server can't they? it's just that like servant said, it's much more game-breaking to see someone cheat in their persistent RPG characters. A half-gig RAM virtual server running Linux is$6/month at interserver.net. For RPG-style games, that should be enough.

A bare-metal server, capable of doing FPS-type gameplay, is about $99 at game server hosting companies like ServerBeach, and you can find cheaper options if you look around. the$6 server won't be enough for a UDK/CryEngine/Unity game, which are the top indie/hobbyist third-party engines.

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 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.

Chosker - Developer of Elium - Prison Escape

### #8Servant of the Lord  Crossbones+   -  Reputation: 23358

Like
0Likes
Like

Posted 03 August 2013 - 11:48 AM

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.

Edited by Servant of the Lord, 03 August 2013 - 12:12 PM.

It's perfectly fine to abbreviate my username to 'Servant' rather than copy+pasting it all the time.
All glory be to the Man at the right hand... On David's throne the King will reign, and the Government will rest upon His shoulders. All the earth will see the salvation of God.
Of Stranger Flames -

[Need web hosting? I personally like A Small Orange]

### #9Toothpix  Crossbones+   -  Reputation: 810

Like
0Likes
Like

Posted 03 August 2013 - 09:09 PM

If you get a significant fan base, never underestimate their willingness to shell out cash and rent their own dedicated server for themselves. Of course, if you get this far you will want to encourage modding and writing plugins as much as possible to get the modders on board.

Just look at Valve multiplayer games like TF2. Not a whole lot of people play on Valve's "vanilla" TF2 servers. Most people play on community servers, and a vast percentage (not sure if majority) play on modded servers. Server mods for that game go from small changes to entirely new games.

Edited by MrJoshL, 03 August 2013 - 09:11 PM.

C dominates the world of linear procedural computing, which won't advance. The future lies in MASSIVE parallelism.

### #10hplus0603  Moderators   -  Reputation: 6496

Like
0Likes
Like

Posted 08 August 2013 - 11:01 AM

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

So don't build an ORPG that requires FPS-type physics to enforce the rules that matter!
enum Bool { True, False, FileNotFound };

### #11LordCashern  Members   -  Reputation: 109

Like
-1Likes
Like

Posted 20 August 2013 - 06:52 PM

Okay Chosker I personally believe in what your idea is, and I also believe that Servant of the Lord is also correct about cheaters. That and I have an idea if it's possible to do. When you make any game that has a high possibility for cheaters to do what they do best (cheat), and you make it a pc platform game, go ahead and include a console/command line feature.

!!!!!!!!!!!!!!!!!!!!!!!!!!But!!!!!!!!!!!!!!!!!!!!!!!!!!!

Have a limited number of of available commands ,it might also be a good idea to be have the user be able to combine some commands like in Linux with the alias function. And as a safe guard so that people can't just go on in and change the command line database (meaning add there own nonoriginal commands to the system, for the function of cheating of course) have multiple databases of commands that are hidden and absolutely must match. If they don't match then the game will shutdown and reset all commands and then revert the character to the last valid save spot. This might help assuming that it's all possible.

### #12hplus0603  Moderators   -  Reputation: 6496

Like
0Likes
Like

Posted 21 August 2013 - 02:47 PM

@Death the Kid: What you suggest will not defend against tools that attach to the process and let you read/write the memory of the program at will. Such tools exist, and are easy to come by, and some of them come with scriptable plug-ins for different games so you can have things like a dialog with a "increase money" window. Type a number, press a button, the game now thinks you have more money because the tool edited the "how much money do I have" variable in memory.

enum Bool { True, False, FileNotFound };

Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

PARTNERS