{"id":20078075,"url":"https://github.com/BenjaminYde/ArcticEngine","last_synced_at":"2025-05-05T22:31:56.409Z","repository":{"id":158900040,"uuid":"611942445","full_name":"BenjaminYde/ArcticEngineLinux","owner":"BenjaminYde","description":"Vulkan Game Engine Using Linux Dev Container","archived":false,"fork":false,"pushed_at":"2024-11-07T20:11:51.000Z","size":207,"stargazers_count":2,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-11-07T21:21:09.654Z","etag":null,"topics":["3d","clang","cmake","container","cplusplus","cpp","devcontainer","docker","dockerfile","game","glw","graphics","linux","rendering","sdk","sdl","vscode","vulkan","vulkan-api"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/BenjaminYde.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-03-09T21:32:43.000Z","updated_at":"2024-10-31T23:53:44.000Z","dependencies_parsed_at":"2024-10-23T23:11:50.099Z","dependency_job_id":"c7d58ec0-58e7-4d50-942d-f99cc96db0d4","html_url":"https://github.com/BenjaminYde/ArcticEngineLinux","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/BenjaminYde%2FArcticEngineLinux","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BenjaminYde%2FArcticEngineLinux/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BenjaminYde%2FArcticEngineLinux/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BenjaminYde%2FArcticEngineLinux/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/BenjaminYde","download_url":"https://codeload.github.com/BenjaminYde/ArcticEngineLinux/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224470923,"owners_count":17316710,"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","clang","cmake","container","cplusplus","cpp","devcontainer","docker","dockerfile","game","glw","graphics","linux","rendering","sdk","sdl","vscode","vulkan","vulkan-api"],"created_at":"2024-11-13T15:12:44.414Z","updated_at":"2025-05-05T22:31:50.950Z","avatar_url":"https://github.com/BenjaminYde.png","language":"C++","readme":"# ArcticEngine\n\nDevelopment Environment:\n\n- Linux, Ubuntu 22.04\n- LLVM Clang 19.1.2\n- CMake 3.30.5\n- C++ 23\n- VS Code using Dev Containers (Docker)\n\nLibraries used: \n\n- [Vulkan](https://www.lunarg.com/vulkan-sdk/): a new generation graphics and compute API that provides high-efficiency, cross-platform access to modern graphics processing units (GPUs), `1.3.290.0`\n- [SDL](https://github.com/libsdl-org/SDL): Simple Directmedia Layer (low level access to audio, keyboard, mouse, joystick, and graphics hardware),  `2.30.8`\n- [GLM](https://github.com/g-truc/glm): OpenGL Mathematics (GLM), `1.0.1`\n- [FMT](https://github.com/fmtlib/fmt): A modern formatting library, `10.2.1`\n- [VulkanMemoryAllocator](https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator): Easy to integrate Vulkan memory allocation library, `3.1.0`\n\n# CMake Graph Visualizer\n\nUse `graphviz` to visualize the dependency graph:\n\n1. Navigate to your build directory\n1. Run CMake with the --graphviz option\n    - This will generate a graph.dot file in your build directory \n1. Use dot (included in graphviz) to generate an image from the .dot file:\n    - This will generate a graph.png image file in your build directory.\n\n```sh\ncd /path/to/your/build\ncmake --graphviz=graph.dot .\ndot -Tpng graph.dot -o graph.png\n```\n# Vulkan Test\n\nTo verify that vulkan works correctly,\nrun the following command:\n\n```sh\nvulkaninfo\n```\n\nand\n\n```sh\nvkvia\n```\n\n# Renderdoc\n\n1. Open the terminal \n1. Enter the following command to open renderdoc:\n    ```bash\n    qrenderdoc\n    ```\n1. Inside the app, a warning should tell you that vulkan needs to be configured for renderdoc\n   Click on that warning, that enables you to generate the config. Make sure to generate in the user and not root.\n\n\n# Build Shaders\n\n`glslc` is a command-line tool that is part of the Shaderc project. It's essentially a compiler that transforms GLSL (OpenGL Shading Language) source code into SPIR-V binary format.\n\nTo use glsc, execute the following command format:\n\n```bash\nglslc \u003cpath_to_shader\u003e -o \u003cpath_of_build\u003e\n```\n\nFor example: \n\n```bash\nglslc shader.vert -o vert.spv\nglslc.exe shader.frag -o frag.spv\n```\n\nIn these examples, `shader.vert` is the vertex shader and `shader.frag` is the fragment shader. The `-o` option specifies the output file, which will be in SPIR-V format.\n\nAfterward, you can load these `.spv` files in your Vulkan application and create shader modules from them, which can then be used in the graphics pipeline.","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FBenjaminYde%2FArcticEngine","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FBenjaminYde%2FArcticEngine","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FBenjaminYde%2FArcticEngine/lists"}