I’m not planning on making more than $50 in the lifetime of this game I’m working on in my spare time (It’s basically just online Checkers with some adjustments). My “main” game isn’t multiplayer so I don’t need to worry about it. The next game after that will be multiplayer, though, so maybe that’s when this matters BUT:
I’m not distributing this game on Steam. Which means network connections have to be generated from somewhere else. At the moment I’ve chosen to simply use Evolve (like Hamachi) + direct connect with a false IP provided by Evolve but am worried that players might be put off by the effort required and, additionally, am concerned that a feedback loop of “I went through the trouble of setting up Evolve, saw no one available to play, and thus wasted my time.” would kill the multiplayer completely as what few users might have been interested would be unlikely to attempt it knowing there’s no one there. So what could have been about 5 users throughout the day is now… 0. Always.
Arguably, and a thought I frequently have, is that most players will only wish to play with their friends and Evolve serves as a “I don’t have to portforward” thing and there’s an additional benefit of having it available to connect to someone you may not trust with your IP Address. So. Woo. Additionally this game isn’t very “sticky” and is mostly just a thing I’m doing in order to learn + it’s something a few people said they’d be willing to pay for. Not the craziest hype train in the world. So most likely this isn’t even demanding a backend server that will provide sessions / matchmaking for players. But let’s pretend for a moment that I’ve got an 800 player multiplayer game that’s got a few NPCs and about 6 players per session and, at peak times, idk 100 sessions let’s aim high.
I see three options:
Shoot my game in the foot by telling players “Yeah this is meant to be played with 6 people and I’ve designed it for that but you have to find other people to play with I won’t help you BUT I’ve got an official Evolve Party here: (LinkGoesHere) and people will be there!” And then people join non-dedicated servers and I 100% can’t assume that I can sell skins, crates, or any other micro-transaction (or, more likely, distribute nice things for free and let players enjoy showing off to one another) because cheating in some form will happen. A server could be hosted that exploits this or players might just be able to edit their save files.
Distribute my game ONLY on Steam (I’m not sure but I think that only Steam-bought / licensed games can access Steam services such as the Steam Network) so that I don’t screw over any of my users by splitting them up in regard to the multiplayer BUT specifically I’d be replacing Evolve with Steam. Which would be better because Sessions could be hosted like that. And Forums / RSS or something could replace the Evolve chat. Not too bad. Still no way to prevent cheating.
Dedicated Server. The full monty. I can’t host anything on my home network because DDOS exists + Electricity + Upload Bandwidth isn’t 10/10 + I can’t risk this being unavailable. With this method I can distribute my game anywhere because there’s no access restriction based on where the user bought the game. That alone isn’t worth the monthly cost of a Dedicated Server, though. I’d almost certainly not even break even on that. But if I then assumed that by only hosting games on this Dedicated Server and storing all User Data on said Server I could ensure that cheating content would be either very difficult or simply not possible without hacking into the Server, modifying the User Data, ect. Which means I could do stuff assuming that players can’t cheat to obtain those items. The problem is that I’d need to make enough money to pay for the server. Which means either reducing the cost of the server by figuring out how to make that content thing possible by hosting save data and somehow preventing exploits from happening (no clue how that would be possible) or selling content that would only be possible by doing this… or a subscription fee which isn’t exactly popular.
So finally the questions:
- What is required of a Dedicated Server to host, say, 100 games of that caliber? What about 25? Is there any reason to use Windows over Linux (Centos or w/e)? I know, for instance, that if I want to host 5 Minecraft Servers on my PC I have to port forward 5 different Ports and run each Server on a separate port and have everyone connecting specify the port via the standard IPV4:PortNumber stuff. Would I be able to do that in UE4 on this Server by just having an Array of “Used Ports” and an Array of “Unused Ports” and just creating Sessions on each Port and sending Clients a “message” that’s effectively "You there. Connect to IPV4:Port " and have it just run that command?
I ask because some services offer “Multiple Dedicated Servers” “Multiple Virtual Dedicated Servers” or some other form of saying:
Option 1: Host a single Session. Choose this if you just want to play Minecraft with 30 friends on the same Server.
Option 2: Host Several Sessions. Choose this if you want to play Minecraft on multiple Servers.
And it’s usually expensive. Like $90 a month seems to be the standard.
- Am I missing an option? Honestly I’m just wanting to prevent players from feeling hurt by players exploiting the game to get something they worked hard for or, worse, paid for. I don’t want to engage in the unwinnable “Stop Piracy” or “Stop Cheating” war because, frankly, it’s not going to make me feel better, make money, or work in the long term. But I don’t think League of Legends would sell very many skins, champions, ect. if you could just copy paste someone’s save file or run your save file through HexEdit or run a cracked client. Not to mention that if it were vulnerable anywhere else, even with great save security, you could just exploit some other part of the client (perhaps the shop) into thinking you bought something and then telling the save file that you did, in fact, buy something, thus making the fact that your save file system is fort knox… pointless.
So… any thoughts? The game that I want to make once I’m able to make assets well enough (Modeling, texturing, animation, ect.) has a pretty large backbone founded in collecting things, unlocking things, ect. And having it all available would affect the game and community pretty heavily. I’m including it as part of the game because it makes a lot of sense and is a system that should lead to a lot of enjoyable moments for players. Think more Diablo / Path of Exile rather than Call of Duty Supply Drops.
I’m also aware that this problem could also be ignored if I just assumed people only play with their friends and they’d figure out what’s socially acceptable for themselves ect. ect. But that’s… kind of just not what I want the game to be. But money is needed to live and make games. Is there a solution here? Or is it basically “If you want to make a game that requires anti-cheat on any level it should have a strong enough income to support such a thing.” Sort of… thing? I mean, I could start with bare-bones and then just create “Battle.net” later on and be like “This is a separate service and you have to transfer characters to it” ?
I’ve really put a lot of thought into this so I apologize if my delivery was poor.