https://github.com/xzripper/gsdk
Game Software Development Kit.
https://github.com/xzripper/gsdk
2d 3d game-developement game-engine gsdk java-game
Last synced: 11 months ago
JSON representation
Game Software Development Kit.
- Host: GitHub
- URL: https://github.com/xzripper/gsdk
- Owner: xzripper
- License: mit
- Created: 2024-06-07T11:41:46.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2025-02-01T15:22:50.000Z (about 1 year ago)
- Last Synced: 2025-02-01T16:27:05.341Z (about 1 year ago)
- Topics: 2d, 3d, game-developement, game-engine, gsdk, java-game
- Language: Java
- Homepage: https://xzripper.github.io/gsdk
- Size: 15.7 MB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README

VSDK is now being rebranded to GSDK due to transfer of project from studio profile to main developer profile.
todo gshader:begin:end:is_begun

GSDK Development Phase: GSDK_V0.0.0.8-ALPHA/DEV_PUBLISH.
GSDK is currently being developed by a solo developer. I appreciate your patience and understanding as progress may take some time.

New! Visit documentation (extremely unfinished): https://violent-studio.github.io/vsdk
Example 1
```java
import com.raylib.Raylib;
import com.raylib.Jaylib.Vector3;
import static com.raylib.Jaylib.BLACK;
import vsdk.source.utils.WindowManager;
import static vsdk.source.utils.WindowManager.WindowFlags;
import vsdk.source.vectors.Vector2Df;
import vsdk.source.vectors.Vector3Df;
import vsdk.source.vrender.Quad;
import vsdk.source.utils.GShader;
public class Main {
public static void main(String[] args) {
WindowFlags flags = WindowManager.initWindow(
"Window.",
1000,
800,
120,
WindowManager.FULLSCREEN_MODE,
Raylib.FLAG_VSYNC_HINT | Raylib.FLAG_MSAA_4X_HINT,
false
);
Raylib.Camera3D cam = new Raylib.Camera3D()
._position(new Vector3(1.0f, 0.0f, 0.0f))
.target(new Vector3(0.0f, 0.0f, 0.0f))
.up(new Vector3(0.0f, 1.0f, 0.0f))
.fovy(45.0f)
.projection(Raylib.CAMERA_PERSPECTIVE);
GShader rainbow = new GShader(null, "shdr.frag", GShader.FILE, false);
rainbow.combineFragment(GShader.FILE, "shdr2.frag");
Raylib.DisableCursor();
while(!Raylib.WindowShouldClose()) {
Raylib.UpdateCamera(cam, Raylib.CAMERA_FREE);
Raylib.BeginDrawing();
Raylib.ClearBackground(BLACK);
Raylib.BeginMode3D(cam);
rainbow.setUniformFloat("time", (float) Raylib.GetTime());
rainbow.begin();
for(int z=-10; z < 20; z += 10) {
Quad.drawQuad(
new Vector2Df(10, 10),
new Vector3Df(0, 0, z),
new Vector3Df(90, (float) Math.cos(Raylib.GetTime() * 0.7) * 90, 0),
BLACK,
true
);
}
rainbow.end();
Raylib.EndMode3D();
Raylib.EndDrawing();
}
rainbow.unload();
Raylib.CloseWindow();
}
}
```
shdr.frag
```glsl
//:put-version
//:put-io
//:put-uni
void main() {
//:pshdr#grad
finalColor = color;
}
```
shdr2.frag
```glsl
//:version
#version 330
//:io
in vec2 fragTexCoord;
out vec4 finalColor;
//:eio
//:uni
uniform float time;
//:euni
void main() {
//:shdr#grad
float speed = 4.0;
float frequency = 64.0;
float red = 0.5 + 0.5 * sin(frequency * fragTexCoord.x + speed * time + 0.0);
float green = 0.5 + 0.5 * sin(frequency * fragTexCoord.x + speed * time + 2.0);
float blue = 0.5 + 0.5 * sin(frequency * fragTexCoord.x + speed * time + 4.0);
vec4 color = vec4(red, green, blue, 1.0);
//:eshdr
finalColor = color;
}
```

GSDK Baked 2D Glow Textures.

GSDK Bump Mapping.
```java
import com.raylib.Raylib;
import static com.raylib.Jaylib.Vector3;
import static com.raylib.Jaylib.BLACK;
import static com.raylib.Jaylib.WHITE;
import gsdk.source.grender.BumpMap;
public class Main {
public static void main(String[] args) {
Raylib.InitWindow(1000, 800, "Test window.");
Raylib.SetTargetFPS(60);
Raylib.Camera3D cam = new Raylib.Camera3D()
._position(new Vector3(3.0f, 0.0f, 0.0f))
.target(new Vector3(0.0f, 0.0f, 0.0f))
.up(new Vector3(0.0f, 1.0f, 0.0f))
.fovy(45.0f)
.projection(Raylib.CAMERA_PERSPECTIVE);
Raylib.Model cube = Raylib.LoadModelFromMesh(Raylib.GenMeshCube(3.0f, 2.5f, 0.3f));
BumpMap bumpMap = new BumpMap("RES\\albedo2.png",
"RES\\normal2.png",
new float[] {0.0f, 0.0f, 0.0f},
new float[] {0.0f, 0.0f, 0.0f}, 32.0f, 0.1f, true);
cube.materials(bumpMap.getBumpMaterial());
while(!Raylib.WindowShouldClose()) {
Raylib.UpdateCamera(cam, Raylib.CAMERA_ORBITAL);
Raylib.BeginDrawing();
Raylib.ClearBackground(BLACK);
Raylib.BeginMode3D(cam);
bumpMap.updLightPos(new float[] {Raylib.GetMouseX(), Raylib.GetMouseY(), 0.0f});
bumpMap.updViewPos(new float[]{cam.target().x(), cam.target().y(), cam.target().z()});
Raylib.DrawModel(cube, new Vector3(0.0f, 0.0f, 0.0f), 1.0f, WHITE);
Raylib.EndMode3D();
Raylib.EndDrawing();
}
Raylib.UnloadModel(cube);
Raylib.CloseWindow();
}
}
```

GSDK Chat implementation via Ginet (Game Immediate mode Networking library).
GSDK Noise Generator.










GSDK Shader Playground.

GSDK IGUI.

GSDK OPC2D.

GSDK 3D Particle Emitter.

Smoke Tunnel

Smoke Torus

Particles

Smoke particles