<URL: http://bugs.freeciv.org/Ticket/Display.html?id=39558 >
Michael Kaufman wrote:
> sorry, yes inventions are technically trinary, but for purposes of passing
> to the client, they're binary, since update_research() is called upon
> receiving a player_info packet.
Wow, is that wrong! I'll delete that terrible mistake as soon as I can
test it. All research and diplomacy and advances are handled and
verified in the server. The server version is canonical. It's hard
enough to keep things synchronized, without clients recalculating!
> Do not get me started on attributes. The faster they die a horrible death,
> the better we will all feel (except maybe Raimar), ....
I'll start a new report.
> I've heard the bit about premature optimization, but in this case, you're
> going backward.
Actually forward, fixing a horrible implementation flaw. It may not be the
final efficient answer, as sending the whole list is useless -- there will
never be more than 1 or 2 changes per player per turn.
While I understand from comments in some of the documentation that once
upon a time more intelligence was in the clients, that didn't work.
Professionally, I've successfully implemented a distributed game client
system (no servers at all), where every client made every calculation
independently, and verified the reputation of other clients. That
requires a serious up-front design.
And that's not what is done in this project.
Freeciv-dev mailing list