A framework for windows, macOS, and linux that can be used to make games.
- C11
- OpenGL 3.3
- SDL3 - Window, input, and other misc uses
- clgm - Math
- miniaudio - Audio
- freetype - Font
- unity - Unit Tests
- zip - Reading archives
- stb image - Image loading
- 2D Sprite Renderer
- Font Renderer
- Customizable shaders (with custom langauge)
- Audio
- Networking (udp only for now)
- pthread wrapper and thread pool
- ECS
- Multiple data structures such as hashmap and array list (vector)
Seika uses cmake to build. To include in your project, add the following to your CMakeLists.txt:
# Include seika framework as a dependency
include(FetchContent)
FetchContent_Declare(
seika
GIT_REPOSITORY https://github.com/Chukobyte/seika.git
GIT_TAG v0.1.0
)
FetchContent_MakeAvailable(seika)
Make sure to link seika to the target with target_link_libraries
.
target_link_libraries(${PROJECT_NAME} seika)
A simple example of creating a window and querying for inputs.
#include <stdio.h>
#include <seika/seika.h>
#include <seika/input/input.h>
int main(int argv, char** args) {
ska_init_all("Simple Window", 800, 600, 800, 600);
while (ska_is_running()) {
ska_update();
if (ska_input_is_key_just_pressed(SkaInputKey_KEYBOARD_ESCAPE, 0)) {
break;
}
if (ska_input_is_key_just_pressed(SkaInputKey_KEYBOARD_SPACE, 0)) {
printf("space just pressed\n");
}
if (ska_input_is_key_pressed(SkaInputKey_KEYBOARD_SPACE, 0)) {
printf("space pressed\n");
}
if (ska_input_is_key_just_released(SkaInputKey_KEYBOARD_SPACE, 0)) {
printf("space just released\n");
}
ska_window_render();
}
ska_shutdown_all();
return 0;
}
Example projects found here.