{"id":18991410,"url":"https://github.com/aziascreations/pb-gameframework","last_synced_at":"2026-03-19T07:31:15.700Z","repository":{"id":100760310,"uuid":"299756194","full_name":"aziascreations/PB-GameFramework","owner":"aziascreations","description":"A relatively simple 2D/3D game framework that aims to implement much needed functions into PureBasic. (WIP)","archived":false,"fork":false,"pushed_at":"2020-11-18T16:02:38.000Z","size":19194,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-21T11:20:26.770Z","etag":null,"topics":["framework","game-framework","purebasic"],"latest_commit_sha":null,"homepage":"","language":"PureBasic","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"unlicense","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/aziascreations.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-09-29T22:56:04.000Z","updated_at":"2025-01-07T11:50:28.000Z","dependencies_parsed_at":"2023-06-09T16:15:29.807Z","dependency_job_id":null,"html_url":"https://github.com/aziascreations/PB-GameFramework","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/aziascreations/PB-GameFramework","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aziascreations%2FPB-GameFramework","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aziascreations%2FPB-GameFramework/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aziascreations%2FPB-GameFramework/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aziascreations%2FPB-GameFramework/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aziascreations","download_url":"https://codeload.github.com/aziascreations/PB-GameFramework/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aziascreations%2FPB-GameFramework/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30049883,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-03T14:38:37.398Z","status":"ssl_error","status_checked_at":"2026-03-03T14:38:06.721Z","response_time":61,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["framework","game-framework","purebasic"],"created_at":"2024-11-08T17:13:50.184Z","updated_at":"2026-03-03T14:43:07.480Z","avatar_url":"https://github.com/aziascreations.png","language":"PureBasic","funding_links":[],"categories":[],"sub_categories":[],"readme":"# PureBasic 2D/3D Game Framework Test\nA basic 2D/3D game framework for PureBasic.\n\n## Features\nThe framework features at first a very simple set of features:\n\u003c!--These features come embedded in the *core* part of the framework.--\u003e\n* Easily configurable build scripts\n* Logging (Primitive)\n* Screens (aka: scenes)\n\nAnd if you want you can toggle the following features by editing the [build script config file](build-config.cmd):\n* GUI system (Primitive)\n* Launch arguments parsing (Unfinished)\n* Live asset manipulator (Unfinished)\n* Resource Management\n* Snappy compression/decompression support (Windows only \u003csub\u003e\u003csup\u003eeasily portable to Linux if you compile the .so files, I think...\u003c/sup\u003e\u003c/sub\u003e)\n* Unity style launcher (Unfinished)\n* XInput controller support (Windows only)\n\n## Documentation\nAll of the documentation for the different components of the framework can be found in the *\"[Documentation/](Documentation/readme.md)\"* folder.\u003cbr\u003e\nA summary of all the pages will also be present in there.\n\n## Building\n\n### For release\nTo clean, build and package the game and launcher, you can run the included scripts.\u003cbr\u003e\nAnd if you want to configure these scripts, you can modify the *\"[build-config.cmd](build-config.cmd)\"* file and modify the lines that are relevant to your needs.\n\n#### Scripts\n\n\u003cb\u003e$\u003e [build-clean.cmd](build-clean.cmd)\u003c/b\u003e\u003cbr\u003e\nRemoves the *\"Build/\"* and *\"Packages/\"* folders and some trash.\n\n\u003cb\u003e$\u003e [build-compile.cmd](build-compile.cmd)\u003c/b\u003e\u003cbr\u003e\nThis script builds the x86 and x64 versions of the game and launcher, copies the content of the *\"[Data/](Data/)\"* and *\"[Licenses/](Licenses/)\"* folders inside the *\"Build/\"* folder and removes the trash from them.\n\n\u003cb\u003e$\u003e [build-package.cmd](build-package.cmd)\u003c/b\u003e\u003cbr\u003e\nPackages the game in archives that are then put in the *\"Packages/\"* folder.\n\n\u003cb\u003e$\u003e [build-make-pbp.cmd](build-make-pbp.cmd)\u003c/b\u003e\u003cbr\u003e\nRemoves any PureBasic project file and creates one with all the constants that are relevant and present in the config script.\n\n### Modules\n\n#### XInput\nYou can enable XInput support by compiling the game and framework by setting the `#FRAMEWORK_MODULE_XINPUT` constant in the compiler or by making sure the build script has the variable `%MODULE_FRAMEWORK_XINPUT%` set to `1`.\n\nBy doing so, you will have access to the `XInput` module and it's fonctions, and the XInput library will be loaded when you call `Framework::Init()`.\nAnd since this module is the only controller module present in the framework for now, if you activate it, the framework will take care of calling the controller-related procedures of your screens with the help of the `ControllerManager` module.\n\nMore info about the XInput module can be found in the [relevant documentation](Documentation/XInput.md).\n\n### For development\nIf you simply want to run the game to test your code, you can either compile *\"[Game.pb](Game.pb)\"* or simply open the *\"[Game.pbp](Game.pbp)\"* file and use the project.\u003cbr\u003e\nJust keep in mind that you will have to copy the appropriate DLL from the *\"[Libraries/](Libraries/)\"* folder in the root folder for this to work.\u003cbr\u003e\u003cbr\u003e\nAnd if you want to run the launcher, you can either compile *\"[Launcher.pb](Launcher.pb)\"* or simply open the *\"[Game.pbp](Game.pbp)\"* project file and select the launcher build.\n\n## Known Bugs\n* Some objects/entities can disapear if you move the game window to a different screen.\u003cbr\u003e\nI have no idea on why this happens...\n* The Game can hang a tiny bit and crash when shutting it down.\u003cbr\u003e\nIt is probably related to the main loop, but I'm not sure why it happens yet, probably a race condition.\n* The x86 version of the game look \"stuttery\"...\n\n## Licenses\n\n### Framework\nThe custom framework and examples are covered under the *Unlicense* license.\u003cbr\u003e\nYou can check it here: *\"[LICENSE](LICENSE)\"*\n\nDoes not apply to the trash folders for \"safety\", just in case I ever publish them.\n\n### PureBasic Libraries\nSome of the internal libraries of PureBasic have special licenses, you can find their licenses in the *\"[Licenses/](Licenses/)\"* folder.\u003cbr\u003e\nThe license files are taken from the *\"[fantaisie-software/purebasic-repository-template](https://github.com/fantaisie-software/purebasic-repository-template)\"* repository.\n\n### Google's Snappy\n\n\n### Remarks\nTo avoid any issues with the fact you may have to include some license files in your final product, the build script copies the whole *\"[Licenses/](Licenses/)\"* folder in the *\"Build/Commons/\"* folder and adds the one for the framework under the following name: *\"Custom PB Framework.txt\"*.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faziascreations%2Fpb-gameframework","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faziascreations%2Fpb-gameframework","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faziascreations%2Fpb-gameframework/lists"}