Giter Site home page Giter Site logo

mrceej / perpetuum-planner Goto Github PK

View Code? Open in Web Editor NEW

This project forked from nnemkin/perpetuum-planner

0.0 1.0 0.0 1.4 MB

Character planner and item database for Perpetuum MMORPG.

Home Page: http://nemkin.ru/planner

License: GNU General Public License v3.0

C++ 61.17% C 0.37% Python 4.91% CSS 6.25% QMake 1.04% HTML 26.25%

perpetuum-planner's Introduction

PerpetuumPlanner

Character planner and item database for the Perpetuum MMORPG.

Author: Nikita Nemkin <[email protected]>

Homepage: http://nemkin.ru/planner

License

PerpetuumPlanner is licensed under the GNU GPL v3 license.

Libraries used are under the GNU LGPL v2.1.

Game data is used without any specific license.

Game data

Game data is provided separately: http://nemkin.ru/planner/planner_data_2014_01_11.zip. It is a set of text files in JSON-like format native to Perpetuum client. Parser and converters for this format can be found in data/perpetuum.py and data/tools.py.

Data is split into fragments, translations and icons. Fragments are pieces of data with uniform structure (much like SQL tables), translations and icons are self-explanatory.

Note 1: Included icons are the recompressed (for smaller size) low-quality versions used in the Planner. Originals can be extracted from Perpetuum.gbf.

Note 2: At any given time there is only one translation dictionary in Perpetuum.gbf. To extract another language version you need to change the language and restart Perpetuum (notice how it downloads a new dictionary).

The GBF unpacker script is data/tools.py. It requires Python 2.7 to run. To unpack the whole Perpetuum.gbf use:

python tools.py data -i path\to\perpetuum.gbf -o output\dir --sort

(Install numpy beforehead if you don't want to wait 15 minutes).

Build procedure

You need:

  • Python 2.7, Qt 4.7 binaries, Qt Creator.
  • Some experience with C++, Pyhton and Qt.

Official builds of PerpetuumPlanner are created with VisualStudio 2008. Qt version used is the latest 4.7 from git (http://qt.gitorious.org/) configured and built according to meta/config_skin.cache with the /MT flag patched into win32-msvc2008 mkspec (QMAKE_CFLAGS_RELEASE = -O2 -MT). (The goal is relatively small and portable binary without external dependencies).

Steps:

  1. Fetch the project from git.

  2. Download planner_data_YYYY_MM_DD.zip from the downloads section and unpack it into the project's data directory.

  3. Get the MyriadPro-BoldCond.otf (Myriad Pro Cond font) somewhere and put it in the res directory. It's a commercial font from Adobe with draconian license. I'm not sure it's legal to embed it even if you buy it. Therefore it's not included. To build without it, remove corresponding line from res/resources.qrc.

  4. In the data directory run:

    python compile.py
    

    This command parses data fragments and converts them into serialized QVariant blobs which are written as data/compiled/*.dat files. Apart from throwing out some unused definitions, no changes are made during conversion. Later these *.dat filed (and also icons from the data/icons) are compiled into the Planner executable.

    If you have PyYAML installed this command also creates game.yaml file which us handy for debugging data errors.

  5. Download QtCreator, open perpetuumplanner.pro, set up your Qt paths in the settings and build.

Coding style

The coding style used is more or less the Qt coding style.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.