Skip to content

Freeciv.net is an Open Source strategy game which can be played online against other players, or in single player mode against AI opponents.

License

Notifications You must be signed in to change notification settings

tvon/freeciv-web

 
 

Repository files navigation

THE FREECIV WEB CLIENT
----------------------

This is yet another rewrite of the Freeciv web client, which
will make it possible to play Freeciv in your web browser.

http://www.freeciv.net

This software is licensed under the GNU AFFERO GENERAL PUBLIC LICENSE.


Contact: Andreas Røsdal  - andrearo@pvv.ntnu.no


Overview
--------

The Freeciv Web client consists of these components:

* freeciv - a fork of the main Freeciv C client and server.

* freeciv-proxy - a HTTP proxy which allows web client users
  to connect to Freeciv civservers. This proxy converts C packets
  to and from JSON.

* freeciv-web - a Java web application for the Freeciv web client.
  This application is a AJAX application which consists of HTML,
  Javascript, images and JSP files which make up the application
  viewed in each user's web browser. 

* freeciv-img-extract - extracts the images of the Freeciv tileset,
  and generates a version for the web. This produces a tileset PNG 
  and Javascript. Run this to sync with the upstream Freeciv SVN 
  repository.

* publite2 - a simple way to launch multiple civservers. 

* freeciv-music - contains music which can be played during the game.


System Requirements
-------------------

- Resin 4.0.1 - http://www.caucho.com/

- Java 1.6.0 SDK - http://java.sun.com/javase/downloads/index.jsp

- Python 2.7 - http://www.python.org/

- Mysql 5.0.x - http://www.mysql.com/

- Maven 2 - http://maven.apache.org/download.html

- Probably some Linux distribution.

- Firefox

- Firebug for debugging - http://getfirebug.com/

- Closure Compiler - http://code.google.com/intl/nb/closure/compiler/
  (Bundled in source code, no need to download.)

- curl-7.19.7 - http://curl.haxx.se/

- OpenSSL - http://www.openssl.org/

- nginx 0.8.33 - http://nginx.org/

- simplejson 2.1.1 optional: http://pypi.python.org/pypi/simplejson

Compiling and running the Freeciv Web client
---------------------------------

1. Install the system requirements. Install Resin in /opt/resin

2. Create mysql database called 'freecivmetaserver'
   Import mysql dump into a MySQL database from:  /publite2/mysqldump.sql.bz2

3. Build and configure freeciv-web. 

   - Edit /freeciv-web/src/main/webapp/freecivmetaserve/php_code/settings.php.dist,
     rename this file to settings.php, and update values for fcdb_username and fcdb_pw
     to your MySQL username and password.
   - Edit /freeciv-web/src/main/webapp/WEB-INF/resin-web.xml.dist, rename this
     file to resin-web.xml, and update the values for your MySQL database.
   - Run 'build.sh' in the freeciv-web directory

4. Compile and install Freeciv. This involves running the following commands:
   cd freeciv 
   ./autogen.sh --enable-client=no
   make
   make install     (as root user)


5. Start resin with these commands:  
   cd /opt/resin/bin
   ./resin.sh start

6. Start publite2:
  Run publite2_single.py in the publite2 directory.

7. Run the freeciv-proxy:
  Run run.sh in the freeciv-proxy directory.
 To debug, check the proxy debugging page: 
http://localhost/civ/status
http://localhost:8082/civ/status

8. Start nginx on port 80 as root.

9. Start the web client in your browser:
   Point your web browser to http://localhost/

10. Continue to play the game. 

FIXME: Had to add -lssl when compiling server...

- create .awsAuth and change mode like this:  chmod 600 .awsAuth


Also: 
Set ulimit -n 65535 in /etc/profile
and add some TCP/IP tuning in /etc/sysctrl.conf

TODO:
-----

- Make goto lines wrap in X direction of the map.
- Show city revolt graphics
- Show attack animation.
- Opera 11 broken in jQuery 1.5.x.
- WebGl?
- Port to Python 3.2
- Show borders
- Saving in the client side.
- Show city tile output in city dialog.
- Playback of games.
- HTML5 Web Sockets.

About

Freeciv.net is an Open Source strategy game which can be played online against other players, or in single player mode against AI opponents.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 82.3%
  • JavaScript 9.5%
  • C++ 2.4%
  • Python 1.5%
  • PHP 1.5%
  • Lua 1.4%
  • Other 1.4%