Follow-up Comment #4, patch #4156 (project freeciv):

> here's a brain-dump of my thoughts on the subject
Thank you for your feed back, Jacob. It is good to have a fresh pair of eyes
look at the subject. When you read my reply please remember that I'm not a
native speaker. If I got the tone wrong try to remember that I'm not trying to
insult you.


>  One reason is that if a bug is found in common code implementing game
rules, only the server needs to be updated to fix the issue.
Good point. Even if the server sends the meta knowledge it would not fix
reasoning bugs in the client. You mention the information leak (something I
wish I had discovered before writing my own wall of text about it ;) ). A
possible solution that would avoid leaking any information at all is to have
the server send true, uncertain or false. To add a price (movement points, the
life of the spy, etc) for the information like you (and Cazfi in bug #21105)
mentioned is also possible. I have to think more about this issue.


> I think it would help to have examples of rules that you hope to implement
through this.
Originally it was about fixing a problem I had introduced. Now I can imagine
many different uses for it. It can be technical like a counter intelligence
office building. It can also be something else, like a form of government that
permit the player to poison cities belonging to less technologically advanced


> It's not obvious that's always what you want; depending on what you're
modelling, the spy might realise full well on that her failure is due to the
Public-Key Cryptography tech possessed by her target, once she's tried
intercepting the communications.
Agreed. I tried to improve the situation over the silent failure. I wanted to
communicate that the reason may be unknown. I didn't want the game to "break
the third wall". The plan was to get back to it later. Finding a way to make
it configurable or come up with a better formulation is on my TODO list. If
you think "Your Spy was unable to Sabotage Unit." is better I'll change it to
that. (Unless you wish to change it your self)

> The UI for presenting uncertain actions to the player is problematic.
Agreed. I tired to improve the situation over not presenting them / presenting
them unmarked. When adding support to the Qt client I added the standard
warning icon. (Not sure if that is better) A "perfect" solution to this is
still on my TODO list. How would "May be impossible at the moment" in a tool
tip sound?

Should I start opening issues in the patch tracker for the stuff I have
improved but aren't 100% happy about?

> I'd like to know more about your plan of moving "meta knowledge" into a data
The idea is a common data file no matter what rule set you use. This avoids
maintaining a big "table" in C. It allows the server to send updated meta
knowledge to the client (not relevant if its use is moved to the server). It
is usable by non omniscient AIs not using the Freeciv C code that wish to plan
many steps ahead.

> I don't see any sane way this sort of logic can be represented other than
code, and compiled-in C code at that
I was thinking about using a decision tree structure. Each attribute[1] is
tested only once (if at all). C code for checking each attribute has to be
added. The knowledge about what attributes proves that a requirement is known
is data. (When it comes to the file format many options are on the table)

[1] "Can I see this tile?" "Do I have an embassy with this player?"


Reply to this item at:


  Message sent via/by Gna!

Freeciv-dev mailing list

Reply via email to