{"id":13467289,"url":"https://github.com/trillek-team/tec","last_synced_at":"2026-03-13T01:36:27.065Z","repository":{"id":31599762,"uuid":"35164637","full_name":"trillek-team/tec","owner":"trillek-team","description":"The Trillek Engine","archived":false,"fork":false,"pushed_at":"2025-11-03T01:58:37.000Z","size":2321,"stargazers_count":141,"open_issues_count":2,"forks_count":21,"subscribers_count":25,"default_branch":"main","last_synced_at":"2025-11-03T02:18:52.231Z","etag":null,"topics":["0x10c","dcpu16","engine","game-engine","linux","tr3200","trillek","trillek-engine"],"latest_commit_sha":null,"homepage":"http://trillek.space","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"lgpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/trillek-team.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS.txt","dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2015-05-06T14:48:31.000Z","updated_at":"2025-11-03T00:07:08.000Z","dependencies_parsed_at":"2023-01-14T19:22:25.260Z","dependency_job_id":"8d05af94-7371-4c4a-99ed-6074fcd89ff4","html_url":"https://github.com/trillek-team/tec","commit_stats":null,"previous_names":[],"tags_count":15,"template":false,"template_full_name":null,"purl":"pkg:github/trillek-team/tec","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trillek-team%2Ftec","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trillek-team%2Ftec/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trillek-team%2Ftec/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trillek-team%2Ftec/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/trillek-team","download_url":"https://codeload.github.com/trillek-team/tec/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trillek-team%2Ftec/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30453978,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-12T21:31:01.033Z","status":"ssl_error","status_checked_at":"2026-03-12T21:30:43.161Z","response_time":114,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["0x10c","dcpu16","engine","game-engine","linux","tr3200","trillek","trillek-engine"],"created_at":"2024-07-31T15:00:54.778Z","updated_at":"2026-03-13T01:36:27.041Z","avatar_url":"https://github.com/trillek-team.png","language":"C++","funding_links":[],"categories":["C++"],"sub_categories":[],"readme":"# Trillek Engine C\n| Github actions | RTD docs | Code Coverage |\n|-------|-------|-------|\n|[![Trillek Engine CI](https://github.com/trillek-team/tec/actions/workflows/tec.yml/badge.svg)](https://github.com/trillek-team/tec/actions/workflows/tec.yml)|[![Documentation Status](https://readthedocs.org/projects/project-trillek/badge/?version=latest)](https://project-trillek.readthedocs.io/?badge=latest)|[![codecov](https://codecov.io/gh/trillek-team/tec/branch/master/graph/badge.svg?token=ikZxlqltAW)](https://codecov.io/gh/trillek-team/tec)|\n\n## Support\nHead onto our [Discord](https://discord.gg/HM8hhbGSjd) for extended support on building and usage.  \n![Discord Shield](https://discordapp.com/api/guilds/671106829853523969/widget.png?style=shield)\n\n## Requirements\nTEC requires cmake 3.19, a c++17 compatible compiler, and a few libraries GLFW3, GLM, ASIO, Protobuf, GLAD, Lua, Bullet, Dear ImGui, sol3, Spdlog and OpenAL.\n\nThe libraries are automatically installed when using CMake and VCPKG [manifest mode](https://vcpkg.readthedocs.io/en/latest/users/manifests/).\n\n# Quick Start\n## OS Specific first steps\n### Windows\n*Potentially* Download and install oalinst.zip [OpenAL installer](http://openal.org/downloads/) and install it.\n### MacOS\nPrior to 11.0.1, run (NOT TESTED): `sudo installer -pkg /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg -target /` \n\nIf `bootstrap-vcpkg` fails see [here](https://donatstudios.com/MojaveMissingHeaderFiles) for more help\n### Linux\nInstall the following. This is a pretty extensive list and may be more than needed\n\n`build-essential pkg-config tar curl zip unzip gdb libgl1-mesa-dev xorg-dev libglu1-mesa-dev libxinerama-dev libxcursor-dev`\n\n## Build Steps\n1. Install [CMake](https://cmake.org/download/)\n2. Install [VCPK](https://github.com/Microsoft/vcpkg.git) - `git clone https://github.com/Microsoft/vcpkg.git`\n3. `VCPKG_ROOT` must be set a an environment variable, to wherever VCPKG was cloned to\n4. Run `$(VCPKG_ROOT)/bootstrap-vcpkg.[bat|sh]` to setup vcpkg. Use the correct extension for your OS.\n   1. [OPTIONAL] `$(VCPKG_ROOT)/./vcpkg integrate install`\n5. Open the folder in an editor OR see step 6\n   1. [Visual Studio](https://docs.microsoft.com/en-us/cpp/build/cmake-presets-vs?view=msvc-170)\n   2. [CLion](https://www.jetbrains.com/help/clion/cmake-presets.html)\n6. Run CMake\n   1. CLI\n      1. `cmake --preset=ninja-multi-vcpkg`\n      2. `cmake --build --preset=BUILD_PRESET` see [presets](#presets)\n   2. GUI - This will only configure the project. CLI steps or Open in an editor are more useful.\n      1. Set the source folder\n      2. Set the build folder. The presets default to `builds/CONFIG_NAME` e.g. `builds/msvc/`\n      3. Run Configure\n         1. Pick the Ninja Multi-config generator\n         2. Select Specify toolchain file for cross compiling\n         3. The file input should be filled in, but if not point it to `$(VCPKG_ROOT)/scripts/buildsystems/vcpkg.cmake`\n      4. Run Generate\n      5. Open generated solution and build the project(s)\n\n# In depth\n## Build Tool Dependencies:\n* [cmake](https://cmake.org/)\n* [vcpkg](https://github.com/microsoft/vcpkg)\n* [ninja](https://github.com/ninja-build/ninja/wiki/Pre-built-Ninja-packages) ***Optional***\n\n## Linux / WSL Dependencies\n* `gcc10 g++10` or `clang-13`\n* `build-essential pkg-config tar curl zip unzip gdb`\n* `libgl1-mesa-dev xorg-dev libglu1-mesa-dev libxinerama-dev libxcursor-dev p7zip-full`\n\n## Supported editor(s)\n* Visual Studio\n* Visual Studio (CMake folder mode)\n  * Change Tools -\u003e Options -\u003e CMake -\u003e General and enable \"Prefer using CMake Presets...\"\n* Visual Studio Code\n  * On Windows you may need to add the CMake bin to the system path, for CTest to work.\n* CLion\n  * Not tested, but CMake folder mode should work as expected\n\n# Presets\n## Config:\n* `ninja-multi-vcpkg` - Ninja multi-build config preset that references the vcpkg toolchain file relative to the `VCPKG_ROOT`\n  \n## Build:\n* `ninja-multi-vcpkg-debug` - Debug configuration build preset that uses the `ninja-multi-vcpkg` config\n* `ninja-multi-vcpkg-release-dbginfo` - Release with debug info configuration build preset that uses the `ninja-multi-vcpkg` config\n* `ninja-multi-vcpkg-release` - Release configuration build preset that uses the `ninja-multi-vcpkg` config\n* `ninja-multi-docs` - Doc build preset with the documentation custom [targets](#documentation-targets)\n\n## Test\n* `test-base` - Base test preset that all other tests derive from **DO NOT USE**\n* `ninja-multi-vcpkg-debug` - Debug configuration test preset\n* `ninja-multi-vcpkg-release` - Release configuration test preset\n\n# Documentation\nDocumentation is done via Doxygen for C++ code and supplementary docs must be maintained for the Lua API in `docs/`.\n\nEngine documentation is generated with the with the `ninja-multi-docs` build config `doxygen` target, and is then\nconverted to markdown via `doxybook2` with the `ninja-multi-docs` build config `doxybook` target.\n\nAll documentation is converted to mkdocs format with the `ninja-multi-docs` build config `mkdocs` target, and then\nreadthedocs hosts the mkdocs files.\n\nDoxygen and mkdocs files **are not** committed, but can be generated locally for consumption/validation. Doxybook\ngenerated engine docs and all other docs in `docs/` **are** committed.\n\n## Documentation Dependencies\n* [doxygen](https://www.doxygen.nl/) 1.9.4\n* [doxybook2](https://github.com/matusnovak/doxybook2) 1.4.0\n* [python](https://www.python.org/) 3.10.4 (Earlier version may work, but untested)\n* [pip](https://pip.pypa.io/en/stable/) 22.0.4 (Earlier version may work, but untested)\n* [pip-tools](https://github.com/jazzband/pip-tools) 6.8.0 (Earlier version may work, but untested)\n* [mkdocs](https://www.mkdocs.org/) 1.3.0 (see docs/requirements)\n\n## Readthedocs setup\nTo generate the python requirements for mkdocs to be used by readthedoc run `pip-compile docs/requirements.in` in the project root.\n\n## Documentation Targets\nThe following targets can be built when the CMake build preset is set to `ninja-multi-docs`\n\n* doxygen - Generates full doxygen docs in `doxygen/` \n* doxybook - Generates markdown versions of doxygen docs and places them in `docs/engine/`\n* mkdocs - Generates mkdocs from `docs/` in places them `mkdocs/`\n\n## Local Preview\nTo preview the mkdocs docs locally visit run `mkdocs serve`, in the project root.\n\n# Clang Format\nThe follow docker script will setup a docker container that will run clang format.\n`docker build -t clang-format-lint github.com/DoozyX/clang-format-lint-action`\n### Windows\nRun the following on windows to format all source files in the src dir\n`docker run -it --rm --workdir /src -v ${pwd}:/src clang-format-lint --clang-format-executable /clang-format/clang-format11 -r -i true .`\n### Linux\nRun the following on windows to format all source files in the src dir\n`docker run -it --rm --workdir /src -v $(pwd):/src clang-format-lint --clang-format-executable /clang-format/clang-format11 -r -i true .`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftrillek-team%2Ftec","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftrillek-team%2Ftec","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftrillek-team%2Ftec/lists"}