By the time I worked through everything else, and added the --disable-nls, I 
forgot the --enable-client=web :-(


Now, however, I'm stuck

It would seem that make can't find soap-server.h nanohttp-logging.h and then 

I mucked with symlinks in /usr/include to make it get past all that...  
Probably a Bad Idea...

Now I have this:

gcc  -g -O2 -pthread -Wall -Wpointer-arith -Wcast-align -Wmissing-prototypes 
-Wmissing-declarations    -o civclient   audio_sdl.o attribute.o 
citydlg_common.o cityrepdata.o civclient.o chatline_common.o 
connectdlg_common.o climisc.o climap.o clinet.o colors_common.o control.o 
editor.o ggzclient.o goto.o helpdata.o mapctrl_common.o mapview_common.o 
messagewin_common.o overview_common.o packhand.o packhand_gen.o plrdlg_common.o 
options.o repodlgs_common.o reqtree.o servers.o text.o themes_common.o 
tilespec.o audio.o audio_none.o ../utility/libcivutility.a  
../common/libcivcommon.a ../common/aicore/libaicore.a agents/libagents.a 
gui-web/libguiclient.a ../utility/libcivutility.a  ../common/libcivcommon.a 
../common/aicore/libaicore.a agents/libagents.a gui-web/libguiclient.a  -lm 
-lSDL -lpthread -lSDL_mixer   -lbz2 -lz
gui-web/libguiclient.a(gui_main.o): In function `ui_main':
/home/rlynch/www/freeciv/freeciv/client/gui-web/gui_main.c:112: undefined 
reference to `soap_server_init_args'
/home/rlynch/www/freeciv/freeciv/client/gui-web/gui_main.c:115: undefined 
reference to `herror_code'
/home/rlynch/www/freeciv/freeciv/client/gui-web/gui_main.c:115: undefined 
reference to `herror_message'
/home/rlynch/www/freeciv/freeciv/client/gui-web/gui_main.c:115: undefined 
reference to `herror_func'
/home/rlynch/www/freeciv/freeciv/client/gui-web/gui_main.c:117: undefined 
reference to `herror_release'

And about 40 other missing saop_* stuff. :-(

Any ideas?

From: Andreas Røsdal [andre...@pvv.ntnu.no]
Sent: Monday, June 15, 2009 3:06 PM
To: Richard Lynch
Cc: freeciv-dev@gna.org
Subject: Re: Freeciv Web Client

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