Coder Social home page Coder Social logo

griefly / griefly Goto Github PK

View Code? Open in Web Editor NEW
130.0 23.0 25.0 62.66 MB

Griefly: Yet Another Space Station Remake

Home Page: https://grief.ly

License: MIT License

C++ 88.37% C 0.03% Go 6.51% CMake 2.42% Python 2.37% Shell 0.16% Dockerfile 0.14%
c-plus-plus cmake go game

griefly's Introduction

Griefly

Linux Build Status Windows Build Status Coverage Status Join the chat at https://gitter.im/griefly/griefly

It is Griefly: Yet Another Space Station Remake.
Roadmap may be interesting to look into.

Dependencies

  1. Some C++14 compiler (it works at least with compiler from Visual Studio 2015 and g++)
  2. Qt5.8+
  3. Python 3.5
  4. Golang 1.5+ (https://golang.org/dl/)
  5. Git
  6. CMake 3.*

How to build everything on Windows

If you have any issues during the build process please report them

It should be possible to build everything without Qt Creator, but the guide assumes that Qt Creator is used.

  1. All tools and libs from the dependencies list should be available on your machine. Tools and libs should be present in %PATH%
  2. Open CMakeLists.txt in Qt Creator
    Open Project -> Select CMakeLists.txt -> Select build folder
  3. Run CMake with param -DCMAKE_BUILD_TYPE=Release for Release verison.
  4. Build the project.
    Client executables will appear in the exec folder, and the server executable will appear in the griefly-server folder.
    Client executables depend from various dlls, so it is needed to manually place them to the exec folder.

Note: It's supposed to be built from an active git repository (git describe --tags --abbrev=4 will be called during the process), otherwise it won't compile.

How to build everything on Linux

  1. Install dependencies. Look into .travis.yml file for clues. (For Arch Linux only: All dependencies can be installed with sudo pacman -S git qt5-base qt5-multimedia go python mesa gcc)
  2. cd into installation directory.
  3. git clone https://github.com/griefly/griefly.git
  4. cd griefly
  5. ./make.sh. Built project will be placed under exec directory. Server will be built in gopath/src/griefly-server directory.

Note: It's supposed to be built from an active git repository (git describe --tags --abbrev=4 will be called during the process), otherwise it won't compile.
Note: gccgo is not supported! The current FindGo.cmake cannot parse the gccgo version string, so you will obtain an error. Use the official version instead.
Note: There may be some issues with CMake 3.0.2, so try to update your CMake if issues appear.

How to build everything on MacOS

  1. Install dependencies using brew. brew install qt
  2. Look at the tips in make.sh and adjust your environment accordingly.
  3. ./make.sh. Build project will be placed under exec directory Server will be built in gopath/src/griefly-server directory.

How to start server

Server available in directory gopath/src/griefly-server. When hosting server, consider following adjustments:

  1. Change password for admin user in db/auth.json. Passwords stored in plain text now.
  2. When starting server, provide -server-url parameter. This parameter is an URL for asset server. It should be either host address (when server exposed to internet directly) or external ip (when running behind NAT). Server will bind on port, extracted from this url and clients will use url to connect to server for map exchange.

Other server options available in help: griefly-server -h

How to run game without launcher

Pass those command line parameters to KVEngine or KVEngine.exe:

First (master) client:
mapgen_name=<path_to_mapgen> login=<admin login> password=<admin password>
where login and password params values should match values in an auth database (by default griefly-server/db/auth.json), and path_to_mapgen should be path to some mapgen file. Some default mapgen files are places in the maps (e.g. maps/brig_small.gen).
Other clients:
login=Guest

You can also specify game host by parameter ip=game_host_address. By default it connects to localhost.

Launcher basically does same things, but in a more convenient for usual users way.

Codestyle

See documentation/CODESTYLE.md file for C++ codestyle. Use default ones for Python and Go (PEP8 and Go Coding Style accordingly).

griefly's People

Contributors

askoufis avatar bauen1 avatar chemrat avatar crazzymad777 avatar disasm avatar fluorescent-net avatar hamidzr avatar kremius avatar mailaender avatar martiuk avatar mechmind avatar ninjadanz3r avatar plinhost avatar redict avatar shelltitan avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

griefly's Issues

Vsync linux support

wglSwapInterval = reinterpret_cast<PFNWGLSWAPINTERVALEXTPROC>(wglGetProcAddress("wglSwapIntervalEXT"));
if (wglSwapInterval) 
    wglSwapInterval(1);

some windows shit

Too long expressions

visiblePoint = 
    GetMapMaster()->losf.calculateVisisble(visiblePoint, 
        castTo<CubeTile>(thisMob->GetOwner().ret_item())->posx(), 
        castTo<CubeTile>(thisMob->GetOwner().ret_item())->posy(),
        castTo<CubeTile>(thisMob->GetOwner().ret_item())->posz());

Tools

screwdriver +
wrench
weldingtool
wirecutters +
crowbar +

Server bug

2014/06/30 22:05:13 client: recieved hello
2014/06/30 22:05:13 client: registering client
2014/06/30 22:05:13 client: registered as 0 master? true
2014/06/30 22:05:13 client: creating master...
2014/06/30 22:05:13 registry: attached master
2014/06/30 22:05:13 client: created master
2014/06/30 22:05:13 client[0]: starting main loop
2014/06/30 22:11:48 client: recieved hello
2014/06/30 22:11:48 client: registering client

First client try connect -> crush (some client trouble) -> second client connect -> ?????

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.