[go: up one dir, main page]

Skip to content

🛠 C++ Utilities (dl-loader, game/network engine (WIP), ECS, serializer, filesystem ...)

License

Notifications You must be signed in to change notification settings

theopnv/cpp-utils

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

license

cpp-utils

C++ Utilities to use for everyday projects. Fully tested on Linux and Windows x64 with C++17. Some libraries if not all, should work on MacOS.

The libraries, classes and methods are well documented in the code.

Disclaimer: subject to major and breaking changes while I'm still working on it, this is a WIP.

Compilation & Linking

Each part can be compiled as a static library (or header-only for some) with its own CMakeFile.

The easiest way to have all the libraries included in your project is to :

  1. Add this repository as a git submodule of your project ($ git submodule add https://github.com/theo-pnv/cpp-utils.git)
  2. Add this line at the top of your root CMakeFile : add_subdirectory(cpp-utils)
Name Linking Description Todo
tp_network header-only Asynchronous server and client written in with boost Asio (https://www.boost.org/doc/libs/1_65_1/doc/html/boost_asio.html). Can exchange data serialized as string. Asio is included as a header-only standalone so we don't need to have it installed on the system or included. 1. UDP support 2. Decide if an event pipeline is necessary/cleaner (connection, reconnection, deconnection...)
tp_serializer static Serialization/Deserialization library. Works very well with tp_network, as it allows to send and receive various custom objects. Based on jsoncpp (https://github.com/open-source-parsers/jsoncpp). Jsoncpp is included as a header-only standalone so we don't need to have it installed on the system or included.
neon_engine static A small game engine written on top of the SDL2 library (included as a standalone in the project). Supports text and pictures thanks to SDL2_ttf & SDL2_image. (Not functional on linux for now). 1. Linux support
tp_ecs static Entity-Component-System (ECS)
tp_dlloader static Dynamic Library Loader. It retrieves a class from a shared library file. More info on the processus can be found here : https://theopnv.com/dynamic-loading/
tp_filesystem static Abstractions to access files and folders, and to read, write in them.
tp_rloader static Resources Loader. It allows the creation of a resource folder, like AppData for Windows applications. Retrieving resources from the code is then easier.
tp_singleton header-only Abstraction of the singleton pattern.
tp_windows_utility static Small winAPI utilities

About

🛠 C++ Utilities (dl-loader, game/network engine (WIP), ECS, serializer, filesystem ...)

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages