{"id":27202141,"url":"https://github.com/shervanator/engine","last_synced_at":"2025-04-09T21:58:47.705Z","repository":{"id":15777002,"uuid":"18516055","full_name":"Shervanator/Engine","owner":"Shervanator","description":"A basic cross-platform 3D game engine","archived":false,"fork":false,"pushed_at":"2018-08-04T10:04:17.000Z","size":26196,"stargazers_count":295,"open_issues_count":14,"forks_count":67,"subscribers_count":17,"default_branch":"master","last_synced_at":"2025-04-09T21:58:30.914Z","etag":null,"topics":["3d","3d-game-engine","android","assimp","bullet-physics","c-plus-plus","cmake","cross-platform","dank","dear-imgui","emscripten","engine","game","game-engine","lighting","linux","mac","opengl","sdl2","windows"],"latest_commit_sha":null,"homepage":"https://shervanator.github.io/Engine/","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Shervanator.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-04-07T12:24:49.000Z","updated_at":"2025-03-31T17:52:49.000Z","dependencies_parsed_at":"2022-07-23T11:16:26.179Z","dependency_job_id":null,"html_url":"https://github.com/Shervanator/Engine","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Shervanator%2FEngine","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Shervanator%2FEngine/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Shervanator%2FEngine/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Shervanator%2FEngine/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Shervanator","download_url":"https://codeload.github.com/Shervanator/Engine/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248119330,"owners_count":21050754,"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-game-engine","android","assimp","bullet-physics","c-plus-plus","cmake","cross-platform","dank","dear-imgui","emscripten","engine","game","game-engine","lighting","linux","mac","opengl","sdl2","windows"],"created_at":"2025-04-09T21:58:47.230Z","updated_at":"2025-04-09T21:58:47.695Z","avatar_url":"https://github.com/Shervanator.png","language":"C++","readme":"# Engine\n\nA basic cross-platform (Mac, Windows, Linux, HTML5, Android) 3D game engine.\n\nONLINE DEMO: https://shervanator.github.io/Engine/\n\n[![Build Status](https://travis-ci.org/Shervanator/Engine.svg?branch=master)](https://travis-ci.org/Shervanator/Engine)\n\nFeature:\n\n* Scene Graph\n* 3D model loading (most common file formats)\n* Entity/Component Object Model\n* Lighting system (ambient/spot/point/directional lights) - Forward rendering\n* Bump mapping\n* Perspective/Ortho camera\n* Object picking (basic ray tracing/sphere collider collision detection)\n* Bullet Physics colliders + simulation\n* Fully cross platform\n\n![engine screenshot](https://cloud.githubusercontent.com/assets/1892180/19194155/843d0b7a-8cf8-11e6-9c1e-0982058c4594.png)\n\nUses the following 3rd party libraries:\n\n* SDL2 window library.\n* stb_image.h image library.\n* OpenGL 3 / OpenGL ES 2.0 / OpenGL ES 3.0 Graphics APIs.\n* Assimp asset importing library.\n* GLEW extension loading library.\n* Dear ImGui UI library.\n* Bullet Physics Library.\n\n## Usage\n\nFirst clone repo with the following command to download all submodules (which are located in the dependencies folder):\n`git clone --recursive git@github.com:Shervanator/Engine.git`\n\nAll builds require cmake 3.6.0, so the first step is to download that [here](https://cmake.org/download/)\n\n#### Windows Build\n\n1. Run the cmake gui and point it to this projects folder, configure and then generate a project using whatever toolchain you want. Tested with visual studio 2015\n2. Build the project\n\n#### Mac/Linux Build\n\nRun:\n\n```bash\n./scripts/cmake-make.sh -j8\n```\n\nThen run with:\n\n```bash\n./bin/bin/game\n```\n\nThis will run the first build for you! After that if you need to rebuild do the following:\n\n```bash\ncd bin\nmake -j8\n```\n\n#### HTML 5 WebGL engine Build\n\nTo build the html5 engine:\n\nFirst install emscripten:\n\n```bash\nbrew install emscripten\n```\n\nThen build the engine:\n\n```bash\n./scripts/cmake-emscripten.sh -j8\n```\n\nThen run with:\n\n```bash\ncd bin-emscripten/bin\n\npython -m SimpleHTTPServer\n\nopen http://localhost:8000/\n```\n\nIf you make a change you can rebuild with the following command:\n\n```bash\ncd bin-emscripten/\nmake -j8\n```\n\n#### Android Build\n\nTo build for android do the following:\n\nFirst download the android ndk and sdk (https://developer.android.com/tools/sdk/ndk/) and (https://developer.android.com/sdk/index.html)\n\nThen add the SDK and NDK to your path:\n\ne.g. (you can add this to your .bash_profile for convenience)\n\n```bash\nexport ANDROID_SDK=$HOME/Library/Android/sdk/\nexport ANDROID_NDK=$HOME/workspace/android-ndk-r12b\n\nexport PATH=\"$ANDROID_NDK:$ANDROID_SDK/tools:$ANDROID_SDK/platform-tools:$PATH\"\n```\n\nThen to build (connect phone in dev mode to computer if you want it to install and run):\n\n```\n./scripts/cmake-android.sh -j8\n```\n\nTo rebuild do the following:\n\n```bash\ncd bin-android\nmake -j8\nmake android-build android-install android-start\n```\n\nIf you want to view the backtrace (to see logs and errors do the following):\n\n```bash\ncd bin-android\nmake android-backtrace\n```\n\n### To Use:\n\nTo use the engine in a game build the engine library and include Engine.h in your game.\n\nView the example in `./src/example/main.cpp`\n\nOr a simple case:\n\nEg:\n\n```c++\n#include \"Engine.h\"\n\nclass CoolGame : public Game\n{\npublic:\n  virtual void init(void);\n};\n\nvoid CoolGame::init(void)\n{\n  auto test_entity = std::make_shared\u003cEntity\u003e();\n  test_entity-\u003eaddComponent\u003cMeshRenderer\u003e(std::make_shared\u003cMesh\u003e(Asset(\"../assets/monkey3.obj\")), std::make_shared\u003cTexture\u003e(Asset(\"../assets/t.jpg\")));\n  addToScene(test_entity);\n}\n\nint main(int argc, char **argv){\n  CoolGame game;\n  Engine gm(\u0026game);\n\n  gm.start();\n\n  return 0;\n}\n```\n\n## Contributing\n\n1. Fork it ( http://github.com/Shervanator/Engine/fork )\n2. Create your feature branch (`git checkout -b my-new-feature`)\n3. Commit your changes (`git commit -am 'Add some feature'`)\n4. Push to the branch (`git push origin my-new-feature`)\n5. Create new Pull Request\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshervanator%2Fengine","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fshervanator%2Fengine","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshervanator%2Fengine/lists"}