{"id":26959095,"url":"https://github.com/xzripper/gsdk","last_synced_at":"2025-04-03T04:34:38.723Z","repository":{"id":243224323,"uuid":"811829643","full_name":"xzripper/gsdk","owner":"xzripper","description":"Game Software Development Kit.","archived":false,"fork":false,"pushed_at":"2025-02-01T15:22:50.000Z","size":16442,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-02-01T16:27:05.341Z","etag":null,"topics":["2d","3d","game-developement","game-engine","gsdk","java-game"],"latest_commit_sha":null,"homepage":"https://xzripper.github.io/gsdk","language":"Java","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/xzripper.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":"2024-06-07T11:41:46.000Z","updated_at":"2025-02-01T15:22:54.000Z","dependencies_parsed_at":"2024-06-07T13:02:55.618Z","dependency_job_id":"39d900b9-99c9-4b56-9a96-2c0e61045ae4","html_url":"https://github.com/xzripper/gsdk","commit_stats":null,"previous_names":["violent-studio/vsdk"],"tags_count":8,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xzripper%2Fgsdk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xzripper%2Fgsdk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xzripper%2Fgsdk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xzripper%2Fgsdk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/xzripper","download_url":"https://codeload.github.com/xzripper/gsdk/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246939245,"owners_count":20857916,"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":["2d","3d","game-developement","game-engine","gsdk","java-game"],"created_at":"2025-04-03T04:34:30.998Z","updated_at":"2025-04-03T04:34:38.713Z","avatar_url":"https://github.com/xzripper.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"![java_kbSEhZPUez-min](https://github.com/user-attachments/assets/35914fb0-5649-4180-9261-1141a694e486)\n\u003ch1 align=\"center\"\u003eVSDK is now being rebranded to GSDK due to transfer of project from studio profile to main developer profile.\u003c/h1\u003e\ntodo gshader:begin:end:is_begun\n\u003cp align=\"center\"\u003e\u003cimg src=\"gsdk2.png\"\u003e\u003c/p\u003e\n\n\u003ch3 align=\"center\"\u003eGSDK Development Phase: \u003ccode\u003eGSDK_V0.0.0.8-ALPHA/DEV_PUBLISH\u003c/code\u003e.\u003c/h3\u003e\n\u003ch3 align=\"center\"\u003eGSDK is currently being developed by a solo developer. I appreciate your patience and understanding as progress may take some time.\u003c/h3\u003e\n\n![opera_bFDdi1rxJH](https://github.com/user-attachments/assets/eb75b696-df66-453c-98d9-80a1c10e35b3)\nNew! Visit documentation (extremely unfinished): https://violent-studio.github.io/vsdk\n\n\u003ch3 align=\"center\"\u003eExample 1\u003c/h3\u003e\n\n```java\nimport com.raylib.Raylib;\n\nimport com.raylib.Jaylib.Vector3;\n\nimport static com.raylib.Jaylib.BLACK;\n\nimport vsdk.source.utils.WindowManager;\nimport static vsdk.source.utils.WindowManager.WindowFlags;\n\nimport vsdk.source.vectors.Vector2Df;\nimport vsdk.source.vectors.Vector3Df;\n\nimport vsdk.source.vrender.Quad;\n\nimport vsdk.source.utils.GShader;\n\npublic class Main {\n    public static void main(String[] args) {\n        WindowFlags flags = WindowManager.initWindow(\n            \"Window.\",\n            1000,\n            800,\n            120,\n            WindowManager.FULLSCREEN_MODE,\n            Raylib.FLAG_VSYNC_HINT | Raylib.FLAG_MSAA_4X_HINT,\n            false\n        );\n\n        Raylib.Camera3D cam = new Raylib.Camera3D()\n                ._position(new Vector3(1.0f, 0.0f, 0.0f))\n                .target(new Vector3(0.0f, 0.0f, 0.0f))\n                .up(new Vector3(0.0f, 1.0f, 0.0f))\n                .fovy(45.0f)\n                .projection(Raylib.CAMERA_PERSPECTIVE);\n\n        GShader rainbow = new GShader(null, \"shdr.frag\", GShader.FILE, false);\n\n        rainbow.combineFragment(GShader.FILE, \"shdr2.frag\");\n\n        Raylib.DisableCursor();\n\n        while(!Raylib.WindowShouldClose()) {\n            Raylib.UpdateCamera(cam, Raylib.CAMERA_FREE);\n\n            Raylib.BeginDrawing();\n            Raylib.ClearBackground(BLACK);\n            Raylib.BeginMode3D(cam);\n\n            rainbow.setUniformFloat(\"time\", (float) Raylib.GetTime());\n\n            rainbow.begin();\n\n            for(int z=-10; z \u003c 20; z += 10) {\n                Quad.drawQuad(\n                    new Vector2Df(10, 10),\n                    new Vector3Df(0, 0, z),\n                    new Vector3Df(90, (float) Math.cos(Raylib.GetTime() * 0.7) * 90, 0),\n                    BLACK,\n                    true\n                );\n            }\n\n            rainbow.end();\n\n            Raylib.EndMode3D();\n            Raylib.EndDrawing();\n        }\n\n        rainbow.unload();\n\n        Raylib.CloseWindow();\n    }\n}\n```\n\nshdr.frag\n```glsl\n//:put-version\n\n//:put-io\n//:put-uni\n\nvoid main() {\n    //:pshdr#grad\n\n    finalColor = color;\n}\n```\n\nshdr2.frag\n```glsl\n//:version\n#version 330\n\n//:io\nin vec2 fragTexCoord;\nout vec4 finalColor;\n//:eio\n\n//:uni\nuniform float time;\n//:euni\n\nvoid main() {\n    //:shdr#grad\n    float speed = 4.0;\n    float frequency = 64.0;\n\n    float red = 0.5 + 0.5 * sin(frequency * fragTexCoord.x + speed * time + 0.0);\n    float green = 0.5 + 0.5 * sin(frequency * fragTexCoord.x + speed * time + 2.0);\n    float blue = 0.5 + 0.5 * sin(frequency * fragTexCoord.x + speed * time + 4.0);\n\n    vec4 color = vec4(red, green, blue, 1.0);\n    //:eshdr\n\n    finalColor = color;\n}\n```\n\n\u003cp align=\"center\"\u003e\u003cimg src=\"https://github.com/user-attachments/assets/f46519ac-9f5c-4656-baf8-04eb11e94921\"\u003e\u003c/p\u003e\n\n\u003ch3 align=\"center\"\u003eGSDK Baked 2D Glow Textures.\u003c/h3\u003e\n\u003cp align=\"center\"\u003e\u003cimg src=\"https://github.com/user-attachments/assets/9319d13b-cb0c-4287-9a3c-f99a30bf3cc6\"\u003e\u003c/p\u003e\n\n\u003ch3 align=\"center\"\u003eGSDK Bump Mapping.\u003c/h3\u003e\n\n```java\nimport com.raylib.Raylib;\n\nimport static com.raylib.Jaylib.Vector3;\n\nimport static com.raylib.Jaylib.BLACK;\nimport static com.raylib.Jaylib.WHITE;\n\nimport gsdk.source.grender.BumpMap;\n\npublic class Main {\n    public static void main(String[] args) {\n        Raylib.InitWindow(1000, 800, \"Test window.\");\n\n        Raylib.SetTargetFPS(60);\n\n        Raylib.Camera3D cam = new Raylib.Camera3D()\n                ._position(new Vector3(3.0f, 0.0f, 0.0f))\n                .target(new Vector3(0.0f, 0.0f, 0.0f))\n                .up(new Vector3(0.0f, 1.0f, 0.0f))\n                .fovy(45.0f)\n                .projection(Raylib.CAMERA_PERSPECTIVE);\n\n        Raylib.Model cube = Raylib.LoadModelFromMesh(Raylib.GenMeshCube(3.0f, 2.5f, 0.3f));\n\n        BumpMap bumpMap = new BumpMap(\"RES\\\\albedo2.png\",\n                                    \"RES\\\\normal2.png\",\n                                    new float[] {0.0f, 0.0f, 0.0f},\n                                    new float[] {0.0f, 0.0f, 0.0f}, 32.0f, 0.1f, true);\n\n        cube.materials(bumpMap.getBumpMaterial());\n\n        while(!Raylib.WindowShouldClose()) {\n            Raylib.UpdateCamera(cam, Raylib.CAMERA_ORBITAL);\n\n            Raylib.BeginDrawing();\n\n            Raylib.ClearBackground(BLACK);\n            Raylib.BeginMode3D(cam);\n\n            bumpMap.updLightPos(new float[] {Raylib.GetMouseX(), Raylib.GetMouseY(), 0.0f});\n            bumpMap.updViewPos(new float[]{cam.target().x(), cam.target().y(), cam.target().z()});\n\n            Raylib.DrawModel(cube, new Vector3(0.0f, 0.0f, 0.0f), 1.0f, WHITE);\n\n            Raylib.EndMode3D();\n            Raylib.EndDrawing();\n        }\n\n        Raylib.UnloadModel(cube);\n\n\n        Raylib.CloseWindow();\n    }\n}\n```\n\n\u003cimg src=\"https://github.com/user-attachments/assets/b2481e05-1233-40c6-ba35-e24d42274990\"\u003e\n\n\u003ch3 align=\"center\"\u003e\u003ca href=\"https://github.com/violent-studio/vsdk/blob/main/vsdk/examples%26docs/GLib.Ginet.TCP.md\"\u003eGSDK Chat implementation via Ginet (Game Immediate mode Networking library).\u003c/a\u003e\u003c/h3\u003e\n\n\u003ch3 align=\"center\"\u003eGSDK Noise Generator.\u003c/h3\u003e\n\n\u003cimg src=\"https://github.com/violent-studio/vmedia/blob/main/vsdk/PerlinBillowNoiseImage.png?raw=true\" width=\"300\"\u003e\u003cimg src=\"https://github.com/violent-studio/vmedia/blob/main/vsdk/PerlinFractalNoiseImage.png?raw=true\" width=\"300\"\u003e\u003cimg src=\"https://github.com/violent-studio/vmedia/blob/main/vsdk/PerlinNoiseImage.png?raw=true\" width=\"300\"\u003e\u003cimg src=\"https://github.com/violent-studio/vmedia/blob/main/vsdk/PerlinRidgeNoiseImage.png?raw=true\" width=\"300\"\u003e\u003cimg src=\"https://github.com/violent-studio/vmedia/blob/main/vsdk/PerlinTurbulenceNoiseImage.png?raw=true\" width=\"300\"\u003e\u003cimg src=\"https://github.com/violent-studio/vmedia/blob/main/vsdk/SimplexBillowNoiseImage.png?raw=true\" width=\"300\"\u003e\u003cimg src=\"https://github.com/violent-studio/vmedia/blob/main/vsdk/SimplexNoiseImage.png?raw=true\" width=\"300\"\u003e\u003cimg src=\"https://github.com/violent-studio/vmedia/blob/main/vsdk/SimplexRidgeNoiseImage.png?raw=true\" width=\"300\"\u003e\u003cimg src=\"https://github.com/violent-studio/vmedia/blob/main/vsdk/SimplexTurbulenceNoiseImage.png?raw=true\" width=\"300\"\u003e\u003cimg src=\"https://github.com/violent-studio/vmedia/blob/main/vsdk/WhiteNoiseImage.png?raw=true\" width=\"300\"\u003e\n\n\u003ch3 align=\"center\"\u003eGSDK Shader Playground.\u003c/h3\u003e\n\n\u003cp align=\"center\"\u003e\u003cimg src=\"https://github.com/xzripper/gsdk/blob/main/gsdk/r_utilities/shader_playground/utility.png?raw=true\" width=\"600\"\u003e\u003c/p\u003e\n\n\u003ch3 align=\"center\"\u003eGSDK IGUI.\u003c/h3\u003e\n\n\u003cp align=\"center\"\u003e\u003cimg src=\"https://github.com/violent-studio/vsdk/assets/94743980/4208bfdc-1fdc-40eb-99c6-07c9c0511b1f?raw=true\" width=\"650\"\u003e\u003c/p\u003e\n\n\u003ch3 align=\"center\"\u003eGSDK OPC2D.\u003c/h3\u003e\n\n\u003cp align=\"center\"\u003e\u003cimg src=\"https://github.com/violent-studio/vsdk/assets/94743980/58f7891d-ba0f-4f4b-b89f-3317fc21e094\" width=\"650\"\u003e\u003c/p\u003e\n\n\u003ch3 align=\"center\"\u003eGSDK 3D Particle Emitter.\u003c/h3\u003e\n\n\u003cp align=\"center\"\u003e\u003cimg src=\"https://github.com/user-attachments/assets/7e441f9e-fda3-4cee-bb28-99ecd8000b07\" width=\"650\"\u003e\u003cbr\u003e\u003ci\u003e\u003csub\u003eSmoke Tunnel\u003c/sub\u003e\u003c/i\u003e\u003c/p\u003e\n\u003cp align=\"center\"\u003e\u003cimg src=\"https://github.com/user-attachments/assets/9883ddf4-c3df-41ba-bc22-4e079685ad88\" width=\"650\"\u003e\u003cbr\u003e\u003ci\u003e\u003csub\u003eSmoke Torus\u003c/sub\u003e\u003c/i\u003e\u003c/p\u003e\n\u003cp align=\"center\"\u003e\u003cimg src=\"https://github.com/user-attachments/assets/6b8a1b14-1234-4797-8c7d-30d833676392\" width=\"650\"\u003e\u003cbr\u003e\u003ci\u003e\u003csub\u003eParticles\u003c/sub\u003e\u003c/i\u003e\u003c/p\u003e\n\u003cp align=\"center\"\u003e\u003cimg src=\"https://github.com/user-attachments/assets/32ccc465-c570-43a2-a427-7542b1a60374\" width=\"650\"\u003e\u003cbr\u003e\u003ci\u003e\u003csub\u003eSmoke particles\u003c/sub\u003e\u003c/i\u003e\u003c/p\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxzripper%2Fgsdk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fxzripper%2Fgsdk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxzripper%2Fgsdk/lists"}