{"id":15047429,"url":"https://github.com/pardcode/cpp-3d-game-tutorial-series","last_synced_at":"2025-04-12T19:41:53.522Z","repository":{"id":41366182,"uuid":"161335349","full_name":"PardCode/CPP-3D-Game-Tutorial-Series","owner":"PardCode","description":"C++ 3D Game Tutorial Series (DirectX) - Learn to code a DirectX 3D Game in C++ from scratch","archived":false,"fork":false,"pushed_at":"2025-04-11T07:50:58.000Z","size":42382,"stargazers_count":912,"open_issues_count":0,"forks_count":128,"subscribers_count":42,"default_branch":"master","last_synced_at":"2025-04-11T09:53:02.417Z","etag":null,"topics":["3d","3d-game","3d-graphics","3d-graphics-engine","cpp","cpp11","d3d11","direct3d","direct3d11","directx","directx-11","directx-3d","directx11","game","game-development","game-engine","gamedev","graphics","graphics-engine","graphics-programming"],"latest_commit_sha":null,"homepage":"https://www.youtube.com/playlist?list=PLv8DnRaQOs5-ST_VDqgbbMRtzMtpK36Hy","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/PardCode.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","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,"zenodo":null},"funding":{"patreon":"pardcode","custom":["https://www.pardcode.com/donate"]}},"created_at":"2018-12-11T13:07:48.000Z","updated_at":"2025-04-10T12:13:55.000Z","dependencies_parsed_at":"2024-04-27T14:22:57.258Z","dependency_job_id":"52fe9c3a-60fc-49db-bb52-1c10b65b4fd4","html_url":"https://github.com/PardCode/CPP-3D-Game-Tutorial-Series","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/PardCode%2FCPP-3D-Game-Tutorial-Series","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PardCode%2FCPP-3D-Game-Tutorial-Series/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PardCode%2FCPP-3D-Game-Tutorial-Series/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PardCode%2FCPP-3D-Game-Tutorial-Series/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/PardCode","download_url":"https://codeload.github.com/PardCode/CPP-3D-Game-Tutorial-Series/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248625126,"owners_count":21135510,"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","3d-graphics","3d-graphics-engine","cpp","cpp11","d3d11","direct3d","direct3d11","directx","directx-11","directx-3d","directx11","game","game-development","game-engine","gamedev","graphics","graphics-engine","graphics-programming"],"created_at":"2024-09-24T20:58:10.404Z","updated_at":"2025-04-12T19:41:53.494Z","avatar_url":"https://github.com/PardCode.png","language":"C++","readme":"![CX3D Framework](Media/cx3d_logo.png)\n\n[![CPP17](https://img.shields.io/badge/c++-17-blue)]()\n[![Build Status](https://github.com/skypjack/entt/workflows/build/badge.svg)]()\n[![Docs](https://img.shields.io/badge/docs-wiki-blue)]()\n[![Discord channel](https://img.shields.io/discord/622797245368238082?logo=discord)](https://discord.gg/RymBzwKPyZ)\n[![Patreon](https://img.shields.io/badge/donate-patreon-orange)](https://www.patreon.com/pardcode)\n[![YouTube](https://img.shields.io/badge/tutorial-youtube-red)](https://www.youtube.com/PardCode)\n\n\n## An easy to use C++ 3D Game Framework\n![CX3D Framework](Media/cx3d_screen.jpg)\nThe `CX3D Framework` is an easy to use Game Framework for the development of 3D Games in C++.\u003cbr\u003e\nThe framework is written in C++ 17 and it provides a set of features that allow the users to make games quickly at low-level.\u003cbr\u003e \nAt the same time, the users can improve `CX3D` by adding new functionalities or extending the existing ones.\u003cbr\u003e\nGames made upon this framework, and the framework itself, can be easily debugged and compiled in Release and/or Debug Mode.\n\nThe project aims to give the developers a complete and total control over the development of their games, starting from the internal `low-level` systems like Graphics Engine, Input Manager, Game System etc. arriving to the `high-level` classes (e.g. Entities).\n\nThis repository contains:\n* Source Code of `CX3D Framework`,\n* Source Code of a series of `Samples` that show how to use the framework (e.g. SpaceShooterGame).\n* Documentation\n\nThe repository contains also branches like `AllTutorials` and `AssetsAndLibs`, related to the YouTube Tutorial Series called `C++ 3D Game Tutorial Series`:\u003cbr\u003e \nThese branches must be considered completely unrelated to the framework.\u003cbr\u003e\n`CX3D Framework` derives from the Tutorial Series above mentioned.\u003cbr\u003e \n\nThe license is available [here](#license).\n\n## Features\n![CX3D Framework](Media/cx3d_screen2.jpg)\n`CX3D Framework` is currently composed by the following (yet incomplete) list of features:\n\n**Game System**\n* Entity System\n  * Object-Oriented\n  * Dynamic Creation and Release of custom Entities through templating features: `createEntity\u003cMyEntity\u003e()`\n  * Event-based Logic support: `onCreate()`, `onUpdate(f32 deltaTime)`, ...\n  * Default Entity classes available out-of-the-box: `LightEntity`,`MeshEntity`,`CameraEntity`,...\n\n**Graphics Engine**\n* Graphics APIs: `DirectX 11`\n* Forward Rendering\n* Phong-Based Lighting\n* Static Meshes Support: `.obj` (all formats supported by `tinyobjloader`)\n* Textures Support: `.jpg`,`.png`,`.bmp`,`.tga` etc. (all formats supported by `DirectXTex`) \n* Materials Support: `HLSL` Shading Language, Textures, Custom Data Passage\n\n**Input Manager**\n* Mouse Input Events Support\n* Keyboard Input Events Support\n\n**Windowing System**\n* Native windowing and event support under Windows.\n\n## Quick Guide to build CX3D Framework and Game Sample\n\n### Prerequisites:\n* Visual Studio 2019 or later.\n* Windows 10 or later.\n\nOpen `SpaceShooterGame.sln` Project, available under the `Samples/SpaceShooterGame` folder.\u003cbr\u003e\nIn Visual Studio, press the `Local Windows Debugger` button available in the main Toolbar.\n\n## Public discussion forum\n[The Discord Server](https://discord.gg/RymBzwKPyZ) is the place for project news, discussions of latest developments and any questions you have on how to use the `CX3D Framework` to develop your own 3D Games.\n\n\n## Support\nThis project is available under a free and permissive license, but needs a financial support to sustain its development.\u003cbr/\u003e \nIf `CX3D Framework` is helpful to you, consider to support it through [`Patreon`](https://www.patreon.com/pardcode).\u003cbr/\u003e  \nEvery single contribution makes the difference, regardless the amount.\u003cbr/\u003e\nMany thanks to all **the patrons** who have supported me so far! \u003cbr/\u003e\n  \n[![Patreon](https://img.shields.io/badge/Donate-Patreon-orange)](https://www.patreon.com/pardcode)  \n\n## License\n\nThe license of this project is based on the modified MIT-License.\n\nThat means you can do whatever you want with the code available in this repository. \u003cbr\u003e\nThe only conditions to meet are:\n\n- include the license text in your product (e.g. in the About Window of a GUI Application, About/Credits Section of a 2D/3D VideoGame)\n- include the license text in all the source code files (copy-paste the license text to the top of all the source code files you get from this repository, even if you have partially modified them.)\n\n\nIf you want to modify and redistribute the source code files available in this repository, you can optionally add your own copyright notice together with the license text in this way:\n\n```\n...\nCX3D Game Framework (https://github.com/PardCode/CX3D)\n\u003cproject name\u003e, \u003cwebsite link or nothing\u003e\n  \nCopyright (c) 2019-2024, PardCode\nCopyright (c) \u003cyour years\u003e, \u003cyour name\u003e  \n...\n```\n\nThe license text is available in the [`LICENSE`](LICENSE) file.\n\n\n","funding_links":["https://patreon.com/pardcode","https://www.pardcode.com/donate","https://www.patreon.com/pardcode"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpardcode%2Fcpp-3d-game-tutorial-series","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpardcode%2Fcpp-3d-game-tutorial-series","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpardcode%2Fcpp-3d-game-tutorial-series/lists"}