-
Notifications
You must be signed in to change notification settings - Fork 0
The backend for Arcomage-like games.
License
GreatEmerald/libarcomage
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
libarcomage v0.2.0
Revision 2016-07-03, GreatEmerald
The backend library for card games, where two players use resources to play
cards with a variety of effects that help build their own tower or destroy the
opponent's tower as quickly as possible.
The library written in D, and uses Lua scripts to allow users to easily create
new cards or card decks, or to alter the computer AI. These changes apply to
any frontend to the library.
Make sure to install a frontend, like DArcomage or CLArcomage, to be able to
actually play.
========
BUILDING
========
Building libarcomage itself is only relevant to Linux systems, as Windows does
not yet support building dlls from D source code. For build instructions there,
refer to build instructions for each individual frontend.
To build the shared library on Linux, you need:
Mandatory:
DMD 2.052+ (Digital Mars D compiler):
http://www.digitalmars.com/d/download.html
Lua 5.1 (liblua5.1-dev on Debian and lua-devel on openSUSE)
Make (GNU Make, gmake)
CMake 3.0+ (cmake)
Optional (bundled):
LuaD (libluad)
NOTE: D compilers other than DMD were not tested, but might also work. However,
the CMakeD build system may not properly support them at this time. Patches
welcome.
If you have cloned the repository from git, and don't have LuaD installed, then
enable the bundled LuaD by updating git submodules:
git submodule update --init
The build process involves changing directory to "build", running CMake, then
running make and finally install with either make install or by using CPack to
generate an RPM, then installing it with a native package manager. You can pass
the build type to CMake to change the build optimisation. All the commands, in
short, are:
cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
make
By default, it is assumed that you have LuaD installed as a shared library. If
you want to compile it statically into libarcomage itself, tell CMake about it:
cmake -DCMAKE_BUILD_TYPE=Release -DDYNAMIC_LINKING=NO ..
If the library gets installed to the wrong lib{,32,64} directory, you can pass
it to CMake too:
cmake -DCMAKE_INSTALL_LIBDIR=/usr/lib64 ..
To install directly:
make install
Or to make an RPM:
cpack -G RPM
Which you can then install, for instance:
zypper install libarcomage*
=========
STRUCTURE
=========
This project includes several directories, whose use may not be obvious at first
glance, so I have provided an overview of the directory structure for the
library sources below.
+-- build
+-- candydoc
+-- cmake
+-- include
| +-- LuaD
+-- lua
| +-- Arcomage
| +-- MArcomage
| +-- Touhou
+-- src
+-- utils
|-- CMakeLists.txt
|-- COPYING.TXT
|-- CREDITS.TXT
|-- DESCRIPTION.TXT
|-- README.TXT
build is a placeholder directory where all the files generated by cmake should
go to.
candydoc contains the files of CanDyDoc, the D documentation framework.
cmake contains the CMakeD module that tells CMake how to compile D code.
include contains the source code of LuaD, used to read Lua-based configuration
files.
lua contains the Lua scripts for the game. They control the configuration,
manage installed card decks and define computer AI, and thus are needed to run
the game. lua/Arcomage contains the information about the stock Arcomage deck,
lua/MArcomage will contains some of the cards used in the MArcomage project, and
Touhou is a deck based on spell cards from the Touhou Project.
src is the D source code. That's the crucial (and the most interesting) part of
the project, since the D code is at the core of the program and manages the
whole logic of the game, such as player statistics, card queue, executes actions
performed by cards etc.
utils contains miscellaneous utilities for building the code. They were used
before the transition to CMake. Now their use is discouraged, but they are
fairly simple and thus are useful to see what is supposed to be happening during
compilation under the hood (but they are static, so likely won't work without
adjustments).
CMakeLists.txt is part of the CMake build system, not a human-readable file.
COPYING.TXT is a text file that contains GPL licensing information.
CREDITS.TXT is a text file that notes people who have contributed or helped the
project in some way, as well as the libraries used by the project.
DESCRIPTION.TXT is a package description, used by CPack to make nice installers.
README.TXT is this file, in case you haven't noticed :)
About
The backend for Arcomage-like games.
Resources
License
Stars
Watchers
Forks
Packages 0
No packages published