Giter Club home page Giter Club logo

atsf4g-co's Introduction

atsf4g-co

service framework for game server using libatbus, libatapp, libcopp and etc.

Dependency

  1. libuv -- libuv is a multi-platform support library with a focus on asynchronous I/O.
  2. msgpack-c -- MessagePack is an efficient binary serialization format, and msgpack-c is a c and c++ driver for it.
  3. libiniloader -- a small and lightweight ini loader code.
  4. libcurl -- libcurl is a free and easy-to-use client-side URL transfer library
  5. libcopp -- Cross-platform coroutine library written in c++.
  6. rapidjson -- A fast and header only json library.
  7. flatbuffer -- A simple pack/unpack library. It's used in atgateway's inner protocol.

Prepare

  1. Install etcd. (It's used for atproxy to connect to each other.)
  2. [opional] Install redis. (DB services.install it if used)

Extern Dependency

  1. libuuid-devel(uuid-dev)
  2. [opional] hiredis, redis (if using redis, full_sample branch has use redis)

Developer

Tools

  1. cmake 3.4 and above
  2. gcc/clang/msvc
  3. gdb/lldb/windb
  4. git
  5. unzip
  6. tar
  7. autoconf
  8. automake
  9. p7zip
  10. python2/python
  11. etc.

Python modules

  1. python-mako/python*-mako/mingw-w64-x86_64-python*-mako
  2. [optional] python-setuptools/python*-setuptools/mingw-w64-x86_64-python*-mako
  3. [optional] python-pip/python*-pip/mingw-w64-x86_64-python*-pip

Framework Code Tree

  • 3rd_party: all dependency 3rd_party libraries
  • atframework: atframework projects and libraries
  • export: exported libraries, used by client
  • libatframe_utils: framework utility codes
  • libatbus: communication library used between servers
  • libatapp: server application framework, used to build a specified server type
  • services: inner services of atframework
  1. component: inner services common codes
  2. atproxy: proxy server, used to connect difference service group to each other
  3. atgateway: gateway server, used to manage client connections
  • doc: documents
  • install: all resources and configure templates
  • project: project script, used to detect build environment and generate build scripts
  • sample: sample codes to show usage of some libraries
  • src: all real projects
  • echosvr: the simplest server instance, just send back all data receive from client
  • [others]: other services

Logic Code Tree

  • src: all real projects
  • server_frame: server common library
  1. config: server configure defines and excel configure data structures
  2. data: game data layer
  3. dispatcher: decide how to deal with each type of messages and manage coroutine tasks
  4. logic: game logic layer
  5. rpc: all remote procedure call APIs, include server to server message, DB message and so on
  6. utility: all shared utility codes
  • tools: tool projects

Basic Usage

Windows

You need to prebuilt all dependency libraries such as openssl/mbedtls, libcurl, libuv and so on. Then run

cmake [SOURCE PATH] -G "Visual Studio ... Win64" -DLIBUV_ROOT=[LIBUV INSTALL PATH] -DOPENSSL_ROOT=[OPENSSL INSTALL PATH] ...

Please see 3rd_party to see which libraries is required.

Unix like system

sh cmake_dev.sh [options] ...

Such as sh cmake_dev.sh -su to enable all unit test and samples, or sh cmake_dev.sh -a to use clang-analysis. You can also directly run cmake [SOURCE PATH] [options...] just like in windows, use your own prebuilt libraries or not. It depends to you.

atsf4g-co's People

Contributors

owent avatar

Watchers

 avatar  avatar

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.