{"id":22125667,"url":"https://github.com/jacmoe/pxlwolf","last_synced_at":"2025-07-25T16:32:42.047Z","repository":{"id":54656921,"uuid":"323130271","full_name":"jacmoe/pxlwolf","owner":"jacmoe","description":"Seriously overengineered Wolfenstein-like raycast engine","archived":false,"fork":false,"pushed_at":"2023-04-05T09:14:22.000Z","size":52676,"stargazers_count":5,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-04-16T04:20:11.191Z","etag":null,"topics":["allegro5","cpp17","ldtk","pixels","raycaster"],"latest_commit_sha":null,"homepage":"","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/jacmoe.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":"2020-12-20T17:44:56.000Z","updated_at":"2024-03-30T10:24:59.000Z","dependencies_parsed_at":"2022-08-13T23:00:58.240Z","dependency_job_id":null,"html_url":"https://github.com/jacmoe/pxlwolf","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jacmoe%2Fpxlwolf","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jacmoe%2Fpxlwolf/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jacmoe%2Fpxlwolf/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jacmoe%2Fpxlwolf/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jacmoe","download_url":"https://codeload.github.com/jacmoe/pxlwolf/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":227594581,"owners_count":17791148,"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":["allegro5","cpp17","ldtk","pixels","raycaster"],"created_at":"2024-12-01T16:37:04.342Z","updated_at":"2025-07-25T16:32:42.034Z","avatar_url":"https://github.com/jacmoe.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"* pxlwolf [Moved to codeberg]\n\n*Achtung*: This repository will not be updated.\n\nDevelopment will maybe continue at -\u003e https://codeberg.org/jacmoe/pxlwolf\n\n----------------------------------------------------------------------------------\n\n\n    # The\n    # ██████╗ ██╗  ██╗██╗     ██╗    ██╗ ██████╗ ██╗     ███████╗\n    # ██╔══██╗╚██╗██╔╝██║     ██║    ██║██╔═══██╗██║     ██╔════╝\n    # ██████╔╝ ╚███╔╝ ██║     ██║ █╗ ██║██║   ██║██║     █████╗  \n    # ██╔═══╝  ██╔██╗ ██║     ██║███╗██║██║   ██║██║     ██╔══╝  \n    # ██║     ██╔╝ ██╗███████╗╚███╔███╔╝╚██████╔╝███████╗██║     \n    # ╚═╝     ╚═╝  ╚═╝╚══════╝ ╚══╝╚══╝  ╚═════╝ ╚══════╝╚═╝     \n    # project\n    # https://github.com/jacmoe/pxlwolf\n    #\n    # (c) 2020 - 2025 Jacob Moena\n    #\n    # MIT License\n    #\n\n# pxlwolf\nSeriously overengineered Wolfenstein-like raycast engine\n\n## TOC\n\n- [Screenshots](#Screenshots)\n  - [PixelWolf](#PixelWolf)\n  - [Level Editing in LDtk](#Level-Editing-in-LDtk)\n- [Goals](#Goals)\n- [Features](#Goals)\n  - [Implemented features](#Implemented-features)\n  - [Planned features](#Planned-features)\n- [Dependencies](#Dependencies)\n  - [External dependencies](#External-dependencies)\n  - [Bundled dependencies](#Bundled-dependencies)\n- [Credits](#Credits)\n\n\n## Screenshots\n### PixelWolf \n![Clutter creates an atmosphere][clutter]\n\n![Static sprites][sprites]\n\n![Textured floor and ceiling][corridor]\n\n![PixelWolf][pxlwolf]\n\n\n### Level Editing in LDtk\nPxlwolf uses the [LDtk Level Designer Toolkit][ldtk_link] to create and edit levels.\n![LDTK][ldtk]\nFirst four levels of Wolfenstein 3D.\n![Wolfenstein Levels][ldtklevels]\nTaking care of the details.\n![Static sprites and pickups][detailing]\n\n## Goals\n- Explore raycasting, including height-mapping and animated tiles.\n- Learn how to use modern C++ features, and move from C++98 to C++17 and beyond.\n- Create a complete game, and not just a tech demo.\n- Use third-party code whenever possible, but keep things simple.\n\n## Features\nHere I will write the features of PixelWolf down as I implement them.\n### Implemented\n### Planned\n\n## Dependencies\nPixelWolf is being developed on Linux and Windows.\n\nCompiled using MSVC 2019 on Windows, and GCC 9.3 on Linux.\n\nUses Visual Studio on Windows, and CMake on Linux.\n\n### External dependencies\n|Library|Description|License|\n|-------|-----------|-------|\n|[Allegro 5.2][allegro]|A game programming library|Zlib license|\n\n#### Windows\nThe easiest way to get Allegro on Windows is via Nuget, which is why this project uses Visual Studio for Windows.\n\nThe PixelWolf solution references two projects, Lua and PhysicsFS, which should be generated using CMake before opening the project.\n\nUse the CMake script in `3rdparty` and choose `3rdparty/vsbuild` as the \"where to build the binaries\" folder.\n\nMake sure `win32` is chosen as the architecture, otherwise CMake will choose `x64` (and that is not going  to work).\n\nAfter having generated the two projects, you can now open the PixelWolf solution. Maybe in the future, there will be a better way.\n\n\n#### Linux\nAllegro should be available from your package manager. On Ubuntu, perform a simple ```sudo apt-get install liballegro5-dev```\n\n\nOn Linux PixelWolf is fully CMake'd. Simply open the main CMake script using CMake or a CMake-aware program, like VSCode or KDevelop.\n\n\n### Bundled dependencies\n|Library|Description|License|\n|-------|-----------|-------|\n|[cereal][cereal]|C++11 library for serialization|BSD license|\n|[enTT][entt]|C++ entity component system|MIT license|\n|[Lua 5.4][lua]|Scripting language|zlib License|\n|[PhysicsFS ][physfs]|Archive support for games|zlib license|\n|[PhysFS++][physpp]|C++ wrapper for PhysicsFS|zlib license|\n|[RapidJSON][rapidjson]|A fast JSON parser/generator for C++|MIT license|\n|[Sol][sol]|A C++11 Lua wrapper|MIT License|\n|[spdlog][spdlog]|Logging library|MIT license|\n|[stb_image][stbimage]|Image loader|Public domain|\n\nThe bundled dependencies are all header-only, and doesn't require building, except for `Lua`, `lgui`, and `PhysicsFS`.\n\nOn Windows, you need to generate the projects simply by running the `` batch file from the `3rdparty` directory. You need CMake, Doxygen and the Graphviz tools (dot) installed.\n\nOn Linux, the CMake script handles all this for you.\n\n\n## Credits\n\nThis project is using code from the [c-raycaster project][cray] - the raycaster and a lot of the pixel related functionality is borrowed from the project. It also uses code from Herrecito's [2.5D Raycaster engine][herrecito] in C. And the overall structure of the project is lifted from Balantkissdev's [Raycaster engine][balantkiss].\n\n\n[pxlwolf]: https://github.com/jacmoe/pxlwolf/raw/main/screenshots/Screenshot.jpg \"Screenshot of PixelWolf\"\n[corridor]: https://github.com/jacmoe/pxlwolf/raw/main/screenshots/corridor.png \"Textured wall and ceiling\"\n[detailing]: https://github.com/jacmoe/pxlwolf/raw/main/screenshots/detailing.png \"Taking care of the details\"\n[clutter]: https://github.com/jacmoe/pxlwolf/raw/main/screenshots/clutter.png \"Creating an atmosphere\"\n[sprites]: https://github.com/jacmoe/pxlwolf/raw/main/screenshots/sprites.png \"Static sprites\"\n[ldtk]: https://github.com/jacmoe/pxlwolf/raw/main/screenshots/LevelEditing.jpg \"Level editing in LDTK\"\n[ldtklevels]: https://github.com/jacmoe/pxlwolf/raw/main/screenshots/ldtklevels.png \"First four levels of Wolf3d\"\n\n[ldtk_link]: https://ldtk.io/ \"LDtk Level Designer Toolkit\"\n\n[herrecito]: https://github.com/herrecito/engine \"Herrecito's 2.5D Raycaster engine in C\"\n[balantkiss]: https://github.com/balintkissdev/raycaster-engine \"Balantkissdev's Raycaster engine\"\n[cray]: https://github.com/ckinvents/c-raycaster \"c-raycaster project by ckinvents\"\n\n[allegro]: https://liballeg.org/ \"A game programming library\"\n[cereal]: https://uscilab.github.io/cereal/ \"C++11 library for serialization\"\n[entt]: https://github.com/skypjack/entt \"C++ entity component system\"\n[lua]: https://www.lua.org/download.html \"Scripting language\"\n[physfs]: https://www.icculus.org/physfs/ \"Archive support for games\"\n[physpp]: https://github.com/kahowell/physfs-cpp \"C++ wrapper for PhysicsFS\"\n[rapidjson]: https://rapidjson.org/ \"A fast JSON parser/generator for C++\"\n[sol]: https://github.com/ThePhD/sol \"A C++11 Lua wrapper\"\n[spdlog]: https://github.com/gabime/spdlog \"Logging library\"\n[stbimage]: https://github.com/nothings/stb \"Image loader\"\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjacmoe%2Fpxlwolf","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjacmoe%2Fpxlwolf","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjacmoe%2Fpxlwolf/lists"}