A lua coding game
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
client
docs/developer
lua-quadtree
lua-sha2
visualstudio
.gitignore
AUTHORS.md
COPYING.txt
Makefile
README.md
accounts.lua
api.lua
clientstruct.h
code.lua
config.h
config.lua
filelist.c
filelist.h
freelater.c
freelater.h
gameround.lua
httpparser.lua
httprequest.lua
ipcheck.c
ipcheck.h
ipinfo.lua
log.lua
logger.c
logger.h
luaclientptr.c
luaclientptr.h
luahelpers.c
luahelpers.h
main.c
main.lua
map.lua
math.lua
memorylimit.c
memorylimit.h
notes.txt
os.h
os.lua
oslistdir.c
oslistdir.h
oslog.c
oslog.h
ospath.c
ospath.h
player.lua
server.conf.example
sitedata.lua
sockets.c
sockets.h
strdup.c
strdup.h
string.lua
table.lua
utf8.c
utf8.h

README.md

TASK WARLORD - The ultimate coding game!

Introduction

This is an awesome coding game with a futuristic computer world where players need to provide Lua (http://www.lua.org/) code to make their armies do the right thing - which is of course to win.

Is this game free? Yes it is: it is licensed under the terms of the GPLv3 with an exception that allows for OpenSSL linking - check out the license file and the first lines of the source code files, e.g. the main.lua file, for details.

Who made this? See the AUTHORS.md file for a list of authors and integrated other projects which are under different licensing originally than Task Warlod itself (usually more liberal).

How to run the server

To start the server, run the program named taskwarlord. (Possibly named taskwarlord.exe on windows)

Note: If there is no taskwarlord program present, you need to compile it first (see below).

Now, players can already connect. Read "How to administrate the server" for more server details if you want to.

How to play

Simply connect to your server with a web browser at port 4939!

The client contains a player manual that should teach you the most important basics. Beyond that, make sure to keep experimenting and have fun. :-)

How to compile

(If you managed to start up the server, this section is not relevant to you)

To compile the server, make sure you got GNU make installed (this should always be the case on Linux).

  1. Install Lua 5.2 system-wide if you haven't done so. Make sure to include the "dev" package on Linux with the header files.

  2. Install libicu with dev packages.

  3. Now open a terminal, enter the main task warlord and type: make

  4. If the compilation fails, you may need to open up the Makefile in a text editor and adjust the names of the lua header and library files

Done!

If you want to compile on Windows, check the Windows build docs.

How to administrate the server

1. Configuration

Copy server.conf.example to server.conf to get a nice server config. Read and change your new server.conf to your likings. This allows you to change the server's displayed name and more.

2. Runtime data

2.1. Location of all data

The server stores accounts registered by the players and possibly other things. The folder containing all of that is:

  • Windows: %localappdata%\Task Warlord\
  • Linux: ~/.taskwarlord/

(the folder will only exist if you ran the server at least once)

Due to the sensitive nature of account data, don't share those folders.

2.2. Wipe all player accounts

Simply remove this directory to wipe all player accounts:

  • Windows: %localappdata%\Task Warlord\accounts\
  • Linux: ~/.local/share/taskwarlord/accounts/

Note: You really shouldn't do this while the server is running though!

2.3. World data

The world is randomly made up on each server start and it is never stored on disk.

3. HTTPS

Note: HTTPS is broken right now. This notice will be removed once it is actually fixed.

If you want your players to access the server safely, you can enable HTTPS support in the game server.

To do that, set the sslCertPath to the server's .crt file and the sslKeyPath to the according .key file (see server.conf.example for an example).

A note about the certificate:

  • if you use a self-signed certificate, your players can only safely connect to you if they know the fingerprint of your certificate and they manually compare it. Otherwise, albeit encrypted, your players could still be subjected to Man-In-The-Middle attacks without being aware.

  • therefore, if you can, make your server reachable under an actual internet domain instead and get a proper certificate accepted by major browsers to make connecting easier and safer for your players. (this is probably only worth the effort if you plan to operate the server for a longer time though)