But why, as a game developer, would you write two completely different versions of your netcode?
why would there be two different versions? you have a small section where you can change whether the host is one of the player's machines, a third party server, or an official one that requires authentication. FPS games like TF2 already do this. I feel like we're talking about two different things here...
And what do you do about custom games? Do they use battle servers?
they can either be local hosted or hosted on a third party server. for something like a tournament the sponsors would provide the servers (if they felt it was necessary). again with the TF2 analogy, you have leagues where one of the teams provides a server for the match and if there are issues you swap to someone else's server.
Then you have to worry about line-of-sight calculations on the server. This wouldn't really reduce bandwidth all that much, since the clients would still have to send you all of the information on all of their units every tick; still much more expensive than simple command passing. Then you would have to perform calculations on that data, and finally you would have to send the relevant details to the clients. No matter which way you slice it, you're suddenly forced to dedicate substantially more server resources to every single player in a game.
the server would have to do LoS calculations, which would increase its load, but it would only have to send data for units that would be visible or nearly so to each player. information on a howitzer idling across the map wouldn't be sent by the server because the receiving player has no need to know about it at that moment. |
So a standalone expansion is not an expansion at all, its actually a game?
Even if it is (for this argument's sake) just a new campaign built within an existing game?
tough call as that's really blurring the lines. what those are is basically an expansion that you don't have to own the base game to play. not really sure how to classify those (my inclination is to say expansion because while they don't REQUIRE the base game, they severely limit your options without it.
*shrug* call it what you will. |
i would actually argue that CoH2 has made a progressive move with the battle servers as most of the RTS games i'm familiar with (all older) do not have anything other than local host. what i'm suggesting is what i see as a further step to improve the playing experience. i get that this is a copypasta but i'm going to address what i see even though i've already addressed at least one issue.
In an FPS, you rarely have more than 128 players in a single server (competitive games usually only have 10-20, depending on the title). That means the server only has to keep track of the locations of 128 entities, and calculate hitboxes on those entities. It also only has to send very limited player data, such as location and player action (firing, reloading, changing weapon, etc.). Even though FPS games usually run at a significantly higher tickrate than RTS games (CoH's simulation engine runs at around 8 ticks per second, compared to between 64 and 128 ticks per second for CS:GO games), it still uses significantly less bandwidth than an RTS that has to transmit location, health, entity, and action data for potentially hundreds of different units.
not sending data for unseen units would reduce the minimum work load and bandwidth required by the server as it would only have to receive the data from each player on units and send to player units that close to being visible.
Servers have to be globally located in order to accommodate people around the world, have to be maintained, and most importantly, have to be able to handle the immense bandwidth that a client-server game with large unit counts is going to produce. That last point is the most expensive, and one of the main reasons (along with having to recode most of their engine) why Relic will never adopt such a structure for CoH2. Maybe for CoH3, but even then it's unlikely.
This is true but it would only need to be done for ranked games which would help reduce the cost. custom games do not need this level of control to prevent cheating; it's a custom game. in their case 3rd party servers rented by players would be fine and there's always local host for the times when you don't care or there are no other options available.
So no, building an RTS with a client-server model isn't impossible, especially if you have low unit counts like CoH does. But it's expensive, and in the case of CoH2 it would require a major rewrite of most of their codebase. In other words, it's completely impractical to hope for such a system to be implemented in CoH2.
again, i realize this is copypasta but i'm not proposing this be implemented into CoH2; it would require a the amount of work that is only done on major engine versions.
|
Is there any definition in all this new user generated content business that clearly defines when a game stops being a mod and starts being a standalone game? (a la DayZ)
when it is standalone it's a game. when it's not it's either a mod or an expansion or DLC or a patch. |
not necessarily. fps games solve the problem quite nicely by allowing both private servers and individual hosting. there isn't any reason an RTS game couldn't do the same thing. I find CoH2's approach kind of odd because they went half way. i understand doing something like battle severs for ranked matches but there isn't any reason to use them for custom games.
and yes, implementing something like that with an existing game wouldn't work; it's far too much work. you would have to build the engine with the capabilities to hide units from the beginning or at least work it in with a major update (like essence 5 for DoW3 as an example). |
I hardly see dragging a line across the map, as any more skill than manually targeting a bunched up squad, especially as you can do that 'skill shot' into the FoW, and it will hit exactly where you want it to, without any RnG involved like barrage...
you setup the line, and the other player hears it fire. the targeted player has a couple of seconds to guess which way you're firing and react accordingly. it's enough most of the time but setup teams have problems and pathing sometimes fucks things up. i don't usually lose a lot of squads to a wurfrahmen unless there are pathing issues. the only problem i see with the unit is the lethal aoe, which is quite big, and how hard it is to kill. again though, both are mitigated in smaller games by the timing gate on the unit. |
i get the frequent crashes |
It's impossible to prevent maphacking in a deterministic simulation game engine, which every single RTS uses.
i don't know how hard it would be to code and it would require servers but you could not report units to player that the player can't see. it would require the server to run LoS checks though. obviously this isn't something to add to CoH2 but to implement into a new engine. this would also help prevent the AI from knowing where every unit is, which is something that has always bothered me. |
Is that really true? I know that when I use the 120mm (or any indirect for that matter), I always manually make the mortar fire upon any squad I see bunched up.
the wurfrahmen, not the 120. the 120 is most certainly not a skill shot. |
should i say "iWipe" ?
no because you're clearly on the receiving end. seriously, don't expect to be taken seriously with comments like that. the wurframen is a questionable unit but it has some pretty major drawbacks, particularly in smaller games, and it is a skill shot, which none of the other artillery are, baring precision strike. |