choria - Finally, an MMORPG that's all about grinding and doing chores.
by Alan Witkowski
https://choria.gitlab.io

----- VERSIONS -----

You are on the legacy version

choria classic - 2008-2015
choria legacy  - 2015-2022
choria new     - 2019-?

----- DOWNLOADING -----

Download and extract the latest choria-*-src.tar.gz from https://gitlab.com/choria/code/-/releases

OR

Clone the repository:
git clone git@gitlab.com:choria/code.git --recurse-submodules --branch legacy_dev choria_legacy

----- BUILDING ON LINUX -----

-- Dependencies required --
Ninja
CMake 2.8.12+
OpenGL 3.3+
SDL2
SDL2_image
OpenAL
libvorbis
libogg
FreeType2
SQLite 3.25+
zlib
pthreads

-- Installing dependencies on Ubuntu 20.04 --
sudo apt install ninja-build cmake build-essential libsdl2-dev libsdl2-image-dev libopenal-dev libvorbis-dev libfreetype6-dev libsqlite3-dev

-- Installing dependencies on Arch Linux --
sudo pacman -S base-devel ninja cmake sdl2 sdl2_image openal libvorbis libogg freetype2 sqlite

-- Build executable --
./build.sh

-- Running the game without installing --
cd working && ./choria

-- Installing --
cd build/release
sudo ninja install

-- Uninstall --
cd build/release
cat install_manifest.txt | xargs sudo rm

----- BUILDING FOR WINDOWS ON LINUX -----

-- Mingw-w64 dependencies required when building for Windows --
mingw-w64-gcc
mingw-w64-sdl2
mingw-w64-sdl2_image
mingw-w64-freetype2
mingw-w64-openal
mingw-w64-libvorbis
mingw-w64-libogg
mingw-w64-sqlite

-- Building for Windows --
cd deployment
./build_mingw.sh
ls out/

----- COMMAND-LINE ARGUMENTS -----

Parameters with <> denote required values
Parameters with [] denote optional values

use 4K textures
-4k

run a dedicated server
-server

change listen port for dedicated server
-port <port>

set username on login screen
-username <username>

set password on login screen
-password <password>

connect to a server
-connect <host> <port>

enable hardcore only
-hardcore

disable pvp
-nopvp

disable audio
-noaudio

open the mapeditor
-editor [map]

----- HOW TO PLAY -----

Use arrow keys or ESDF to walk around.
During battle, hit 1-8 to use a skill. Use up/down arrow keys or mouse to switch targets. Hit 1-8 again or left mouse button to confirm the action.
Hit Spacebar to activate events.
Hit C to open your inventory and see character stats.
Hit R to open your skill page. Every level you get one skill point to spend. All skills must be equipped to your action bar before they're activated.
Hit T to trade with other players.
Hit G to join an existing battle.
Hit P to set a private party name.
Hit Enter to chat with other players.
Hold alt to show additional information on various screens

Save data is in ~/.local/share/choria_legacy for Linux and %APPDATA%/choria_legacy for Windows

----- MULTIPLAYER -----

Singleplayer games will start a server in the background on port 31234 by default, so other computers can connect to that without having to start a dedicated server.

----- MAP EDITOR -----

-- Modes --
Hit 1 to draw textures
Hit 2 to draw zones
Hit 3 to draw PVP/safe areas
Hit 4 to draw events
Hit 5 to draw lights

Hit F1-F5 to change brush size
Hit Spacebar to list textures
Hit Tab to change from background/foreground layer
Hit W to change from Wall/Walkable
Hit P to change from PVP/Safe zone
Hit E/Shift-E to change event types
Hit G on an event to open it in the design tool or to switch maps
Hit V to paste a copied area of tiles
Hit Z to rotate through different zone colors
Hit T/Shift-T to cycle the clock
Hit Ctrl+T to toggle day/night ambient light
Hit D to delete light under cursor
Hit Ctrl+Alt+D to delete all lights
Hit M to toggle background map
Hit H to toggle text overlay

-- Mouse --
Use Left-mouse button to apply the current brush
Use Right-mouse button to pan the camera

Use Mousewheel to zoom the camera in or out
Use Shift+Mousewheel to quickly zoom the camera in or out

Use Ctrl+Mousewheel to change zones or event data number
Use Shift+Ctrl+Mousewheel to change zones or event data number by 10

Hit Ctrl+Left-mouse button to copy an existing tile into the brush
Use Middle-click drag to highlight an area to copy, then V to paste

-- Misc --
Hit N to start a new map
Hit L to load a map
Hit S to save
Hit R to resize the map

----- DESIGN TOOL -----

The design tool allows you to modify the game stats easily.

Start the web server:
cd assets/web
./server.py

Then open your browser and go to "http://localhost:8000"
