Skip to content
Lua client for the Cerveau game server.
Lua Other
  1. Lua 99.8%
  2. Other 0.2%
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
_creer/games/${lowercase_first(game_name)}
docs
games
joueur
.gitattributes
.gitignore
.travis.yml
LICENSE
Makefile
README.md
VagrantFile
arenaRun
main.lua
run
testRun

README.md

Lua Joueur Client

This is the client for the Cadre AI framework. It can play multiple different games, though you will probably only be interested in one at a time.

In general, try to stay out of the joueur/ folder, it does most of the heavy lifting to play on our game servers. Your AI, and the game objects it manipulates are all in games/game_name/, with your very own AI living in games/game_name/ai.lua for you to make smarter.

How to Run

This client does not work on the Campus rc##xcs213 Linux machines, but it can work on your own Windows/Linux/Mac machines. You just need to install lua 5.1 and luajit, both which are easy to install.

Linux

Make sure you have the package lua5.1, lua-socket, and luajit installed, then:

./testRun myOwnGameSession

Windows

Just download LuaDist. That package has everything you need to run the Lua client, and actually has LuaJIT to run Lua. Place it the contents anywhere, then make sure to add the path to the bin/ folder in LuaDist to your Path. Then you can:

lua main.lua GAME_NAME -s game.siggame.io -r myOwnGameSession

Vagrant

Install Vagrant and Virtualbox in order to use the Vagrant configuration we provide which satisfies all build dependencies inside of a virtual machine. This will allow for development with your favorite IDE or editor on your host machine while being able to run the client inside the virtual machine. Vagrant will automatically sync the changes you make into the virtual machine that it creates. In order to use vagrant after installing the aforementioned requirements simply run from the root of this client:

vagrant up

and after the build has completed you can ssh into the virtual environment by running:

vagrant ssh

From there you will be in a Linux environment that has all the dependencies you'll need to build and run this client.

When the competition is over, or the virtual environment becomes corrupted in some way, simply execute vagrant destroy to delete the virtual machine and its contents.

For a more in depth guide on using vagrant, take a look at their guide

Windows

Using Vagrant with Windows can be a bit of a pain. Here are some tips:

  • Use an OpenSSH compatible ssh client. We recommend Git Bash to serve double duty as your git client and ssh client
  • Launch the terminal of your choice (like Git Bash) as an Administrator to ensure the symbolic links can be created when spinning up your Vagrant virtual machine

Make

There is a Makefile provided, but it is empty as Lua is an interpreted language. If you want to add make steps feel free to, but you may want to check with an Arena dev to make sure the Arena has the packages you need to use in make.

Other Notes

Newer versions of Lua will probably work, but they are untested. Please tell the arena team if you wish to use an updated version and compete.

It is possible that on your Missouri S&T S-Drive this client will not run properly. This is not a fault with the client, but rather the school's S-Drive implementation changing some file permissions during run time. We cannot control this. Instead, we recommend cloning your repo outside the S-Drive and use an SCP program like WinSCP to edit the files in Windows using whatever IDE you want if you want to code in Windows, but compile in Linux.

The only file you should ever modify to create your AI is the ai.lua file. All the other files are needed for the game to work. In addition, you should never be creating your own instances of the Game's classes, nor should you ever try to modify their variables. Instead, treat the Game and its members as a read only structure that represents the game state on the game server. You interact with it by calling the game functions.

You can’t perform that action at this time.