[freeciv-ai] Hi, I'm back. aiclient
[Top] [All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
Hi,
I was "working" with Mitch Davis and other some years to go to build an
AI,
but finally I never did anything. I did my final year work about AI in a
"freeciv-like" game, which was interesting but not what I had in mind. I'm
the author of the wegener generator map, included in the ftp server. And my
name, with the old email (irmina) appears in the "people" section of freeciv.
After having thinking and experienced a lot about, AI development and
open
software, I think that "big leaps" are much harder to take in soft.
development.
I think that anybody that has a slight idea of "freeciv AI" knows to
facts:
- Rules are hardcoded in C.
- It'd be a great idea to split "decision-taking" and "decision-execution" .
- AI should be a client, as civclient (almost)
I'm not going to plan any big development or anything that cost a lot
of
effort on any developer. Besides, due to the lack of time, I'll keep coding
collaboration in a 0 status, at least the freeciv C code.
Well, that's my idea. freeciv playing management is hard, I mean, when
you
have 100 cities and 300 units it's hard to move them... ok? Fortunately, we
DO have people with motivation enough to write war clients, that means that
there's a small ammount of energy which is being spoilt by the main freeciv
code. There're many ways of starting an AI coding. We may start here. War
clients. How ? With a simple small step.
Per is right, when he says that civlog has all the info about the game.
But it's in the server. Just imagine this: a small client of the civclient
program, thus the structure of freeciv would be:
aiclient --> civclient --> civserver , where --> is a socket connection
What's the flow in aiclient--> civclient ?
Well, as I say, any user wants to manage cities and units the right way.
aiclient 0.0.1 has this input from civclient (to start with):
- city/ production \n . So this can be parsed by a perl, prolog or a python
code ( that is aiclient may written in anything) . This says to aiclient
what's everyone producing. This is a "get" instruction.
- city-prod-change / new production \n . This is a "set" instruction.
This is a model of the kind of SNMP, set/get-next/get.
So you may have a script ( aiclient, connected by a socket to civclient) to
change the prod of all your cities coding in the aiclient in your favourite
language.
This has several advantages:
- As I say, people want to improve the playibility of the game, and get more
power.
- The code of freeciv remains untouched, almost, just civclient must fake the
orders coming from aiclient and send what receives from civserver to
aiclient. So great development stability.
- Small steps, but real advances in every single step.
As you may imagine, the aiclient will converge over the time into a superb
aiclient for artificial players (just connecting them directly to civserver).
Well, tell me what you think. I may help in aiclients written in python and in
guidance and profecy (as always :) ) .
---
mga
- [freeciv-ai] Hi, I'm back. aiclient,
Manuel Gutierrez Algaba <=
- Message not available
- Message not available
- [freeciv-ai] Re: Hi, I'm back. aiclient, Manuel Gutierrez Algaba, 2003/06/29
- [freeciv-ai] Re: Hi, I'm back. aiclient, Raimar Falke, 2003/06/30
- [freeciv-ai] Re: Hi, I'm back. aiclient, Manuel Gutierrez Algaba, 2003/06/30
- [freeciv-ai] Re: Hi, I'm back. aiclient, Raimar Falke, 2003/06/30
- [freeciv-ai] Re: Hi, I'm back. aiclient, Manuel Gutierrez Algaba, 2003/06/30
- [freeciv-ai] Re: Hi, I'm back. aiclient, Raimar Falke, 2003/06/30
- [freeciv-ai] Re: Hi, I'm back. aiclient, Manuel Gutierrez Algaba, 2003/06/30
[freeciv-ai] Re: Hi, I'm back. aiclient, Raimar Falke, 2003/06/30
|
|