{"id":13731835,"url":"https://github.com/DustinHLand/vkDOOM3","last_synced_at":"2025-05-08T05:31:37.943Z","repository":{"id":44364921,"uuid":"99983972","full_name":"DustinHLand/vkDOOM3","owner":"DustinHLand","description":"Vulkan DOOM 3 port based on DOOM 3 BFG Edition","archived":true,"fork":false,"pushed_at":"2023-06-03T17:44:38.000Z","size":3679,"stargazers_count":866,"open_issues_count":6,"forks_count":92,"subscribers_count":50,"default_branch":"master","last_synced_at":"2025-03-25T08:11:23.176Z","etag":null,"topics":["3d-graphics","doom","doom3","hardware-acceleration","vulkan"],"latest_commit_sha":null,"homepage":"","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/DustinHLand.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","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-08-11T02:36:48.000Z","updated_at":"2025-03-02T06:37:49.000Z","dependencies_parsed_at":"2024-11-14T23:40:37.055Z","dependency_job_id":null,"html_url":"https://github.com/DustinHLand/vkDOOM3","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DustinHLand%2FvkDOOM3","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DustinHLand%2FvkDOOM3/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DustinHLand%2FvkDOOM3/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DustinHLand%2FvkDOOM3/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DustinHLand","download_url":"https://codeload.github.com/DustinHLand/vkDOOM3/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253008772,"owners_count":21839699,"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-graphics","doom","doom3","hardware-acceleration","vulkan"],"created_at":"2024-08-03T02:01:39.564Z","updated_at":"2025-05-08T05:31:32.932Z","avatar_url":"https://github.com/DustinHLand.png","language":"C++","funding_links":[],"categories":["Graphics"],"sub_categories":[],"readme":"# Archived\nI have not had the time to maintain this to keep pace as a learning tool for Vulkan. There are still some good nuggets in here for beginners and it's a sizable chunk of code utilizing the API. However, it's years behind the API updates so it's not going to inform you on recent best practices. I recommend getting involved with https://github.com/RobertBeckebans/RBDOOM-3-BFG as it supports Vulkan and is actively maintained. \n\n# Overview\nvkDOOM3 adds a Vulkan renderer to the GPL DOOM 3 BFG Edition.  It was written as an example of how to use Vulkan for writing something more sizable than simple recipes.  It covers topics such as General Setup, Proper Memory \u0026 Resource Allocation, Synchronization, Pipelines, etc.  Note this is an unofficial release.\n\nNOTE: For those just wanting to dive straight into the Vulkan code you can find it here... neo/renderer/Vulkan.  Also you can just search for ID_VULKAN.\n\n## TODO\n\nAs of initial release all maps load and are playable.  However, the code base is not in complete parity with the OpenGL renderer.  Here are some notes on what is still left to do or address.\n\n* Anything using _accum is broken.\n* Some SWF masks will render black in a few places.\n* Render debug functionality is largely missing.  Compare RenderDebug_GL to RenderDebug_VK.\n* Screenshots aren't implemented atm.\n* The window will resize and go from windowed \u003c-\u003e fullscreen properly. But not all swapchain invalidation cases are handled.\n* Some cvars from pure BFG may not function as expected.\n\n# Building\n\n## Windows\n\nPrerequisites:\n\n* [Git for Windows](https://github.com/git-for-windows/git/releases)\n* [Vulkan SDK](https://vulkan.lunarg.com/) (several versions tested, but best to go with latest)\n* A [Vulkan-capable GPU](https://en.wikipedia.org/wiki/Vulkan_(API)#Compatibility) with the appropriate drivers installed\n* [DirectX SDK June 2010](https://www.microsoft.com/en-us/download/details.aspx?id=6812)\n\nStart `Git Bash` and clone the vkDOOM3 repo:\n\n~~~\ngit clone https://github.com/DustinHLand/vkDOOM3.git\n~~~\n\n### Visual Studio\n\nInstall [Visual Studio Community](https://www.visualstudio.com) with Visual C++ component. (Make sure you also check MFC/ATL in individual components. Community doesn't enabled this by default, and you may have issues compiling.)\n\nOpen the Visual Studio solution, `neo\\doom3.sln`, select the desired configuration and platform, then\nbuild the solution. (GL=OpenGL, VK=Vulkan)\n\nNote: I have been working with VS2015 and have not tried 2017 yet. Contributions welcome. :)\n\n### MinGW\n\nNot currently supported.\n\n## Linux\n\nNot currently supported.\n\n# Usage\n\n## Game data and patching\n\nThis source release does not contain any game data, the game data is still\ncovered by the original EULA and must be obeyed as usual.\n\nYou must patch the game to the latest version.\n\nNote that Doom 3 BFG Edition is available from the Steam store at\nhttp://store.steampowered.com/app/208200/\n\n## Setup\n\nYou can copy the assets over your repo (.gitignore is setup to handle this), or you can pass +set fs_basePath \u003cpath_to_steam_assets\u003e on the command line.\n\n## Steam\n\nThe Doom 3 BFG Edition GPL Source Code release does not include functionality for integrating with \nSteam.  This includes roaming profiles, achievements, leaderboards, matchmaking, the overlay, or\nany other Steam features.\n\n\n## Bink\n\nThe Doom 3 BFG Edition GPL Source Code release does not include functionality for rendering Bink Videos.\n\n\n## Back End Rendering of Stencil Shadows\n\nThe Doom 3 BFG Edition GPL Source Code release does not include functionality enabling rendering\nof stencil shadows via the \"depth fail\" method, a functionality commonly known as \"Carmack's Reverse\".\n\n# License\n\nSee LICENSE.txt for the GNU GENERAL PUBLIC LICENSE\n\nADDITIONAL TERMS:  The Doom 3 BFG Edition GPL Source Code is also subject to certain additional terms. You should have received a copy of these additional terms immediately following the terms and conditions of the GNU GPL which accompanied the Doom 3 BFG Edition GPL Source Code.  If not, please request a copy in writing from id Software at id Software LLC, c/o ZeniMax Media Inc., Suite 120, Rockville, Maryland 20850 USA.\n\nEXCLUDED CODE:  The code described below and contained in the Doom 3 BFG Edition GPL Source Code release is not part of the Program covered by the GPL and is expressly excluded from its terms.  You are solely responsible for obtaining from the copyright holder a license for such code and complying with the applicable license terms.\n\n## VMA\n\nneo/renderer/Vulkan/vma.h\n\nCopyright (c) 2017 Advanced Micro Devices, Inc. All rights reserved.\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n\n\n## JPEG library\n\nneo/renderer/jpeg-6/*\n\nCopyright (C) 1991-1995, Thomas G. Lane\n\nPermission is hereby granted to use, copy, modify, and distribute this\nsoftware (or portions thereof) for any purpose, without fee, subject to these\nconditions:\n(1) If any part of the source code for this software is distributed, then this\nREADME file must be included, with this copyright and no-warranty notice\nunaltered; and any additions, deletions, or changes to the original files\nmust be clearly indicated in accompanying documentation.\n(2) If only executable code is distributed, then the accompanying\ndocumentation must state that \"this software is based in part on the work of\nthe Independent JPEG Group\".\n(3) Permission for use of this software is granted only if the user accepts\nfull responsibility for any undesirable consequences; the authors accept\nNO LIABILITY for damages of any kind.\n\nThese conditions apply to any software derived from or based on the IJG code,\nnot just to the unmodified library.  If you use our work, you ought to\nacknowledge us.\n\nNOTE: unfortunately the README that came with our copy of the library has\nbeen lost, so the one from release 6b is included instead. There are a few\n'glue type' modifications to the library to make it easier to use from\nthe engine, but otherwise the dependency can be easily cleaned up to a\nbetter release of the library.\n\n## zlib library\n\nneo/framework/zlib/*\n\nCopyright (C) 1995-2005 Jean-loup Gailly and Mark Adler\n\nThis software is provided 'as-is', without any express or implied\nwarranty.  In no event will the authors be held liable for any damages\narising from the use of this software.\n\nPermission is granted to anyone to use this software for any purpose,\nincluding commercial applications, and to alter it and redistribute it\nfreely, subject to the following restrictions:\n\n1. The origin of this software must not be misrepresented; you must not\n claim that you wrote the original software. If you use this software\n in a product, an acknowledgment in the product documentation would be\n appreciated but is not required.\n2. Altered source versions must be plainly marked as such, and must not be\n misrepresented as being the original software.\n3. This notice may not be removed or altered from any source distribution.\n\n## Base64 implementation\n\nneo/idlib/Base64.cpp\n\nCopyright (c) 1996 Lars Wirzenius.  All rights reserved.\n\nJune 14 2003: TTimo \u003cttimo@idsoftware.com\u003e\n\tmodified + endian bug fixes\n\thttp://bugs.debian.org/cgi-bin/bugreport.cgi?bug=197039\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions\nare met:\n\n1. Redistributions of source code must retain the above copyright\n   notice, this list of conditions and the following disclaimer.\n\n2. Redistributions in binary form must reproduce the above copyright\n   notice, this list of conditions and the following disclaimer in the\n   documentation and/or other materials provided with the distribution.\n\nTHIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR\nIMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\nWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,\nINDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\nSERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\nHOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,\nSTRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN\nANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\nPOSSIBILITY OF SUCH DAMAGE.\n\n## IO for uncompress .zip files using zlib\n\nneo/framework/Unzip.cpp\nneo/framework/Unzip.h\n\nCopyright (C) 1998 Gilles Vollant\nzlib is Copyright (C) 1995-1998 Jean-loup Gailly and Mark Adler\n\n  This software is provided 'as-is', without any express or implied\n  warranty.  In no event will the authors be held liable for any damages\n  arising from the use of this software.\n\n  Permission is granted to anyone to use this software for any purpose,\n  including commercial applications, and to alter it and redistribute it\n  freely, subject to the following restrictions:\n\n  1. The origin of this software must not be misrepresented; you must not\n     claim that you wrote the original software. If you use this software\n     in a product, an acknowledgment in the product documentation would be\n     appreciated but is not required.\n  2. Altered source versions must be plainly marked as such, and must not be\n     misrepresented as being the original software.\n  3. This notice may not be removed or altered from any source distribution.\n\n## MD4 Message-Digest Algorithm\n\nneo/idlib/hashing/MD4.cpp\nCopyright (C) 1991-2, RSA Data Security, Inc. Created 1991. All\nrights reserved.\n\nLicense to copy and use this software is granted provided that it\nis identified as the \"RSA Data Security, Inc. MD4 Message-Digest\nAlgorithm\" in all material mentioning or referencing this software\nor this function.\n\nLicense is also granted to make and use derivative works provided\nthat such works are identified as \"derived from the RSA Data\nSecurity, Inc. MD4 Message-Digest Algorithm\" in all material\nmentioning or referencing the derived work.\n\nRSA Data Security, Inc. makes no representations concerning either\nthe merchantability of this software or the suitability of this\nsoftware for any particular purpose. It is provided \"as is\"\nwithout express or implied warranty of any kind.\n\nThese notices must be retained in any copies of any part of this\ndocumentation and/or software.\n\n## MD5 Message-Digest Algorithm\n\nneo/idlib/hashing/MD5.cpp\nThis code implements the MD5 message-digest algorithm.\nThe algorithm is due to Ron Rivest.  This code was\nwritten by Colin Plumb in 1993, no copyright is claimed.\nThis code is in the public domain; do with it what you wish.\n\n## CRC32 Checksum\n\nneo/idlib/hashing/CRC32.cpp\nCopyright (C) 1995-1998 Mark Adler\n\n## OpenGL headers\n\nneo/renderer/OpenGL/glext.h\nneo/renderer/OpenGL/wglext.h\n\nCopyright (c) 2007-2012 The Khronos Group Inc.\n\nPermission is hereby granted, free of charge, to any person obtaining a\ncopy of this software and/or associated documentation files (the\n\"Materials\"), to deal in the Materials without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Materials, and to\npermit persons to whom the Materials are furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be included\nin all copies or substantial portions of the Materials.\n\nTHE MATERIALS ARE PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nMATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.\n\n## Timidity\n\ndoomclassic/timidity/*\n\nCopyright (c) 1995 Tuukka Toivonen \n\nFrom http://www.cgs.fi/~tt/discontinued.html :\n\nIf you'd like to continue hacking on TiMidity, feel free. I'm\nhereby extending the TiMidity license agreement: you can now \nselect the most convenient license for your needs from (1) the\nGNU GPL, (2) the GNU LGPL, or (3) the Perl Artistic License.  \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FDustinHLand%2FvkDOOM3","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FDustinHLand%2FvkDOOM3","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FDustinHLand%2FvkDOOM3/lists"}