Hello Richard,

On Mon, 15 Jun 2009, Richard Lynch wrote:

> Are you actively maintaining the Freeciv Web Client?  Or is anybody?...

No, I'm not maintaining the existing web client. I would still like to
see a web client made, but this is a difficult thing to do.

> I've been trying to make it go, but...
> It seems to fire up the GTK client, which from reading the JSP source, it's 
> supposed to do.

It seems to me that you have compiled the GTK client, not the web client 
from source. You have to compile Freeciv with this parameter:
./autogen.sh --enable-client=web

Here is some old documentation about compiling:
(Note that the webclient was rewritten after that documentation
was made, so there are many changes)

> So I presume I should pretend that's happing on the server, "invisible" to me 
> at the web client.
> But the web client has no map, no overview map, and a lot of 0.5fps 500 
> Server Error
> The GTK client is sending a message about "require capability"  It goes by 
> too fast to really read it...
> I've added a log output to the civclient startup, and it only says "No sound 
> support" which I would hope wouldn't kill the whole thing...
> Any idea where I could get more info?

Yes, it seems that you are running the GTK client, not the web client.

> Thanks for any help!
> I'd also consider starting over, with my own client, maybe...  Any 
> suggestions on docs to read?

Unfortunately, you will have to start over, because some major 
architectural changes will be required. What I learned from 
implementing the current web client, is that these isssues will have to be 

- Performance of the mapview is very important, and difficult to get right 
when a lot of information is transmitted over the web. Both packet latency 
and bandwidth is critical.

- The HTML5 canvas element doesn't have sufficient performance and support
on Internet Explorer to render isometrix graphics the way Freeciv does.
I used Excanvas for Internet Explorer, but the performance is horrible.
So canvas is not mature enough yet. I would recommend to investigate 
Flash, or wait for HTML5 to be implemented properly by Microsoft. 

- Rather than using AJAX for everything, I think that using
Comet will reduce the network latency a lot for packets going from the 
server to the client. This means that the client doesn't have to
poll the server so frequently. So my advice here is to scrap AJAX,
and go for Comet. 

- Internet Explorer has a limitation where only one image can be 
downloaded at a time, so downloading the game in IE takes a very long time
for more than a few 100 tiles for Freeciv. Some solution for this should 
be found.

- In the current web client has the mapview rendering logic on the server 
side (in the civclient C process), and transmits which tiles are 
supposed to be drawn to the client using compressed and diffed JSON.
I think that this has to be changed to that the client side Javascript
contains more game logic, and is able to draw the entire mapview based
on game data stored in variables on the client. Initially, I wanted the
client side Javascript to be as think and lightweight as possible,
and simply to operations sent from the server. This has proved to be
too slow, because too much data was transmitted over the network.
To sum up: more game logic and game data needs to be implemented on the 
client side, so that network traffic between the server and Javascript web 
client is more like between the current C civserver and civclient.

Take a look here:  http://code.google.com/p/freeciv-forever/

I might be interested in cooperating in developing an improved web client 
some time...

  - Andreas

Freeciv-dev mailing list

Reply via email to