• Stars
    star
    103
  • Rank 333,046 (Top 7 %)
  • Language
    Zig
  • License
    MIT License
  • Created about 4 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Companion repo for zig-renderkit for making 2D games

Zig GameKit

Companion repo and example implementation for zig-renderkit. GameKit provides an example implementation of a game framework built on top of RenderKit. It includes the core render loop, window (via SDL), input, Dear ImGui and timing support. You can use it as a base to make a 2D game as-is or create your own 2D framework based on it.

GameKit provides the following wrappers around RenderKit's API showing how it can be abstracted away in a real world project: Texture, Shader and OffscreenPass. Building on top of those types, GameKit then provides Mesh and DynamicMesh which manage buffers and bindings for you. Finally, the high level types utilize DynamicMesh and cover pretty much all that any 2D game would require: Batcher (quad/sprite batch) and TriangleBatcher.

Some basic utilities and a small math lib with just the types required for the renderer (Vec2, Vec3, Color, 3x2 Matrix, Quad) are also included.

Dependencies

GameKit has just one external dependency: SDL. You can install SDL with the package manager of your choice.

Usage

  • clone the repository recursively: git clone --recursive https://github.com/prime31/zig-gamekit
  • zig build help to see what examples are availble
  • zig build EXAMPLE_NAME to run an example

Minimal GameKit Project File

var texture: Texture = undefined;

pub fn main() !void {
    try gamekit.run(.{ .init = init, .render = render });
}

fn init() !void {
    texture = Texture.initFromFile(std.heap.HeapAllocator, "texture.png", .nearest) catch unreachable;
}

fn render() !void {
    gamekit.gfx.beginPass(.{ .color = Color.lime });
    gamekit.gfx.draw.tex(texture, .{ .x = 50, .y = 50 });
    gamekit.gfx.endPass();
}

More Repositories

1

Nez

Nez is a free 2D focused framework that works with MonoGame and FNA
C#
1,799
star
2

CharacterController2D

C#
1,032
star
3

TouchKit

Gestures and input handling made sane for Unity
C#
896
star
4

GoKit

Lightweight tween library for Unity
C#
583
star
5

RecyclerKit

Object pool manager for Unity
C#
363
star
6

TransitionKit

Modular, extensible transitions in scene and between scenes
C#
300
star
7

SpriteLightKit

Blended lighting system for Unity that works with standard Sprites
C#
227
star
8

StateKit

Dead simple, lightweight "states as objects" system
C#
220
star
9

ZestKit

Tween library for Unity. The best of GoKit and GoKitLite combined in an easy to use API
C#
156
star
10

Nez-Samples

Samples and demos of various Nez features
C#
148
star
11

zig-ecs

Zig
144
star
12

P31UnityAddOns

Mostly defunct. Features were added and components broken out in the *Kit repositories.
C#
142
star
13

zig-upaya

Zig-based framework for creating game tools and helper apps
Zig
124
star
14

MessageKit

Decoupled message sending system meant as a replacement for SendMessage and its variants.
C#
122
star
15

CameraKit2D

Framework for creating 2D camera systems
C#
95
star
16

zig-renderkit

Zig
54
star
17

zig-flecs

C
51
star
18

GoKitLite

A super duper lightweight tweening library for Unity
C#
51
star
19

SoundKit

C#
45
star
20

Unity-Ripgrep-Search-Tool

C#
42
star
21

P31TaskManager

General purpose task manager that provides a lot more control and power than a standard coroutine
C#
35
star
22

via

V 2D game library
V
29
star
23

UnityCgShaderTutorials

Source code for the Unity Cg Shaders tutorial series on YouTube: http://www.youtube.com/playlist?list=PLb8LPjN5zpx1tauZfNE1cMIIPy15UlJNZ
C#
27
star
24

V-C-Wrapper-Generator

Helper for generating Odin and V wrapper code from C source
C#
19
star
25

Simple-ECS-Sharp

C#
18
star
26

ecs-lua

A simple, hybrid ECS
Lua
17
star
27

zig-miniaudio

Zig
17
star
28

SpriteKit

DEFUNCT: Unity now has 2D tools built in. This is now not maintained.
C#
15
star
29

PaletteKit

Helpful editor classes for importing and displaying color palettes
JavaScript
12
star
30

LearningUnits

C#
10
star
31

Odin-Sublime-Text-Plugin

Python
9
star
32

ImGuiGL-Renderer

C#
9
star
33

zig-vulkan

C++
5
star
34

egui_curve_tool

Rust
4
star
35

zig-aya

Zig
4
star
36

App-Engine-Task-Manager

Python
3
star
37

Odin-Libs

C
3
star
38

v-temp-modules

V
3
star
39

zig-fmod

Zig
2
star
40

Hugo-Helper

macOS app for managing a Hugo website
C#
2
star
41

prime31.github.io

HTML
2
star
42

fips-flecs

fipsified version of the Flecs ECS
CMake
1
star