{"id":19713026,"url":"https://github.com/connorsweeneydev/simplegameengine","last_synced_at":"2025-02-27T15:53:28.251Z","repository":{"id":222142678,"uuid":"756053201","full_name":"ConnorSweeneyDev/SimpleGameEngine","owner":"ConnorSweeneyDev","description":null,"archived":false,"fork":false,"pushed_at":"2024-07-07T19:59:51.000Z","size":51152,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-07-07T21:00:58.360Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"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/ConnorSweeneyDev.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":"2024-02-11T20:50:50.000Z","updated_at":"2024-07-07T21:01:10.057Z","dependencies_parsed_at":"2024-07-07T21:11:02.539Z","dependency_job_id":null,"html_url":"https://github.com/ConnorSweeneyDev/SimpleGameEngine","commit_stats":null,"previous_names":["connorsweeneydev/3dgameengine","connorsweeneydev/simplegameengine"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ConnorSweeneyDev%2FSimpleGameEngine","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ConnorSweeneyDev%2FSimpleGameEngine/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ConnorSweeneyDev%2FSimpleGameEngine/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ConnorSweeneyDev%2FSimpleGameEngine/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ConnorSweeneyDev","download_url":"https://codeload.github.com/ConnorSweeneyDev/SimpleGameEngine/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241031735,"owners_count":19897347,"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":[],"created_at":"2024-11-11T22:19:24.167Z","updated_at":"2025-02-27T15:53:28.228Z","avatar_url":"https://github.com/ConnorSweeneyDev.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Building and Executing\nThis project is optimized to be built with the following targets in mind:\n- Windows 11 MinGW 64-bit GCC 14.2.0\n- Ubuntu 18.04 GLIBC Version 2.27\n\nVersion information for dependencies can be found in `external/version_info.txt`.\n\nOn Windows, the binary will be statically linked to any C++ runtime libraries that are used, but dynamically linked to\nSDL2. On Linux, the binary will be statically linked where possible (libgcc and libstdc++) but dynamically linked to\neverything else. Part of the build process is to use my\n[ResourceGenerator](https://github.com/ConnorSweeneyDev/ResourceGenerator) to make assets such as shaders and textures a\npart of the program rather than needing them present at runtime, with the cost of longer linking times and a larger\nexecutable.\n\nAfter following the platform specific instructions below you can execute `script/build.sh` followed by `script/run.sh`\nfrom the root of the project to build and run the project.\n\n### Windows\nDo the following to ensure your environment is set up correctly:\n- Download a 64-bit [MinGW](https://winlibs.com/) distribution with Clang/LLVM support and put the `[DISTRIBUTION]/bin`\n  directory in your path.\n- Install GNUMake by running `winget install ezwinports.make`.\n- Ensure that you have `[GIT_INSTALLATION]/bin` in your path.\n\n### Linux\nDo the following on Ubuntu 18.04 to ensure your environment is set up correctly:\n- Only run `sudo apt update \u0026\u0026 sudo apt upgrade` if you haven't already.\n- Run `sudo apt install git g++ gdb make`.\n\nAfter building, due to better packages on Ubuntu 22.04 you can move there to run the binary after the following step:\n- Only run `sudo apt install alsa xorg openbox` if you don't already have an audio and window manager.\n\n# Updating SDL\nSince the library files are all within the project, to update SDL for each platform some extra steps are required. The\nreleases can be found [here](https://github.com/libsdl-org/SDL/releases).\n\n### Windows\nOn top of the previous windows setup, go to the releases page and download the file ending `mingw.zip`. Extract this and\ngo to `x86_64-w64-mingw32` and you will have access to three important folders:\n- `bin` which contains the file that can replace the one in `binary/windows` folder of this project.\n- `include/SDL2` which contains files that can replace the contents of the `external/include/sdl2/windows` folder of\n  this project.\n- `lib` which contains the files (not the folders) to replace the contents of the `external/library/sdl2/windows` folder\n  of this project.\n\n### Linux\nOn top of having followed the build instructions for linux, do the following to ensure your environment is set up\ncorrectly:\n- Only run `sudo sed -i~orig -e 's/# deb-src/deb-src/' /etc/apt/sources.list` if you haven't already.\n- Only Run `sudo apt update` if you just ran the previous command.\n- Run `sudo apt build-dep libsdl2-dev`.\n\nNow you can download the `SDL2-[VERSION].tar.gz` file from the releases page and extract it, to build it from source.\nThis can be done by doing the following:\n- Run `tar -xvzf SDL2-[VERSION].tar.gz` to extract.\n- Run `cd SDL2-[VERSION] \u0026\u0026 mkdir build \u0026\u0026 cd build` as SDL won't build in the root.\n- Run `../configure` to make SDL configure your environment for you.\n- Run `make` to build the project.\n\nNow you have two important directories:\n- `SDL2-[VERSION]/include` which contains files (only the `.h` files) that can replace the contents of the\n  `external/include/sdl2/linux` directory of this project.\n- `SDL2-[VERSION]/build/build/.libs` which contains files (excluding the `.d` and `.o` files) that can replace the\n  `external/library/sdl2/linux` directory of this project. This directory has the caveat that you need to move\n  `libSDL2-2.0.so.0` from the library directory into `binary/linux`.\n\n# Updating glad/khr\nGo through the [installation](https://glad.dav1d.de/) for glad/khr to get a zip file, put `glad.h` in the\n`external/include/glad` directory and `khrplatform.h` in the `external/include/khr` directory. Then put `glad.c` in the\n`external/source` directory. Ensure that after replacing all of those files, you remove all instances of `KHR/` from the\n`#include` statements in `glad.c` due to the directory structure.\n\n# Updating glm\nGo to the [releases](https://github.com/g-truc/glm/releases) page and download the one you want, extract it and replace\nthe contents of the `external/include/glm` directory with the contents of the `glm` directory in the extracted folder.\nMake sure to delete the `CMakeLists.txt`, `copying.txt`, `glm.cppm` and `detail/glm.cpp` files as they are not needed.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fconnorsweeneydev%2Fsimplegameengine","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fconnorsweeneydev%2Fsimplegameengine","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fconnorsweeneydev%2Fsimplegameengine/lists"}