{"id":13439020,"url":"https://github.com/solenum/exengine","last_synced_at":"2025-04-05T00:09:25.158Z","repository":{"id":47430700,"uuid":"81857349","full_name":"solenum/exengine","owner":"solenum","description":"A C99 3D game engine","archived":false,"fork":false,"pushed_at":"2024-04-12T22:55:00.000Z","size":51396,"stargazers_count":547,"open_issues_count":5,"forks_count":31,"subscribers_count":25,"default_branch":"master","last_synced_at":"2024-10-30T17:03:13.067Z","etag":null,"topics":["3d","3d-engine","3d-game-engine","c99","collision","collision-detection","engine","fps","game","gamedev","opengl"],"latest_commit_sha":null,"homepage":"https://oods.net","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/solenum.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-02-13T18:33:02.000Z","updated_at":"2024-10-26T20:39:45.000Z","dependencies_parsed_at":"2024-10-30T17:13:27.033Z","dependency_job_id":null,"html_url":"https://github.com/solenum/exengine","commit_stats":null,"previous_names":["eg-z/exengine"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/solenum%2Fexengine","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/solenum%2Fexengine/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/solenum%2Fexengine/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/solenum%2Fexengine/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/solenum","download_url":"https://codeload.github.com/solenum/exengine/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247266564,"owners_count":20910836,"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","3d-engine","3d-game-engine","c99","collision","collision-detection","engine","fps","game","gamedev","opengl"],"created_at":"2024-07-31T03:01:10.492Z","updated_at":"2025-04-05T00:09:25.142Z","avatar_url":"https://github.com/solenum.png","language":"C","funding_links":[],"categories":["C","Game Programming","游戏编程"],"sub_categories":[],"readme":"bye\n\n\n-------\n# exengine, a C 3D game engine.\n\n[Discuss](https://webchat.freenode.net/##oodnet) | [Website](https://exez.in/exengine) | [TODO](https://github.com/exezin/exengine/projects/1)\n\n### What exactly is exengine?\nexengine is a 3d engine that takes a slightly different approach than other libraries and engines do, in that it's a code-base you include directly into your own.  Rather than using it as a static/shared library.\n\nThis approach allows easy and direct access to the engine back-end should you want to make modifications to suit your specific needs, so think of it as more of a template.\n\nAssuming you don't want to set up your own build system (I can't blame you), you can clone the repo and use the existing build system and file structure as a starting template.  It compiles on Linux, BSD, and Windows. It *might* compile and run on MacOS, but this isn't [directly supported any more.](https://news.ycombinator.com/item?id=17231593)\n\n**The contents of main.c/game.c are only supplied as examples to showcase how one might use the engine.**\n\n### What are the features?\n* *Simple* and small\n* A straight-forward C99 codebase\n* A deferred[*](https://github.com/exezin/exengine/commit/c28d1a8e2f3d99ef4a87253ae3166f2f67e33fbc) and forward renderer\n* Various light casters\n* Smooth shadow mapping\n* Normal \u0026 specular mapping\n* Half-kernel SSAO (deferred only)\n* IQM model loading\n* 3D model animation\n* Scene manager\n* Instancing\n* Polygon soup collision detection\n* Smooth collision response\n* Various cameras\n* [More to come..](https://github.com/exezin/exengine/projects/1)\n\n### (External) Depends\n* A C99 compiler, preferably gcc. Clang and others should also work\n* OpenGL 3.3+\n* SDL2\n\n### Credits\n* [SDL2](https://www.libsdl.org/index.php)\n* [MojoAL](https://hg.icculus.org/icculus/mojoAL/)\n* [PhysFS](https://icculus.org/physfs/)\n* [STB](https://github.com/nothings/stb)\n* [Linmath](https://github.com/datenwolf/linmath.h)\n* [IQM](http://sauerbraten.org/iqm/)\n* [GLAD](https://github.com/Dav1dde/glad)\n\n### Getting Started\n#### Documentation\nThe current method of documentation is code comments, every engine header has extensive documentation as to its purpose and how one might use it.  Better documentation will come in the near future.\n\n#### Using \u0026 Compiling\n\nSimply clone the repository and install the required libraries and compilers listed below for the OS you are using.\n\n**This only applies to those wanting to use the current build system and game code as a starting template, and not those wanting to include exengine into an existing project or build system.**\n\n\n----\n### Linux\n\n````\nsudo apt-get update\nsudo apt-get install build-essential libsdl2-dev\ncd src \u0026\u0026 make\n````\n\nThe resulting binary will be in src/build/\n\n----\n### Windows\n\nDownload and install [Cygwin](https://www.cygwin.com/) with the following packages.  *All required libraries for Windows are included in the codebase.*\n\nAlternatively switch to category view and set ['Devel' to install.](https://i.stack.imgur.com/2uzkB.jpg)  *This method takes up 1-2GB of space*\n\n````\nmingw64-x86_64-gcc\nmake\nzip\n````\n\n**You can also install the [Linux subsystem for Windows 10](https://docs.microsoft.com/en-us/windows/wsl/install-win10)**, after which you just need to run the following.\n\n````\nsudo apt update\nsudo apt install mingw-w64 make zip\ncd /mnt/c/Users/MyUsername/Desktop/exengine/src\n````\n\nAfter this compiling is the same as Linux, except for the addition of setting the OS variable.\n\n````\ncd C:\\exengine\\src (or wherever you've put this)\nOS=Windows_NT make\n````\n\nthe resulting .exe will be in src/build/\n\n----\n### OpenBSD\nMake sure you have the correct dependicies installed, the equivalent of linux using pkg_add.\nFor OpenBSD specific you will need the 'gmake' and 'gcc' packages.\nThe gcc package will install a more modern compiler as egcc in your path.\n\nafter this the compilation is almost the same as in linux, this time specificly using gmake (stands for GNU make).\n\n````\ncd src \u0026\u0026 gmake\n````\n\n----\n### Stand-alone (*recommended*)\n\nAlternatively you can drop the exengine/ directory right into your own project and use it with your own build system.  This method obviously takes more work and time.\n\n----\n### Gallery\n![scrot](http://i.imgur.com/4NGlapU.png)\n![scrot](https://i.imgur.com/vTKB3T8.png)\n![scrot](http://i.imgur.com/H1pMBXI.png)\n![scrot](https://i.imgur.com/n6FcPau.png)\n![scrot](https://i.imgur.com/t7CcuiK.png)\n![scrot](https://i.imgur.com/qesG2md.png)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsolenum%2Fexengine","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsolenum%2Fexengine","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsolenum%2Fexengine/lists"}