{"id":13830773,"url":"https://github.com/klaussilveira/qengine","last_synced_at":"2025-04-04T08:05:14.853Z","repository":{"id":48412202,"uuid":"141907764","full_name":"klaussilveira/qengine","owner":"klaussilveira","description":"Retro game engine for creating games like it's 1997","archived":false,"fork":false,"pushed_at":"2022-07-25T23:09:31.000Z","size":12423,"stargazers_count":865,"open_issues_count":4,"forks_count":43,"subscribers_count":21,"default_branch":"master","last_synced_at":"2025-03-28T07:02:42.406Z","etag":null,"topics":["3d-engine","3d-game","fps","game-development","game-engine","gamedev","linux"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/klaussilveira.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-07-22T15:31:43.000Z","updated_at":"2025-03-16T07:19:52.000Z","dependencies_parsed_at":"2022-09-07T01:40:33.796Z","dependency_job_id":null,"html_url":"https://github.com/klaussilveira/qengine","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/klaussilveira%2Fqengine","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/klaussilveira%2Fqengine/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/klaussilveira%2Fqengine/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/klaussilveira%2Fqengine/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/klaussilveira","download_url":"https://codeload.github.com/klaussilveira/qengine/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247137483,"owners_count":20889883,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["3d-engine","3d-game","fps","game-development","game-engine","gamedev","linux"],"created_at":"2024-08-04T10:01:08.239Z","updated_at":"2025-04-04T08:05:14.837Z","avatar_url":"https://github.com/klaussilveira.png","language":"C","funding_links":[],"categories":["C","Artificial Intelligence"],"sub_categories":[],"readme":"# qengine\n![Build Status](https://github.com/klaussilveira/qengine/actions/workflows/build.yml/badge.svg)\n[![GitHub release](https://img.shields.io/github/release/klaussilveira/qengine.svg)](https://github.com/klaussilveira/qengine/releases/latest)\n[![License](https://img.shields.io/github/license/klaussilveira/qengine)](https://github.com/klaussilveira/qengine/blob/master/LICENSE)\n\nqengine is a cross-platform retro game engine. It is aimed at nostalgic game\ndevelopers that miss simple times and enjoy creating games like it's 1997. The\nsoftware renderer provides the aesthetic that we all love and the engine\nlimitations exist to make your creativity shine.\n\nThe engine is a fork of the Quake II codebase that focuses on serving as a base\nfor standalone games. Unlike other ports, it does not aim at being compatible\nwith mods or the base Quake II game. In fact, many features were removed to\nreduce the complexity of the codebase and make the process of creating new\ngames on top of the engine easier and faster.\n\nSome notable changes include:\n\n- Removal of overly specific gameplay code, such as enemies and weapons\n- Merge of modules into a single package. No more DLLs, just a single\nexecutable for client and another for server\n- Removal of OpenGL\n- Minimal dependencies\n\n![qengine screenshot](docs/screenshot.png)\n\n## Free, open source and community-driven\nqengine stands on the shoulders of giants from the Quake II community. The code\nis built upon Yamagi Quake II, which itself contains code from other amazing\nprojects:\n\n- Hecatomb\n- Icculus Quake 2\n- KMQuake2\n- Q2Pro\n- QuDoS\n- r1q2\n- stereo quake\n- zeq2\n\n## Goals\n- Provide a clean and maintainable base game engine\n- Improve stability across different platforms\n- Enhance the software renderer\n- Improve documentation of asset pipeline\n\n## License\nqengine is released under the terms of the GPL version 2. See the LICENSE\nfile for further information.\n\n## Compiling\n\n    $ mkdir build\n    $ cd build\n    $ cmake ..\n    $ make\n\nIf you don't want to build the docs, or you don't want to install the deps\nthey require, you can pass `-DBUILD_DOCS=OFF` to cmake.\n\n    $ cmake -DBUILD_DOCS=OFF ..\n    $ make\n\n## Running\nThe engine will look for game data in the `assets` folder. You can start from\nscratch, or use the original Quake II game data if you own it.\n\n## Tools\nIncluded with the engine there are quite a few useful tools. They are:\n\n### Mapping\n- qbsp3\n- qrad3\n- qvis3\n- bspinfo\n\n### Textures\n- pcx2wal\n- pcx2pal\n- colormap\n- 16to8\n\n### UI\n- uigen\n- fontgen\n\n### Compiling maps\n    $ tools/qbsp3 assets/maps/sample.map\n    $ tools/qvis3 assets/maps/sample.bsp\n    $ tools/qrad3 assets/maps/sample.bsp\n\n## Base assets\nIn order to run, the engine needs a few base assets, such as sounds, models\nand UI textures. Most of them are already included in the `assets` folder.\n\n## Palette\nThe engine works with a 256 color palette. However, the `colormap.pcx` file is a 256x320 color re-arrangement of those colors, resulting in 64 shades of each.\n\nA GIMP palette is included to facilitate creation of new graphics for the engine: `assets/palette.gpl`\n\nIf you want more creative freedom, you can easily create a new palette. Create\na PCX file with the 256 colors you have chosen and then:\n\n    $ tools/pcx2pal palette.pcx palette.pal\n    $ tools/colormap palette.pal colormap.pcx\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fklaussilveira%2Fqengine","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fklaussilveira%2Fqengine","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fklaussilveira%2Fqengine/lists"}