{"id":16067974,"url":"https://github.com/numpad/c-engine","last_synced_at":"2026-02-27T01:03:43.971Z","repository":{"id":178850795,"uuid":"657301878","full_name":"numpad/c-engine","owner":"numpad","description":"Experimental Game Engine in C99 which Supports Linux and WebAssembly.","archived":false,"fork":false,"pushed_at":"2025-03-08T14:13:10.000Z","size":23116,"stargazers_count":0,"open_issues_count":3,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-08T15:22:53.303Z","etag":null,"topics":["c99","emscripten","game-development","libwebsockets","linux","networking","opengl","opengl-es","sdl2","sockets","webassembly","websockets"],"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/numpad.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-06-22T19:03:20.000Z","updated_at":"2025-03-08T14:13:14.000Z","dependencies_parsed_at":"2024-10-27T17:22:11.101Z","dependency_job_id":"1ccd05b2-328f-457d-bfec-ef18c9ee18d8","html_url":"https://github.com/numpad/c-engine","commit_stats":{"total_commits":163,"total_committers":2,"mean_commits":81.5,"dds":"0.018404907975460127","last_synced_commit":"9e40d6856544204c6ada81a1ab898914dc428617"},"previous_names":["numpad/soil-soldiers"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/numpad%2Fc-engine","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/numpad%2Fc-engine/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/numpad%2Fc-engine/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/numpad%2Fc-engine/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/numpad","download_url":"https://codeload.github.com/numpad/c-engine/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243903166,"owners_count":20366434,"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":["c99","emscripten","game-development","libwebsockets","linux","networking","opengl","opengl-es","sdl2","sockets","webassembly","websockets"],"created_at":"2024-10-09T06:07:27.899Z","updated_at":"2026-02-27T01:03:43.966Z","avatar_url":"https://github.com/numpad.png","language":"C","readme":"# C-Engine\n\nA nice and simple low-level engine for simple game development in C99.\n\n\n## Building\n\nThe engine is being built using C99, OpenGL ES2, [SDL2](https://www.libsdl.org/)\nand a few other great libraries.\nSupported Platforms are Linux and the Browser (WebAssembly) – Windows and native\nAndroid will be implemented eventually and should in theory work without too many\nchanges.\n\n```bash\n# Linux:\n$ make\n\n# WebAssembly:\n$ make CC=emcc\n```\n\nAfterwards, run the game using `$ ./cengine` or `$ emrun cengine.html`, depending on your platform.\n\nTo serve the game as a Progressive Webapp, build using `CC=emcc` and copy `src/web/pwa/service-worker.js` in the same directory as `cengine.html`. The directory `src/web/pwa/` needs to be accessible.\n\n\n### Hot reloading\n\nOn linux, the engine supports hot reloading scenes \u0026 code used in them.\nThis requires changing the `Makefile`, `src/engine.c` and then running:\n```\n# Build loadable DLL\n$ make scenes\n\n# Send SIGUSR1 to running cengine process.\n$ killall -USR1 cengine  # (not tested)\n```\n\n\n### Server\n\n```bash\n# Build the server\n$ make -f src/server/Makefile\n\n# Run it on port 9123 (instead of 9124) as we use a reverse proxy.\n$ ./server -p 9123\n```\n\n```nginx\nserver {\n\tlisten 9124 ssl;\n\tserver_name gameserver.example.com;\n\troot /mnt/file_server;\n\n\tlocation / {\n\t\tsendfile on;\n\t\tsendfile_max_chunk 64m;\n\t\ttcp_nopush on;\n\n\t\tproxy_pass http://localhost:9123;\n\t\tproxy_http_version 1.1;\n\t\tproxy_set_header Upgrade $http_upgrade;\n\t\tproxy_set_header Connection \"upgrade\";\n\t\tproxy_set_header Host $host;\n\n\t}\n\n\tssl_certificate /path/to/fullchain.pem;\n\tssl_certificate_key /path/to/privkey.pem;\n}\n```\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnumpad%2Fc-engine","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnumpad%2Fc-engine","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnumpad%2Fc-engine/lists"}